in pkg/observability/opentelemetry.go [170:219]
func registerMetricsWith(provider *metric.MeterProvider) (Metrics, error) {
meter := provider.Meter("aws.node.termination.handler")
// Deprecated: actionsCounter metric has a high label cardinality, resulting in numerous time-series which utilize
// a large amount of memory. Use actionsCounterV2 metric instead.
name := "actions.node"
actionsCounter, err := meter.Int64Counter(name, api.WithDescription("Number of actions per node"))
if err != nil {
return Metrics{}, fmt.Errorf("failed to create Prometheus counter %q: %w", name, err)
}
actionsCounter.Add(context.Background(), 0)
// Recommended replacement for actionsCounter metric
name = "actions"
actionsCounterV2, err := meter.Int64Counter(name, api.WithDescription("Number of actions"))
if err != nil {
return Metrics{}, fmt.Errorf("failed to create Prometheus counter %q: %w", name, err)
}
actionsCounterV2.Add(context.Background(), 0)
name = "events.error"
errorEventsCounter, err := meter.Int64Counter(name, api.WithDescription("Number of errors in events processing"))
if err != nil {
return Metrics{}, fmt.Errorf("failed to create Prometheus counter %q: %w", name, err)
}
errorEventsCounter.Add(context.Background(), 0)
name = "nth_tagged_nodes"
nthTaggedNodesGauge, err := meter.Int64Gauge(name, api.WithDescription("Number of nodes processing"))
if err != nil {
return Metrics{}, fmt.Errorf("failed to create Prometheus gauge %q: %w", name, err)
}
nthTaggedNodesGauge.Record(context.Background(), 0)
name = "nth_tagged_instances"
nthTaggedInstancesGauge, err := meter.Int64Gauge(name, api.WithDescription("Number of instances processing"))
if err != nil {
return Metrics{}, fmt.Errorf("failed to create Prometheus gauge %q: %w", name, err)
}
nthTaggedInstancesGauge.Record(context.Background(), 0)
return Metrics{
meter: meter,
errorEventsCounter: errorEventsCounter,
actionsCounter: actionsCounter,
actionsCounterV2: actionsCounterV2,
nthTaggedNodesGauge: nthTaggedNodesGauge,
nthTaggedInstancesGauge: nthTaggedInstancesGauge,
}, nil
}