Skip to content

Latest commit

 

History

History
148 lines (116 loc) · 7.57 KB

File metadata and controls

148 lines (116 loc) · 7.57 KB

Debug Exporter

Status
Stability development: profiles
alpha: traces, metrics, logs
Distributions core, contrib, k8s
Warnings Unstable Output Format
Issues Open issues Closed issues
Code Owners @andrzej-stencel

Outputs telemetry data to the console for debugging purposes.

See also the Troubleshooting document for examples on using this exporter.

Getting Started

The following settings are optional:

  • verbosity (default = basic): the verbosity of the debug exporter: basic, normal or detailed. See Verbosity levels below for more information.
  • sampling_initial (default = 2): number of messages initially logged each second.
  • sampling_thereafter (default = 1): sampling rate after the initial messages are logged (every Mth message is logged). The default value of 1 means that sampling is disabled. To enable sampling, change sampling_thereafter to a value higher than 1. Refer to Zap docs for more details on how sampling parameters impact number of messages.
  • use_internal_logger (default = true): uses the collector's internal logger for output. See below for description.
  • sending_queue (disabled by default): see Sending Queue for the full set of available options.

Example configuration:

exporters:
  debug:
    verbosity: detailed
    sampling_initial: 5
    sampling_thereafter: 200

Verbosity levels

The following subsections describe the output from the exporter depending on the configured verbosity level - basic, normal and detailed. The default verbosity level is basic.

To understand how the below example output was generated, see Generating example output.

Basic verbosity

With verbosity: basic, the exporter outputs a single-line summary of received data with a total count of telemetry records for every batch of received logs, metrics or traces.

Here's an example output:

2025-04-17T10:40:44.559+0200    info    Traces  {"otelcol.component.id": "debug/basic", "otelcol.component.kind": "Exporter", "otelcol.signal": "traces", "resource spans": 1, "spans": 2}

Normal verbosity

With verbosity: normal, the exporter outputs about one line for each telemetry record. The "one line per telemetry record" is not a strict rule. For example, logs with multiline body will be output as multiple lines.

Here's an example output:

2025-05-09T19:57:16.332+0200    info    Traces  {"resource": {}, "otelcol.component.id": "debug/normal", "otelcol.component.kind": "exporter", "otelcol.signal": "traces", "resource spans": 1, "spans": 2}
2025-05-09T19:57:16.332+0200    info    ResourceTraces #0 [https://opentelemetry.io/schemas/1.25.0] service.name=telemetrygen
ScopeTraces #0 telemetrygen
okey-dokey-0 ab1030bd4ee554af936542b01d7b4807 1d8c93663d043aa8 net.sock.peer.addr=1.2.3.4 peer.service=telemetrygen-client
lets-go ab1030bd4ee554af936542b01d7b4807 0d238e8a2f97733f net.sock.peer.addr=1.2.3.4 peer.service=telemetrygen-server
        {"resource": {}, "otelcol.component.id": "debug/normal", "otelcol.component.kind": "exporter", "otelcol.signal": "traces"}

Detailed verbosity

With verbosity: detailed, the exporter outputs all details of every telemetry record, typically writing multiple lines for every telemetry record.

Here's an example output:

2025-04-17T10:40:44.560+0200    info    Traces  {"otelcol.component.id": "debug/detailed", "otelcol.component.kind": "Exporter", "otelcol.signal": "traces", "resource spans": 1, "spans": 2}
2025-04-17T10:40:44.560+0200    info    ResourceSpans #0
Resource SchemaURL: https://opentelemetry.io/schemas/1.25.0
Resource attributes:
     -> service.name: Str(telemetrygen)
ScopeSpans #0
ScopeSpans SchemaURL: 
InstrumentationScope telemetrygen 
Span #0
    Trace ID       : fafdac970271dd2ce89de2442c0518c7
    Parent ID      : d98de4cb8e2a0ad6
    ID             : 3875f436d989d0e5
    Name           : okey-dokey-0
    Kind           : Server
    Start time     : 2025-04-17 08:40:44.555461596 +0000 UTC
    End time       : 2025-04-17 08:40:44.555584596 +0000 UTC
    Status code    : Unset
    Status message : 
Attributes:
     -> net.sock.peer.addr: Str(1.2.3.4)
     -> peer.service: Str(telemetrygen-client)
Span #1
    Trace ID       : fafdac970271dd2ce89de2442c0518c7
    Parent ID      : 
    ID             : d98de4cb8e2a0ad6
    Name           : lets-go
    Kind           : Client
    Start time     : 2025-04-17 08:40:44.555461596 +0000 UTC
    End time       : 2025-04-17 08:40:44.555584596 +0000 UTC
    Status code    : Unset
    Status message : 
Attributes:
     -> net.sock.peer.addr: Str(1.2.3.4)
     -> peer.service: Str(telemetrygen-server)
        {"otelcol.component.id": "debug/detailed", "otelcol.component.kind": "Exporter", "otelcol.signal": "traces"}

Using the collector's internal logger

When use_internal_logger is set to true (the default), the exporter uses the collector's internal logger for output. This comes with the following consequences:

  • The output from the exporter may be annotated by additional output from the collector's logger.
  • The output from the exporter is affected by the collector's logging configuration specified in service::telemetry::logs.

When use_internal_logger is set to false, the exporter does not use the collector's internal logger. Changing the values in service::telemetry::logs has no effect on the exporter's output. The exporter's output is sent to stdout.

Warnings

  • Unstable Output Format: The output formats for all verbosity levels is not guaranteed and may be changed at any time without a breaking change.