Skip to content

Latest commit

 

History

History
141 lines (110 loc) · 6.58 KB

File metadata and controls

141 lines (110 loc) · 6.58 KB

Debug Exporter

Status
Stability development: traces, metrics, logs, profiles
Distributions core, contrib, k8s
Warnings Unstable Output Format
Issues Open issues Closed issues

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 (detailed|normal|basic). When set to detailed, pipeline data is verbosely logged.
  • 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.

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.

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:

2023-11-10T22:49:03.510-0600    info    TracesExporter  {"kind": "exporter", "data_type": "traces", "name": "debug", "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:

2024-06-24T15:18:58.559+0200    info    TracesExporter  {"kind": "exporter", "data_type": "traces", "name": "debug", "resource spans": 1, "spans": 2}
2024-06-24T15:18:58.559+0200    info    okey-dokey-0 4bdc558f0f0650e3ccaac8f3ae133954 8b69459f015c164b net.peer.ip=1.2.3.4 peer.service=telemetrygen-client
lets-go 4bdc558f0f0650e3ccaac8f3ae133954 8820ee5366817639 net.peer.ip=1.2.3.4 peer.service=telemetrygen-server
        {"kind": "exporter", "data_type": "traces", "name": "debug"}

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:

2023-11-10T22:49:03.510-0600    info    TracesExporter  {"kind": "exporter", "data_type": "traces", "name": "debug", "resource spans": 1, "spans": 2}
2023-11-10T22:49:03.510-0600    info    ResourceSpans #0
Resource SchemaURL: https://opentelemetry.io/schemas/1.4.0
Resource attributes:
     -> service.name: Str(telemetrygen)
ScopeSpans #0
ScopeSpans SchemaURL:
InstrumentationScope telemetrygen
Span #0
    Trace ID       : 3bde5d3ee82303571bba6e1136781fe4
    Parent ID      : 5e9dcf9bac4acc1f
    ID             : 2cf3ef2899aba35c
    Name           : okey-dokey
    Kind           : Server
    Start time     : 2023-11-11 04:49:03.509369393 +0000 UTC
    End time       : 2023-11-11 04:49:03.50949377 +0000 UTC
    Status code    : Unset
    Status message :
Attributes:
     -> net.peer.ip: Str(1.2.3.4)
     -> peer.service: Str(telemetrygen-client)
Span #1
    Trace ID       : 3bde5d3ee82303571bba6e1136781fe4
    Parent ID      :
    ID             : 5e9dcf9bac4acc1f
    Name           : lets-go
    Kind           : Client
    Start time     : 2023-11-11 04:49:03.50935117 +0000 UTC
    End time       : 2023-11-11 04:49:03.50949377 +0000 UTC
    Status code    : Unset
    Status message :
Attributes:
     -> net.peer.ip: Str(1.2.3.4)
     -> peer.service: Str(telemetrygen-server)
        {"kind": "exporter", "data_type": "traces", "name": "debug"}

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.