Skip to content

Commit 8e33ded

Browse files
fix otelcol_exporter_send_failed_requests count error (#7527)
fix otelcol_exporter_send_failed_requests count error Link to tracking Issue: fixed #7456
1 parent dbbd59a commit 8e33ded

File tree

3 files changed

+42
-11
lines changed

3 files changed

+42
-11
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
2+
change_type: bug_fix
3+
4+
# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
5+
component: obsreport
6+
7+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
8+
note: fix issue where send_failed_requests counter was reporting an incorrect value.
9+
10+
# One or more tracking issues or pull requests related to the change
11+
issues: [7456]
12+

obsreport/obsreport_exporter.go

+12-5
Original file line numberDiff line numberDiff line change
@@ -229,11 +229,18 @@ func (exp *Exporter) recordWithOC(ctx context.Context, dataType component.DataTy
229229
failedMeasure = obsmetrics.ExporterFailedToSendLogRecords
230230
}
231231

232-
_ = stats.RecordWithTags(
233-
ctx,
234-
exp.mutators,
235-
sentMeasure.M(sent),
236-
failedMeasure.M(failed))
232+
if failed > 0 {
233+
_ = stats.RecordWithTags(
234+
ctx,
235+
exp.mutators,
236+
sentMeasure.M(sent),
237+
failedMeasure.M(failed))
238+
} else {
239+
_ = stats.RecordWithTags(
240+
ctx,
241+
exp.mutators,
242+
sentMeasure.M(sent))
243+
}
237244
}
238245

239246
func endSpan(ctx context.Context, err error, numSent, numFailedToSend int64, sentItemsKey, failedToSendItemsKey string) {

obsreport/obsreporttest/otelprometheuschecker.go

+18-6
Original file line numberDiff line numberDiff line change
@@ -88,23 +88,35 @@ func (pc *prometheusChecker) checkProcessorLogs(processor component.ID, accepted
8888

8989
func (pc *prometheusChecker) checkExporterTraces(exporter component.ID, sentSpans, sendFailedSpans int64) error {
9090
exporterAttrs := attributesForExporterMetrics(exporter)
91+
if sendFailedSpans > 0 {
92+
return multierr.Combine(
93+
pc.checkCounter("exporter_sent_spans", sentSpans, exporterAttrs),
94+
pc.checkCounter("exporter_send_failed_spans", sendFailedSpans, exporterAttrs))
95+
}
9196
return multierr.Combine(
92-
pc.checkCounter("exporter_sent_spans", sentSpans, exporterAttrs),
93-
pc.checkCounter("exporter_send_failed_spans", sendFailedSpans, exporterAttrs))
97+
pc.checkCounter("exporter_sent_spans", sentSpans, exporterAttrs))
9498
}
9599

96100
func (pc *prometheusChecker) checkExporterLogs(exporter component.ID, sentLogRecords, sendFailedLogRecords int64) error {
97101
exporterAttrs := attributesForExporterMetrics(exporter)
102+
if sendFailedLogRecords > 0 {
103+
return multierr.Combine(
104+
pc.checkCounter("exporter_sent_log_records", sentLogRecords, exporterAttrs),
105+
pc.checkCounter("exporter_send_failed_log_records", sendFailedLogRecords, exporterAttrs))
106+
}
98107
return multierr.Combine(
99-
pc.checkCounter("exporter_sent_log_records", sentLogRecords, exporterAttrs),
100-
pc.checkCounter("exporter_send_failed_log_records", sendFailedLogRecords, exporterAttrs))
108+
pc.checkCounter("exporter_sent_log_records", sentLogRecords, exporterAttrs))
101109
}
102110

103111
func (pc *prometheusChecker) checkExporterMetrics(exporter component.ID, sentMetricPoints, sendFailedMetricPoints int64) error {
104112
exporterAttrs := attributesForExporterMetrics(exporter)
113+
if sendFailedMetricPoints > 0 {
114+
return multierr.Combine(
115+
pc.checkCounter("exporter_sent_metric_points", sentMetricPoints, exporterAttrs),
116+
pc.checkCounter("exporter_send_failed_metric_points", sendFailedMetricPoints, exporterAttrs))
117+
}
105118
return multierr.Combine(
106-
pc.checkCounter("exporter_sent_metric_points", sentMetricPoints, exporterAttrs),
107-
pc.checkCounter("exporter_send_failed_metric_points", sendFailedMetricPoints, exporterAttrs))
119+
pc.checkCounter("exporter_sent_metric_points", sentMetricPoints, exporterAttrs))
108120
}
109121

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

0 commit comments

Comments
 (0)