Closed
Description
Component(s)
exporter/prometheus
What happened?
Description
I am getting the following error in otel-collector while sending the metrics to the VictoriaMetrics database with delta temporality.
panic: invalid access to shared data
Steps to Reproduce
I have configured the temporality and delta in the SDK configuration as following
SdkMeterProvider meterProvider = SdkMeterProvider.builder()
.registerMetricReader(PeriodicMetricReader.builder(OtlpGrpcMetricExporter.builder()
.setAggregationTemporalitySelector(AggregationTemporalitySelector.deltaPreferred())
.setEndpoint(OTEL_EXPORTER_OTLP_ENDPOINT).build()).setInterval(Duration.ofMillis(1000)).build())
.build();
I am using Prometheus exporter in the otel-collector and VictoriaMetrics is my datasource. I am using vmagent to pull the metrics and push them to VictoriaMetrics database.
Here is my collector exporter config:
exporters:
debug:
verbosity: detailed
logging:
loglevel: debug
prometheus:
endpoint: "0.0.0.0:4319"
send_timestamps: true
metric_expiration: "120m"
Expected Result
prometheus exporter must process the metrics seamlessly.
Actual Result
Getting the following error stack trace:
metrics-poc-otel-collector-1 | {"kind": "exporter", "data_type": "metrics", "name": "logging"}
metrics-poc-otel-collector-1 | panic: invalid access to shared data
metrics-poc-otel-collector-1 |
metrics-poc-otel-collector-1 | goroutine 110 [running]:
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/pdata/internal.(*State).AssertMutable(...)
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/internal/state.go:20
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/pdata/pmetric.NumberDataPoint.SetStartTimestamp(...)
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/pmetric/generated_numberdatapoint.go:61
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*lastValueAccumulator).accumulateSum(0xc002b46780, {0xc002d701c0?, 0xc0021fe8f0?}, {0xc002b66460?, 0xc0021fe8f0?}, {0xc002d5c138?, 0xc0021fe8f0?}, {0xc15187eb06ebdf7a, 0x2436bf76f, 0xdb89900})
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/[email protected]/accumulator.go:205 +0xe65
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*lastValueAccumulator).addMetric(0xc002b46780, {0xc002d701c0?, 0xc0021fe8f0?}, {0xc002b66460?, 0xc0021fe8f0?}, {0xc002d5c138?, 0xc0021fe8f0?}, {0xc15187eb06ebdf7a, 0x2436bf76f, 0xdb89900})
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/[email protected]/accumulator.go:85 +0x1fc
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*lastValueAccumulator).Accumulate(0x36d6ac567?, {0xc002d5c120?, 0xc0021fe8f0?})
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/[email protected]/accumulator.go:71 +0x10f
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*collector).processMetrics(...)
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/[email protected]/collector.go:92
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*prometheusExporter).ConsumeMetrics(0xc002ad3400, {0xc0005b76e0?, 0xc002869a90?}, {0xc002202a68?, 0xc0021fe8f0?})
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/[email protected]/prometheus.go:85 +0x5d
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*metricsRequest).Export(0x8fb5890?, {0x8fb5858?, 0xc002ed8de0?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/metrics.go:58 +0x37
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*timeoutSender).send(0xc0021d75a0?, {0x8fb5890?, 0xc002ed8db0?}, {0x8f83720?, 0xc002202c60?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/timeout_sender.go:38 +0x90
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*baseRequestSender).send(0xc002ad3500?, {0x8fb5890?, 0xc002ed8db0?}, {0x8f83720?, 0xc002202c60?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/common.go:33 +0x36
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*metricsSenderWithObservability).send(0xc002b468d0, {0x8fb5890?, 0xc002b46b10?}, {0x8f83720?, 0xc002202c60?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/metrics.go:173 +0x84
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*baseRequestSender).send(0xc002b466f0?, {0x8fb5890?, 0xc002b46b10?}, {0x8f83720?, 0xc002202c60?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/common.go:33 +0x36
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*baseExporter).send(...)
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/common.go:189
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.NewMetricsExporter.func1({0x8fb5890, 0xc002b46b10}, {0xc002202a68?, 0xc0021fe8f0?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/metrics.go:98 +0xed
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/consumer.ConsumeMetricsFunc.ConsumeMetrics(...)
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/metrics.go:25
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/internal/fanoutconsumer.(*metricsConsumer).ConsumeMetrics(0xc002869f80?, {0x8fb5890, 0xc002b46b10}, {0xc002202a68?, 0xc0021fe8f0?})
Collector version
0.89.0
Environment information
Environment
OS: (e.g., "MacOS 13.5 (22G74)")
OpenTelemetry Collector configuration
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
exporters:
debug:
verbosity: detailed
logging:
loglevel: debug
prometheus:
endpoint: "0.0.0.0:4319"
send_timestamps: true
metric_expiration: "120m"
processors:
batch:
extensions:
health_check:
service:
extensions: [health_check]
pipelines:
metrics:
receivers: [otlp]
processors: [batch]
exporters: [logging, prometheus, debug]
Log output
metrics-poc-otel-collector-1 | {"kind": "exporter", "data_type": "metrics", "name": "logging"}
metrics-poc-otel-collector-1 | panic: invalid access to shared data
metrics-poc-otel-collector-1 |
metrics-poc-otel-collector-1 | goroutine 110 [running]:
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/pdata/internal.(*State).AssertMutable(...)
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/internal/state.go:20
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/pdata/pmetric.NumberDataPoint.SetStartTimestamp(...)
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/pmetric/generated_numberdatapoint.go:61
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*lastValueAccumulator).accumulateSum(0xc002b46780, {0xc002d701c0?, 0xc0021fe8f0?}, {0xc002b66460?, 0xc0021fe8f0?}, {0xc002d5c138?, 0xc0021fe8f0?}, {0xc15187eb06ebdf7a, 0x2436bf76f, 0xdb89900})
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/[email protected]/accumulator.go:205 +0xe65
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*lastValueAccumulator).addMetric(0xc002b46780, {0xc002d701c0?, 0xc0021fe8f0?}, {0xc002b66460?, 0xc0021fe8f0?}, {0xc002d5c138?, 0xc0021fe8f0?}, {0xc15187eb06ebdf7a, 0x2436bf76f, 0xdb89900})
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/[email protected]/accumulator.go:85 +0x1fc
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*lastValueAccumulator).Accumulate(0x36d6ac567?, {0xc002d5c120?, 0xc0021fe8f0?})
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/[email protected]/accumulator.go:71 +0x10f
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*collector).processMetrics(...)
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/[email protected]/collector.go:92
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*prometheusExporter).ConsumeMetrics(0xc002ad3400, {0xc0005b76e0?, 0xc002869a90?}, {0xc002202a68?, 0xc0021fe8f0?})
metrics-poc-otel-collector-1 | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/[email protected]/prometheus.go:85 +0x5d
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*metricsRequest).Export(0x8fb5890?, {0x8fb5858?, 0xc002ed8de0?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/metrics.go:58 +0x37
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*timeoutSender).send(0xc0021d75a0?, {0x8fb5890?, 0xc002ed8db0?}, {0x8f83720?, 0xc002202c60?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/timeout_sender.go:38 +0x90
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*baseRequestSender).send(0xc002ad3500?, {0x8fb5890?, 0xc002ed8db0?}, {0x8f83720?, 0xc002202c60?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/common.go:33 +0x36
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*metricsSenderWithObservability).send(0xc002b468d0, {0x8fb5890?, 0xc002b46b10?}, {0x8f83720?, 0xc002202c60?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/metrics.go:173 +0x84
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*baseRequestSender).send(0xc002b466f0?, {0x8fb5890?, 0xc002b46b10?}, {0x8f83720?, 0xc002202c60?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/common.go:33 +0x36
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.(*baseExporter).send(...)
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/common.go:189
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/exporter/exporterhelper.NewMetricsExporter.func1({0x8fb5890, 0xc002b46b10}, {0xc002202a68?, 0xc0021fe8f0?})
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/exporterhelper/metrics.go:98 +0xed
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/consumer.ConsumeMetricsFunc.ConsumeMetrics(...)
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/[email protected]/metrics.go:25
metrics-poc-otel-collector-1 | go.opentelemetry.io/collector/internal/fanoutconsumer.(*metricsConsumer).ConsumeMetrics(0xc002869f80?, {0x8fb5890, 0xc002b46b10}, {0xc002202a68?, 0xc0021fe8f0?})
Additional context
No response