-
Notifications
You must be signed in to change notification settings - Fork 932
Description
The semantic conventions say things like:
- metric names and attributes exist in a single universe
- common attributes should be consistently named
We also generally recommend (though I can't find any explicit text to this) that measurements are recorded with a consistent set of attribute keys for the same instrument. This assists with prometheus/openmetrics compatibility which says:
Metrics are defined by a unique LabelSet within a MetricFamily. Metrics MUST contain a list of one or more MetricPoints. Metrics with the same name for a given MetricFamily SHOULD have the same set of label names in their LabelSet.
We violate this advice in the metrics produced for BatchSpanProcessor and BatchLogRecordProcessor:
- Both produce a metric named
queueSizequeueSizeisn't namespacedqueueSizeincludes attributeslogRecordProcessorTypefor BatchLogRecordProcessor, andspanProcessorTypefor BatchSpanProcessor. These attributes are inconsistent, and do not have namespaces.queueSizehas a different description in BatchSpanProcessor than in BatchLogRecordProcessor
- BatchLogRecordProcessor emits
processedLogsprocessedLogsisn't namespacedprocessedLogsincludes attributeslogRecordProcessorType, anddropped. Neither is namespaced.
- BatchSpanProcessor emits
processedSpansprocessedSpansisn't namespacedprocessedSpansincludes attributesspanProcessorType, anddropped. Neither is namespaced.
This leads to issues like #4834. The PR #5836 partially fixes these issues by renaming logRecordProcessorType / spanProcessorType to processorType. But we should go further and fix the remaining issues.
Ideally we would fix everything at once to avoid churn.