Files
tank.500mandGitHub 9bd108c2c1 [exporter/exporterhelper] Add per-signal in-flight request metrics (#15014)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Add per-signal `otelcol_exporter_in_flight_requests` metrics to track
the number of export requests currently in-flight per exporter.
This helps operators detect when an exporter is saturating its worker
pool or when a slow backend is causing request buildup.

<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes #15009

<!--Describe what testing was performed and which tests were added.-->
#### Testing

<!--Describe the documentation added.-->
#### Documentation
2026-05-07 10:54:41 +00:00

100 lines
4.1 KiB
Go

// Code generated by mdatagen. DO NOT EDIT.
package metadatatest
import (
"context"
"testing"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/sdk/metric/metricdata"
"go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest"
"go.opentelemetry.io/collector/component/componenttest"
"go.opentelemetry.io/collector/exporter/exporterhelper/internal/metadata"
)
func TestSetupTelemetry(t *testing.T) {
testTel := componenttest.NewTelemetry()
tb, err := metadata.NewTelemetryBuilder(testTel.NewTelemetrySettings())
require.NoError(t, err)
defer tb.Shutdown()
require.NoError(t, tb.RegisterExporterQueueCapacityCallback(func(_ context.Context, observer metric.Int64Observer) error {
observer.Observe(1)
return nil
}))
require.NoError(t, tb.RegisterExporterQueueSizeCallback(func(_ context.Context, observer metric.Int64Observer) error {
observer.Observe(1)
return nil
}))
tb.ExporterEnqueueFailedLogRecords.Add(context.Background(), 1)
tb.ExporterEnqueueFailedMetricPoints.Add(context.Background(), 1)
tb.ExporterEnqueueFailedProfileSamples.Add(context.Background(), 1)
tb.ExporterEnqueueFailedSpans.Add(context.Background(), 1)
tb.ExporterInFlightRequests.Add(context.Background(), 1)
tb.ExporterQueueBatchSendSize.Record(context.Background(), 1)
tb.ExporterQueueBatchSendSizeBytes.Record(context.Background(), 1)
tb.ExporterSendFailedLogRecords.Add(context.Background(), 1)
tb.ExporterSendFailedMetricPoints.Add(context.Background(), 1)
tb.ExporterSendFailedProfileSamples.Add(context.Background(), 1)
tb.ExporterSendFailedSpans.Add(context.Background(), 1)
tb.ExporterSentLogRecords.Add(context.Background(), 1)
tb.ExporterSentMetricPoints.Add(context.Background(), 1)
tb.ExporterSentProfileSamples.Add(context.Background(), 1)
tb.ExporterSentSpans.Add(context.Background(), 1)
AssertEqualExporterEnqueueFailedLogRecords(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterEnqueueFailedMetricPoints(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterEnqueueFailedProfileSamples(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterEnqueueFailedSpans(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterInFlightRequests(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterQueueBatchSendSize(t, testTel,
[]metricdata.HistogramDataPoint[int64]{{}}, metricdatatest.IgnoreValue(),
metricdatatest.IgnoreTimestamp())
AssertEqualExporterQueueBatchSendSizeBytes(t, testTel,
[]metricdata.HistogramDataPoint[int64]{{}}, metricdatatest.IgnoreValue(),
metricdatatest.IgnoreTimestamp())
AssertEqualExporterQueueCapacity(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterQueueSize(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterSendFailedLogRecords(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterSendFailedMetricPoints(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterSendFailedProfileSamples(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterSendFailedSpans(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterSentLogRecords(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterSentMetricPoints(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterSentProfileSamples(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
AssertEqualExporterSentSpans(t, testTel,
[]metricdata.DataPoint[int64]{{Value: 1}},
metricdatatest.IgnoreTimestamp())
require.NoError(t, testTel.Shutdown(context.Background()))
}