-
Notifications
You must be signed in to change notification settings - Fork 507
Description
Describe your environment OpenTelemetry 1.18
Steps to reproduce
When using CreateXXXMetricYY() functions from opentelemetry/api/semconv (for example, CreateAsyncInt64MetricProcessContextSwitches() or any other similar function), they create a metric prefixed with metric. (for example, metric.process.context_switches).
I believe this is not correct: for example, for the Context Switches metric, the specification says that the name is process.context_switches, not metric.process.context_switches.
What is the expected behavior?
Metric names match the specification.
What is the actual behavior?
Metric names have an additional prefix of metric..
Additional context
I think this bug was introduced in #3105, here:
static constexpr const char *{{v_metric_name}} = "{{metric.id}}";By looking at the Process Metrics Model, we see:
- id: metric.process.context_switches
type: metric
metric_name: process.context_switches
stability: experimental
brief: "Number of times the process has been context switched."
instrument: counter
unit: "{count}"
attributes:
- ref: process.context_switch_typeid is what we have now, metric_name is what we should probably have.
The fix I think will be (buildscripts/semantic-convention/templates/registry/semantic_metrics-h.j2)
-static constexpr const char *{{v_metric_name}} = "{{metric.id}}";
+static constexpr const char *{{v_metric_name}} = "{{metric.metric_name}}";