Skip to content

Commit

Permalink
address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
gouthamMN authored and ArrisLee committed Feb 16, 2025
1 parent f3a68ec commit 3e51646
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 29 deletions.
12 changes: 8 additions & 4 deletions cmd/aro/portal.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ func portal(ctx context.Context, log *logrus.Entry, auditLog *logrus.Entry) erro
"AZURE_PORTAL_CLIENT_ID",
"AZURE_PORTAL_ACCESS_GROUP_IDS",
"AZURE_PORTAL_ELEVATED_GROUP_IDS",
env.OtelAuditQueueSize,
)

if err != nil {
Expand Down Expand Up @@ -174,9 +173,14 @@ func portal(ctx context.Context, log *logrus.Entry, auditLog *logrus.Entry) erro

log.Printf("listening %s", address)

size, err := strconv.Atoi(os.Getenv(env.OtelAuditQueueSize))
if err != nil {
return err
var size int
if err := env.ValidateVars(env.OtelAuditQueueSize); err != nil {
size = 4000
} else {
size, err = strconv.Atoi(os.Getenv(env.OtelAuditQueueSize))
if err != nil {
return err
}
}

outelAuditClient, err := audit.NewOtelAuditClient(size, _env.IsLocalDevelopmentMode())
Expand Down
1 change: 0 additions & 1 deletion cmd/aro/rp.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ func rp(ctx context.Context, log, auditLog *logrus.Entry) error {
"MDM_NAMESPACE",
"MSI_RP_ENDPOINT",
env.OIDCStorageAccountName,
env.OtelAuditQueueSize,
}

if _, found := os.LookupEnv("PULL_SECRET"); found {
Expand Down
2 changes: 2 additions & 0 deletions pkg/env/dev.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ func (d *dev) AROOperatorImage() string {
return fmt.Sprintf("%s/aro:%s", d.ACRDomain(), version.GitCommit)
}

// OtelAuditQueueSize returns the size of the audit queue for the OTel audit.
// In development environment this size is set to zero as we create noop connection to audit server.
func (d *dev) OtelAuditQueueSize() (int, error) {
return 0, nil
}
Expand Down
5 changes: 5 additions & 0 deletions pkg/env/prod.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,12 @@ func (p *prod) OIDCKeyBitSize() int {
return 4096
}

// OtelAuditQueueSize returns the size of the otel audit queue.
// If the OTEL_AUDIT_QUEUE_SIZE environment variable is not set, it returns the default value of 4000.
func (p *prod) OtelAuditQueueSize() (int, error) {
if err := ValidateVars(OtelAuditQueueSize); err != nil {
return 4000, nil
}
return strconv.Atoi(os.Getenv(OtelAuditQueueSize))
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/frontend/middleware/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ func (l LogMiddleware) Log(h http.Handler) http.Handler {
return
}

audit.Validate(&otelAuditMsg.Record)
audit.EnsureDefaults(&otelAuditMsg.Record)
if err := l.OutelAuditClient.Send(r.Context(), otelAuditMsg); err != nil {
log.Errorf("Frontend - Error sending audit message: %v", err)
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/portal/middleware/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ func Log(env env.Core, auditLog, baseLog *logrus.Entry, outelAuditClient audit.C
otelAuditMsg.Record.OperationResultDescription = fmt.Sprintf("Status code: %d", statusCode)
}

audit.Validate(&otelAuditMsg.Record)
audit.EnsureDefaults(&otelAuditMsg.Record)
if err := outelAuditClient.Send(r.Context(), otelAuditMsg); err != nil {
log.Errorf("Portal - Error sending audit message: %v", err)
}
Expand Down
41 changes: 19 additions & 22 deletions pkg/util/log/audit/otel_audit.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,31 +35,28 @@ func NewOtelAuditClient(auditLogQueueSize int, isDevEnv bool) (Client, error) {

// https://eng.ms/docs/products/geneva/collect/instrument/opentelemetryaudit/golang/linux/installation
func initializeOtelAuditClient(auditLogQueueSize int) (Client, error) {
newConn := func() (conn.Audit, error) {
return conn.NewDomainSocket()
}

client, err := audit.New(newConn, audit.WithAuditOptions(base.WithSettings(base.Settings{QueueSize: auditLogQueueSize})))
if err != nil {
return nil, err
}

return client, nil
return audit.New(
func() (conn.Audit, error) {
return conn.NewDomainSocket()
},
audit.WithAuditOptions(
base.WithSettings(
base.Settings{
QueueSize: auditLogQueueSize,
},
),
),
)
}

// initializeNoOpOtelAuditClient creates a new no-op audit client.
// NoOP is a no-op connection to the remote audit server used during E2E testing or development environment.
func initializeNoOpOtelAuditClient() (Client, error) {
newNoOpConn := func() (conn.Audit, error) {
return conn.NewNoOP(), nil
}

client, err := audit.New(newNoOpConn)
if err != nil {
return nil, err
}

return client, nil
return audit.New(
func() (conn.Audit, error) {
return conn.NewNoOP(), nil
},
)
}

func GetOperationType(method string) msgs.OperationType {
Expand Down Expand Up @@ -107,9 +104,9 @@ func CreateOtelAuditMsg(log *logrus.Entry, r *http.Request) msgs.Msg {
return msg
}

// Validate ensures that all required fields in the Record are set to default values if they are empty or invalid.
// EnsureDefaults ensures that all required fields in the Record are set to default values if they are empty or invalid.
// It modifies the Record in place to ensure it meets the expected structure and data requirements.
func Validate(r *msgs.Record) {
func EnsureDefaults(r *msgs.Record) {
setDefault := func(value *string, defaultValue string) {
if *value == "" {
*value = defaultValue
Expand Down

0 comments on commit 3e51646

Please sign in to comment.