Skip to content

Conversation

andrzej-stencel
Copy link
Member

Description

After introducing the feature gate stanza.synchronousLogEmitter it is not possible to tell which log emitter (SynchronousLogEmitter or BatchingLogEmitter) is being used just by looking at debug logs.

This is what the operator logs look like when built on current main (a372d05). Note the part "operator_id": "log_emitter", "operator_type": "log_emitter":

$ otelcol-contrib-0.124.1-linux_amd64 --config config.yaml
2025-04-25T10:04:40.110+0200    info    [email protected]/service.go:199   Setting up own telemetry...
...
2025-04-25T10:04:40.112+0200    info    adapter/receiver.go:41  Starting stanza receiver        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs"}
2025-04-25T10:04:40.112+0200    debug   pipeline/directed.go:59 Starting operator       {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "log_emitter", "operator_type": "log_emitter"}
2025-04-25T10:04:40.112+0200    debug   pipeline/directed.go:63 Started operator        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "log_emitter", "operator_type": "log_emitter"}

I'm fixing this in this pull request by naming the two log emitter outputs differently.

Here's what the logs look like after the change - note the part "operator_id": "batching_log_emitter", "operator_type": "batching_log_emitter":

$ /bin/otelcontribcol_linux_amd64 --config config.yaml
2025-04-25T10:02:10.563+0200    info    [email protected]/service.go:199   Setting up own telemetry...
...
2025-04-25T10:02:10.566+0200    info    adapter/receiver.go:41  Starting stanza receiver        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs"}
2025-04-25T10:02:10.566+0200    debug   pipeline/directed.go:59 Starting operator       {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "batching_log_emitter", "operator_type": "batching_log_emitter"}
2025-04-25T10:02:10.566+0200    debug   pipeline/directed.go:63 Started operator        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "batching_log_emitter", "operator_type": "batching_log_emitter"}

And with feature gate switched on - note the part "operator_id": "synchronous_log_emitter", "operator_type": "synchronous_log_emitter":

$ bin/otelcontribcol_linux_amd64 --config config.yaml --feature-gates=stanza.synchronousLogEmitter 
2025-04-25T10:02:16.529+0200    info    [email protected]/service.go:199   Setting up own telemetry...
...
2025-04-25T10:02:16.532+0200    info    adapter/receiver.go:41  Starting stanza receiver        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs"}
2025-04-25T10:02:16.532+0200    debug   pipeline/directed.go:59 Starting operator       {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "synchronous_log_emitter", "operator_type": "synchronous_log_emitter"}
2025-04-25T10:02:16.532+0200    debug   pipeline/directed.go:63 Started operator        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "synchronous_log_emitter", "operator_type": "synchronous_log_emitter"}

@andrzej-stencel andrzej-stencel requested review from a team and djaglowski as code owners April 25, 2025 08:08
@andrzej-stencel andrzej-stencel added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Apr 25, 2025
@andrzej-stencel andrzej-stencel changed the title chore(pkg/stanza): make it possible to tell emitters apart in logs [chore] [pkg/stanza] make it possible to tell emitters apart in logs Apr 25, 2025
@djaglowski djaglowski merged commit 949126a into open-telemetry:main Apr 25, 2025
183 of 184 checks passed
@github-actions github-actions bot added this to the next release milestone Apr 25, 2025
@andrzej-stencel andrzej-stencel deleted the tell-emitters-apart branch May 5, 2025 08:36
vincentfree pushed a commit to ing-bank/opentelemetry-collector-contrib that referenced this pull request May 6, 2025
…pen-telemetry#39649)

#### Description

After introducing the feature gate `stanza.synchronousLogEmitter` it is
not possible to tell which log emitter (SynchronousLogEmitter or
BatchingLogEmitter) is being used just by looking at debug logs.

This is what the operator logs look like when built on current `main`
(open-telemetry@a372d05).
Note the part `"operator_id": "log_emitter", "operator_type":
"log_emitter"`:

```console
$ otelcol-contrib-0.124.1-linux_amd64 --config config.yaml
2025-04-25T10:04:40.110+0200    info    [email protected]/service.go:199   Setting up own telemetry...
...
2025-04-25T10:04:40.112+0200    info    adapter/receiver.go:41  Starting stanza receiver        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs"}
2025-04-25T10:04:40.112+0200    debug   pipeline/directed.go:59 Starting operator       {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "log_emitter", "operator_type": "log_emitter"}
2025-04-25T10:04:40.112+0200    debug   pipeline/directed.go:63 Started operator        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "log_emitter", "operator_type": "log_emitter"}
```

I'm fixing this in this pull request by naming the two log emitter
outputs differently.

Here's what the logs look like after the change - note the part
`"operator_id": "batching_log_emitter", "operator_type":
"batching_log_emitter"`:

```console
$ /bin/otelcontribcol_linux_amd64 --config config.yaml
2025-04-25T10:02:10.563+0200    info    [email protected]/service.go:199   Setting up own telemetry...
...
2025-04-25T10:02:10.566+0200    info    adapter/receiver.go:41  Starting stanza receiver        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs"}
2025-04-25T10:02:10.566+0200    debug   pipeline/directed.go:59 Starting operator       {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "batching_log_emitter", "operator_type": "batching_log_emitter"}
2025-04-25T10:02:10.566+0200    debug   pipeline/directed.go:63 Started operator        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "batching_log_emitter", "operator_type": "batching_log_emitter"}
```

And with feature gate switched on - note the part `"operator_id":
"synchronous_log_emitter", "operator_type": "synchronous_log_emitter"`:

```console
$ bin/otelcontribcol_linux_amd64 --config config.yaml --feature-gates=stanza.synchronousLogEmitter 
2025-04-25T10:02:16.529+0200    info    [email protected]/service.go:199   Setting up own telemetry...
...
2025-04-25T10:02:16.532+0200    info    adapter/receiver.go:41  Starting stanza receiver        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs"}
2025-04-25T10:02:16.532+0200    debug   pipeline/directed.go:59 Starting operator       {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "synchronous_log_emitter", "operator_type": "synchronous_log_emitter"}
2025-04-25T10:02:16.532+0200    debug   pipeline/directed.go:63 Started operator        {"otelcol.component.id": "filelog", "otelcol.component.kind": "receiver", "otelcol.signal": "logs", "operator_id": "synchronous_log_emitter", "operator_type": "synchronous_log_emitter"}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg/stanza Skip Changelog PRs that do not require a CHANGELOG.md entry

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants