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
queueSize
queueSize isn't namespaced
queueSize includes attributes logRecordProcessorType for BatchLogRecordProcessor, and spanProcessorType for BatchSpanProcessor. These attributes are inconsistent, and do not have namespaces.
queueSize has a different description in BatchSpanProcessor than in BatchLogRecordProcessor
- BatchLogRecordProcessor emits
processedLogs
processedLogs isn't namespaced
processedLogs includes attributes logRecordProcessorType, and dropped. Neither is namespaced.
- BatchSpanProcessor emits
processedSpans
processedSpans isn't namespaced
processedSpans includes attributes spanProcessorType, and dropped. 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.
The semantic conventions say things like:
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:
We violate this advice in the metrics produced for BatchSpanProcessor and BatchLogRecordProcessor:
queueSizequeueSizeisn't namespacedqueueSizeincludes attributeslogRecordProcessorTypefor BatchLogRecordProcessor, andspanProcessorTypefor BatchSpanProcessor. These attributes are inconsistent, and do not have namespaces.queueSizehas a different description in BatchSpanProcessor than in BatchLogRecordProcessorprocessedLogsprocessedLogsisn't namespacedprocessedLogsincludes attributeslogRecordProcessorType, anddropped. Neither is namespaced.processedSpansprocessedSpansisn't namespacedprocessedSpansincludes attributesspanProcessorType, anddropped. Neither is namespaced.This leads to issues like #4834. The PR #5836 partially fixes these issues by renaming
logRecordProcessorType/spanProcessorTypetoprocessorType. But we should go further and fix the remaining issues.Ideally we would fix everything at once to avoid churn.