Skip to content

Commit

Permalink
update all metrics to include otelcol_ prefix (#9759)
Browse files Browse the repository at this point in the history
This ensures the consistency for folks emitting metrics w/ OTLP until
the OTEP to specify pipeline telemetry is completed.

Waiting on
#9775
before moving this forward

Fixes #9315

---------

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
  • Loading branch information
codeboten committed Jul 16, 2024
1 parent 1dc6428 commit 5753a58
Show file tree
Hide file tree
Showing 25 changed files with 240 additions and 214 deletions.
28 changes: 28 additions & 0 deletions .chloggen/codeboten_update-all-metrics-with-prefix.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Use this changelog template to create an entry for release notes.

# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: breaking

# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
component: service

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: "Update all metrics to include `otelcol_` prefix to ensure consistency across OTLP and Prometheus metrics"

# One or more tracking issues or pull requests related to the change
issues: [9759]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext: |
This change is marked as a breaking change as anyone that was using OTLP for metrics will
see the new prefix which was not present before. Prometheus generated metrics remain
unchanged.
# Optional: The change log or logs in which this entry should be included.
# e.g. '[user]' or '[user, api]'
# Include 'user' if the change is relevant to end users.
# Include 'api' if there is a change to a library API.
# Default: '[user]'
change_logs: []
8 changes: 4 additions & 4 deletions cmd/mdatagen/internal/samplereceiver/documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,23 +117,23 @@ metrics:
The following telemetry is emitted by this component.
### batch_size_trigger_send
### otelcol_batch_size_trigger_send
Number of times the batch was sent due to a size trigger
| Unit | Metric Type | Value Type | Monotonic |
| ---- | ----------- | ---------- | --------- |
| 1 | Sum | Int | true |
### process_runtime_total_alloc_bytes
### otelcol_process_runtime_total_alloc_bytes
Cumulative bytes allocated for heap objects (see 'go doc runtime.MemStats.TotalAlloc')
| Unit | Metric Type | Value Type | Monotonic |
| ---- | ----------- | ---------- | --------- |
| By | Sum | Int | true |
### queue_length
### otelcol_queue_length
This metric is optional and therefore not initialized in NewTelemetryBuilder.
Expand All @@ -143,7 +143,7 @@ For example this metric only exists if feature A is enabled.
| ---- | ----------- | ---------- |
| 1 | Gauge | Int |
### request_duration
### otelcol_request_duration
Duration of request
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions cmd/mdatagen/internal/samplereceiver/metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func TestComponentTelemetry(t *testing.T) {
require.NoError(t, err)
tt.assertMetrics(t, []metricdata.Metrics{
{
Name: "batch_size_trigger_send",
Name: "otelcol_batch_size_trigger_send",
Description: "Number of times the batch was sent due to a size trigger",
Unit: "1",
Data: metricdata.Sum[int64]{
Expand All @@ -44,7 +44,7 @@ func TestComponentTelemetry(t *testing.T) {
},
},
{
Name: "process_runtime_total_alloc_bytes",
Name: "otelcol_process_runtime_total_alloc_bytes",
Description: "Cumulative bytes allocated for heap objects (see 'go doc runtime.MemStats.TotalAlloc')",
Unit: "By",
Data: metricdata.Sum[int64]{
Expand All @@ -63,7 +63,7 @@ func TestComponentTelemetry(t *testing.T) {
rcv.initOptionalMetric()
tt.assertMetrics(t, []metricdata.Metrics{
{
Name: "batch_size_trigger_send",
Name: "otelcol_batch_size_trigger_send",
Description: "Number of times the batch was sent due to a size trigger",
Unit: "1",
Data: metricdata.Sum[int64]{
Expand All @@ -77,7 +77,7 @@ func TestComponentTelemetry(t *testing.T) {
},
},
{
Name: "process_runtime_total_alloc_bytes",
Name: "otelcol_process_runtime_total_alloc_bytes",
Description: "Cumulative bytes allocated for heap objects (see 'go doc runtime.MemStats.TotalAlloc')",
Unit: "By",
Data: metricdata.Sum[int64]{
Expand All @@ -91,7 +91,7 @@ func TestComponentTelemetry(t *testing.T) {
},
},
{
Name: "queue_length",
Name: "otelcol_queue_length",
Description: "This metric is optional and therefore not initialized in NewTelemetryBuilder.",
Unit: "1",
Data: metricdata.Gauge[int64]{
Expand Down
2 changes: 1 addition & 1 deletion cmd/mdatagen/templates/documentation.md.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
{{- $metricName := . }}
{{- $metric := $metricName | telemetryInfo -}}

### {{ $metricName }}
### otelcol_{{ $metricName }}

{{ $metric.Description }}

Expand Down
4 changes: 2 additions & 2 deletions cmd/mdatagen/templates/telemetry.go.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func WithLevel(lvl configtelemetry.Level) telemetryBuilderOption {
func (builder *TelemetryBuilder) Init{{ $name.Render }}({{ if $metric.Data.Async -}}cb func() {{ $metric.Data.BasicType }}{{- end }}, opts ...metric.ObserveOption) error {
var err error
builder.{{ $name.Render }}, err = builder.meter.{{ $metric.Data.Instrument }}(
"{{ $name }}",
"otelcol_{{ $name }}",
metric.WithDescription("{{ $metric.Description }}"),
metric.WithUnit("{{ $metric.Unit }}"),
{{- if eq $metric.Data.Type "Histogram" -}}
Expand Down Expand Up @@ -106,7 +106,7 @@ func NewTelemetryBuilder(settings component.TelemetrySettings, options ...teleme
{{- range $name, $metric := .Telemetry.Metrics }}
{{- if not $metric.Optional }}
builder.{{ $name.Render }}, err = builder.meter.{{ $metric.Data.Instrument }}(
"{{ $name }}",
"otelcol_{{ $name }}",
metric.WithDescription("{{ $metric.Description }}"),
metric.WithUnit("{{ $metric.Unit }}"),
{{- if eq $metric.Data.Type "Histogram" -}}
Expand Down
3 changes: 1 addition & 2 deletions component/componenttest/otelprometheuschecker.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,7 @@ func (pc *prometheusChecker) checkExporterMetricGauge(exporter component.ID, met
}

func (pc *prometheusChecker) checkCounter(expectedMetric string, value int64, attrs []attribute.KeyValue) error {

ts, err := pc.getMetric(expectedMetric, io_prometheus_client.MetricType_COUNTER, attrs)
ts, err := pc.getMetric(fmt.Sprintf("otelcol_%s", expectedMetric), io_prometheus_client.MetricType_COUNTER, attrs)
if err != nil {
return err
}
Expand Down
156 changes: 78 additions & 78 deletions component/componenttest/testdata/prometheus_response
Original file line number Diff line number Diff line change
@@ -1,81 +1,81 @@
# HELP exporter_send_failed_spans Number of spans in failed attempts to send to destination.
# TYPE exporter_send_failed_spans counter
exporter_send_failed_spans{exporter="fakeExporter"} 14
# HELP exporter_sent_spans Number of spans successfully sent to destination.
# TYPE exporter_sent_spans counter
exporter_sent_spans{exporter="fakeExporter"} 43
# HELP exporter_send_failed_metric_points Number of metrics in failed attempts to send to destination.
# TYPE exporter_send_failed_metric_points counter
exporter_send_failed_metric_points{exporter="fakeExporter"} 42
# HELP exporter_sent_metric_points Number of metrics successfully sent to destination.
# TYPE exporter_sent_metric_points counter
exporter_sent_metric_points{exporter="fakeExporter"} 8
# HELP exporter_send_failed_log_records Number of logs in failed attempts to send to destination.
# TYPE exporter_send_failed_log_records counter
exporter_send_failed_log_records{exporter="fakeExporter"} 36
# HELP exporter_sent_log_records Number of logs successfully sent to destination.
# TYPE exporter_sent_log_records counter
exporter_sent_log_records{exporter="fakeExporter"} 103
# HELP processor_accepted_spans Number of spans successfully pushed into the next component in the pipeline.
# TYPE processor_accepted_spans counter
processor_accepted_spans{processor="fakeProcessor"} 42
# HELP processor_refused_spans Number of spans that were rejected by the next component in the pipeline.
# TYPE processor_refused_spans counter
processor_refused_spans{processor="fakeProcessor"} 13
# HELP processor_dropped_spans Number of spans that were dropped.
# TYPE processor_dropped_spans counter
processor_dropped_spans{processor="fakeProcessor"} 7
# HELP processor_inserted_spans Number of spans that were inserted.
# TYPE processor_inserted_spans counter
processor_inserted_spans{processor="fakeProcessor"} 5
# HELP processor_accepted_metric_points Number of metric points successfully pushed into the next component in the pipeline.
# TYPE processor_accepted_metric_points counter
processor_accepted_metric_points{processor="fakeProcessor"} 7
# HELP processor_refused_metric_points Number of metric points that were rejected by the next component in the pipeline.
# TYPE processor_refused_metric_points counter
processor_refused_metric_points{processor="fakeProcessor"} 41
# HELP processor_dropped_metric_points Number of metric points that were dropped.
# TYPE processor_dropped_metric_points counter
processor_dropped_metric_points{processor="fakeProcessor"} 13
# HELP processor_inserted_metric_points Number of metric points that were inserted.
# TYPE processor_inserted_metric_points counter
processor_inserted_metric_points{processor="fakeProcessor"} 4
# HELP processor_accepted_log_records Number of log records successfully pushed into the next component in the pipeline.
# TYPE processor_accepted_log_records counter
processor_accepted_log_records{processor="fakeProcessor"} 102
# HELP processor_refused_log_records Number of log records that were rejected by the next component in the pipeline.
# TYPE processor_refused_log_records counter
processor_refused_log_records{processor="fakeProcessor"} 35
# HELP processor_dropped_log_records Number of log records that were dropped.
# TYPE processor_dropped_log_records counter
processor_dropped_log_records{processor="fakeProcessor"} 14
# HELP processor_inserted_log_records Number of log records that were inserted.
# TYPE processor_inserted_log_records counter
processor_inserted_log_records{processor="fakeProcessor"} 3
# HELP receiver_accepted_log_records Number of log records successfully pushed into the pipeline.
# TYPE receiver_accepted_log_records counter
receiver_accepted_log_records{receiver="fakeReceiver",transport="fakeTransport"} 102
# HELP receiver_accepted_metric_points Number of metric points successfully pushed into the pipeline.
# TYPE receiver_accepted_metric_points counter
receiver_accepted_metric_points{receiver="fakeReceiver",transport="fakeTransport"} 7
# HELP receiver_accepted_spans Number of spans successfully pushed into the pipeline.
# TYPE receiver_accepted_spans counter
receiver_accepted_spans{receiver="fakeReceiver",transport="fakeTransport"} 42
# HELP receiver_refused_log_records Number of log records that could not be pushed into the pipeline.
# TYPE receiver_refused_log_records counter
receiver_refused_log_records{receiver="fakeReceiver",transport="fakeTransport"} 35
# HELP receiver_refused_metric_points Number of metric points that could not be pushed into the pipeline.
# TYPE receiver_refused_metric_points counter
receiver_refused_metric_points{receiver="fakeReceiver",transport="fakeTransport"} 41
# HELP receiver_refused_spans Number of spans that could not be pushed into the pipeline.
# TYPE receiver_refused_spans counter
receiver_refused_spans{receiver="fakeReceiver",transport="fakeTransport"} 13
# HELP scraper_scraped_metric_points Number of metric points successfully scraped.
# TYPE scraper_scraped_metric_points counter
scraper_scraped_metric_points{receiver="fakeReceiver",scraper="fakeScraper"} 7
# HELP scraper_errored_metric_points Number of metric points that were unable to be scraped.
# TYPE scraper_errored_metric_points counter
scraper_errored_metric_points{receiver="fakeReceiver",scraper="fakeScraper"} 41
# HELP otelcol_exporter_send_failed_spans Number of spans in failed attempts to send to destination.
# TYPE otelcol_exporter_send_failed_spans counter
otelcol_exporter_send_failed_spans{exporter="fakeExporter"} 14
# HELP otelcol_exporter_sent_spans Number of spans successfully sent to destination.
# TYPE otelcol_exporter_sent_spans counter
otelcol_exporter_sent_spans{exporter="fakeExporter"} 43
# HELP otelcol_exporter_send_failed_metric_points Number of metrics in failed attempts to send to destination.
# TYPE otelcol_exporter_send_failed_metric_points counter
otelcol_exporter_send_failed_metric_points{exporter="fakeExporter"} 42
# HELP otelcol_exporter_sent_metric_points Number of metrics successfully sent to destination.
# TYPE otelcol_exporter_sent_metric_points counter
otelcol_exporter_sent_metric_points{exporter="fakeExporter"} 8
# HELP otelcol_exporter_send_failed_log_records Number of logs in failed attempts to send to destination.
# TYPE otelcol_exporter_send_failed_log_records counter
otelcol_exporter_send_failed_log_records{exporter="fakeExporter"} 36
# HELP otelcol_exporter_sent_log_records Number of logs successfully sent to destination.
# TYPE otelcol_exporter_sent_log_records counter
otelcol_exporter_sent_log_records{exporter="fakeExporter"} 103
# HELP otelcol_processor_accepted_spans Number of spans successfully pushed into the next component in the pipeline.
# TYPE otelcol_processor_accepted_spans counter
otelcol_processor_accepted_spans{processor="fakeProcessor"} 42
# HELP otelcol_processor_refused_spans Number of spans that were rejected by the next component in the pipeline.
# TYPE otelcol_processor_refused_spans counter
otelcol_processor_refused_spans{processor="fakeProcessor"} 13
# HELP otelcol_processor_dropped_spans Number of spans that were dropped.
# TYPE otelcol_processor_dropped_spans counter
otelcol_processor_dropped_spans{processor="fakeProcessor"} 7
# HELP otelcol_processor_inserted_spans Number of spans that were inserted.
# TYPE otelcol_processor_inserted_spans counter
otelcol_processor_inserted_spans{processor="fakeProcessor"} 5
# HELP otelcol_processor_accepted_metric_points Number of metric points successfully pushed into the next component in the pipeline.
# TYPE otelcol_processor_accepted_metric_points counter
otelcol_processor_accepted_metric_points{processor="fakeProcessor"} 7
# HELP otelcol_processor_refused_metric_points Number of metric points that were rejected by the next component in the pipeline.
# TYPE otelcol_processor_refused_metric_points counter
otelcol_processor_refused_metric_points{processor="fakeProcessor"} 41
# HELP otelcol_processor_dropped_metric_points Number of metric points that were dropped.
# TYPE otelcol_processor_dropped_metric_points counter
otelcol_processor_dropped_metric_points{processor="fakeProcessor"} 13
# HELP otelcol_processor_inserted_metric_points Number of metric points that were inserted.
# TYPE otelcol_processor_inserted_metric_points counter
otelcol_processor_inserted_metric_points{processor="fakeProcessor"} 4
# HELP otelcol_processor_accepted_log_records Number of log records successfully pushed into the next component in the pipeline.
# TYPE otelcol_processor_accepted_log_records counter
otelcol_processor_accepted_log_records{processor="fakeProcessor"} 102
# HELP otelcol_processor_refused_log_records Number of log records that were rejected by the next component in the pipeline.
# TYPE otelcol_processor_refused_log_records counter
otelcol_processor_refused_log_records{processor="fakeProcessor"} 35
# HELP otelcol_processor_dropped_log_records Number of log records that were dropped.
# TYPE otelcol_processor_dropped_log_records counter
otelcol_processor_dropped_log_records{processor="fakeProcessor"} 14
# HELP otelcol_processor_inserted_log_records Number of log records that were inserted.
# TYPE otelcol_processor_inserted_log_records counter
otelcol_processor_inserted_log_records{processor="fakeProcessor"} 3
# HELP otelcol_receiver_accepted_log_records Number of log records successfully pushed into the pipeline.
# TYPE otelcol_receiver_accepted_log_records counter
otelcol_receiver_accepted_log_records{receiver="fakeReceiver",transport="fakeTransport"} 102
# HELP otelcol_receiver_accepted_metric_points Number of metric points successfully pushed into the pipeline.
# TYPE otelcol_receiver_accepted_metric_points counter
otelcol_receiver_accepted_metric_points{receiver="fakeReceiver",transport="fakeTransport"} 7
# HELP otelcol_receiver_accepted_spans Number of spans successfully pushed into the pipeline.
# TYPE otelcol_receiver_accepted_spans counter
otelcol_receiver_accepted_spans{receiver="fakeReceiver",transport="fakeTransport"} 42
# HELP otelcol_receiver_refused_log_records Number of log records that could not be pushed into the pipeline.
# TYPE otelcol_receiver_refused_log_records counter
otelcol_receiver_refused_log_records{receiver="fakeReceiver",transport="fakeTransport"} 35
# HELP otelcol_receiver_refused_metric_points Number of metric points that could not be pushed into the pipeline.
# TYPE otelcol_receiver_refused_metric_points counter
otelcol_receiver_refused_metric_points{receiver="fakeReceiver",transport="fakeTransport"} 41
# HELP otelcol_receiver_refused_spans Number of spans that could not be pushed into the pipeline.
# TYPE otelcol_receiver_refused_spans counter
otelcol_receiver_refused_spans{receiver="fakeReceiver",transport="fakeTransport"} 13
# HELP otelcol_scraper_scraped_metric_points Number of metric points successfully scraped.
# TYPE otelcol_scraper_scraped_metric_points counter
otelcol_scraper_scraped_metric_points{receiver="fakeReceiver",scraper="fakeScraper"} 7
# HELP otelcol_scraper_errored_metric_points Number of metric points that were unable to be scraped.
# TYPE otelcol_scraper_errored_metric_points counter
otelcol_scraper_errored_metric_points{receiver="fakeReceiver",scraper="fakeScraper"} 41
# HELP gauge_metric A simple gauge metric
# TYPE gauge_metric gauge
gauge_metric 49
Loading

0 comments on commit 5753a58

Please sign in to comment.