Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .chloggen/fix-aix-crash.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
change_logs:
- change_type: bug_fix
component: opentelemetry-collector
note: "Fix panic in process metrics on unsupported OSes (e.g. AIX)"
issues: [14307]
13 changes: 11 additions & 2 deletions service/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -234,8 +234,17 @@ func New(ctx context.Context, set Settings, cfg Config) (_ *Service, resultErr e
return nil, err
}

if err := proctelemetry.RegisterProcessMetrics(srv.telemetrySettings); err != nil {
return nil, fmt.Errorf("failed to register process metrics: %w", err)
// Only register process metrics on supported OSes.
const osAIX = "aix"
if runtime.GOOS == osAIX {
// AIX is currently unsupported for process metrics, so we skip it to avoid crashing.
// We log this so the user is aware that metrics are disabled.
srv.telemetrySettings.Logger.Info("Skipping process metrics registration on unsupported OS", zap.String("os", runtime.GOOS))
} else {
// For other OSes, we want to fail fast if registration fails.
if err := proctelemetry.RegisterProcessMetrics(srv.telemetrySettings); err != nil {
return nil, err
}
}
return srv, nil
}
Expand Down
Loading