Skip to content

Commit 843bbc3

Browse files
[scraperhelper] Make log scrapers emit log-related receiver telemetry (#14654)
#### Description Log scrapers currently emit the same receiver telemetry as metric scrapers, such as the `otelcol_receiver_accepted_metric_points` metric (instead of `otelcol_receiver_accepted_log_records`), or spans named `receiver/myreceiver/MetricsReceived` (instead of `receiver/myreceiver/LogsReceived`). This PR fixes that. #### Testing I adjusted the test which checks the emitted traces.
1 parent d05e7ca commit 843bbc3

3 files changed

Lines changed: 47 additions & 5 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Use this changelog template to create an entry for release notes.
2+
3+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
4+
change_type: 'bug_fix'
5+
6+
# The name of the component, or a single word describing the area of concern, (e.g. receiver/otlp)
7+
component: pkg/scraperhelper
8+
9+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10+
note: Log scrapers now emit log-appropriate receiver telemetry
11+
12+
# One or more tracking issues or pull requests related to the change
13+
issues: [14654]
14+
15+
# (Optional) One or more lines of additional information to render under the primary note.
16+
# These lines will be padded with 2 spaces and then inserted directly into the document.
17+
# Use pipe (|) for multiline entries.
18+
subtext: |
19+
Log scrapers previously emitted the same receiver telemetry as metric scrapers,
20+
such as the otelcol_receiver_accepted_metric_points metric (instead of otelcol_receiver_accepted_log_records),
21+
or spans named receiver/myreceiver/MetricsReceived (instead of receiver/myreceiver/LogsReceived).
22+
23+
This did not affect scraper-specific spans and metrics.
24+
25+
26+
# Optional: The change log or logs in which this entry should be included.
27+
# e.g. '[user]' or '[user, api]'
28+
# Include 'user' if the change is relevant to end users.
29+
# Include 'api' if there is a change to a library API.
30+
# Default: '[user]'
31+
change_logs: []

scraper/scraperhelper/controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,9 @@ func scrapeLogs(c *controller.Controller[scraper.Logs], nextConsumer consumer.Lo
153153
}
154154

155155
logRecordCount := logs.LogRecordCount()
156-
ctx = c.Obsrecv.StartMetricsOp(ctx)
156+
ctx = c.Obsrecv.StartLogsOp(ctx)
157157
err := nextConsumer.ConsumeLogs(ctx, logs)
158-
c.Obsrecv.EndMetricsOp(ctx, "", logRecordCount, err)
158+
c.Obsrecv.EndLogsOp(ctx, "", logRecordCount, err)
159159
}
160160

161161
func scrapeMetrics(c *controller.Controller[scraper.Metrics], nextConsumer consumer.Metrics) {

scraper/scraperhelper/controller_test.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ func TestLogsScrapeController(t *testing.T) {
181181
}
182182

183183
spans := tel.SpanRecorder.Ended()
184-
assertReceiverSpan(t, spans)
184+
assertLogsReceiverSpan(t, spans)
185185
testhelper.AssertScraperSpan(t, test.scrapeErr, spans, "scraper/scraper/ScrapeLogs")
186186
assertLogsScraperObsMetrics(t, tel, receiverID, component.MustNewID("scraper"), test.scrapeErr, sink)
187187
}
@@ -292,7 +292,7 @@ func TestMetricsScrapeController(t *testing.T) {
292292
}
293293

294294
spans := tel.SpanRecorder.Ended()
295-
assertReceiverSpan(t, spans)
295+
assertMetricsReceiverSpan(t, spans)
296296
testhelper.AssertScraperSpan(t, test.scrapeErr, spans, "scraper/scraper/ScrapeMetrics")
297297
assertMetricsScraperObsMetrics(t, tel, receiverID, component.MustNewID("scraper"), test.scrapeErr, sink)
298298
}
@@ -378,7 +378,7 @@ func getExpectedShutdownErr(test scraperTestCase) error {
378378
return errs
379379
}
380380

381-
func assertReceiverSpan(t *testing.T, spans []sdktrace.ReadOnlySpan) {
381+
func assertMetricsReceiverSpan(t *testing.T, spans []sdktrace.ReadOnlySpan) {
382382
receiverSpan := false
383383
for _, span := range spans {
384384
if span.Name() == "receiver/receiver/MetricsReceived" {
@@ -389,6 +389,17 @@ func assertReceiverSpan(t *testing.T, spans []sdktrace.ReadOnlySpan) {
389389
assert.True(t, receiverSpan)
390390
}
391391

392+
func assertLogsReceiverSpan(t *testing.T, spans []sdktrace.ReadOnlySpan) {
393+
receiverSpan := false
394+
for _, span := range spans {
395+
if span.Name() == "receiver/receiver/LogsReceived" {
396+
receiverSpan = true
397+
break
398+
}
399+
}
400+
assert.True(t, receiverSpan)
401+
}
402+
392403
func assertLogsScraperObsMetrics(t *testing.T, tel *componenttest.Telemetry, receiver, scraper component.ID, expectedErr error, sink *consumertest.LogsSink) {
393404
logRecordCounts := 0
394405
for _, md := range sink.AllLogs() {

0 commit comments

Comments
 (0)