Caution
Grafana Alloy is the new name for our distribution of the OTel collector. Grafana Agent has been deprecated and is in Long-Term Support (LTS) through October 31, 2025. Grafana Agent will reach an End-of-Life (EOL) on November 1, 2025. Read more about why we recommend migrating to Grafana Alloy.
Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
otelcol.receiver.zipkin
otelcol.receiver.zipkin accepts Zipkin-formatted traces over the network and
forwards it to other otelcol.* components.
NOTE:
otelcol.receiver.zipkinis a wrapper over the upstream OpenTelemetry Collectorzipkinreceiver. Bug reports or feature requests will be redirected to the upstream repository, if necessary.
Multiple otelcol.receiver.zipkin components can be specified by giving them
different labels.
Usage
otelcol.receiver.zipkin "LABEL" {
  output {
    traces = [...]
  }
}Arguments
otelcol.receiver.zipkin supports the following arguments:
| Name | Type | Description | Default | Required | 
|---|---|---|---|---|
| parse_string_tags | bool | Parse string tags and binary annotations into non-string types. | false | no | 
| endpoint | string | host:portto listen for traffic on. | "0.0.0.0:9411" | no | 
| max_request_body_size | string | Maximum request body size the HTTP server will allow. No limit when unset. | no | |
| include_metadata | boolean | Propagate incoming connection metadata to downstream consumers. | no | 
If parse_string_tags is true, string tags and binary annotations are
converted to int, bool, and float if possible. String tags and binary
annotations that cannot be converted remain unchanged.
Blocks
The following blocks are supported inside the definition of
otelcol.receiver.zipkin:
| Hierarchy | Block | Description | Required | 
|---|---|---|---|
| tls | tls | Configures TLS for the HTTP server. | no | 
| cors | cors | Configures CORS for the HTTP server. | no | 
| debug_metrics | debug_metrics | Configures the metrics that this component generates to monitor its state. | no | 
| output | output | Configures where to send received traces. | yes | 
The > symbol indicates deeper levels of nesting. For example, grpc > tls
refers to a tls block defined inside a grpc block.
tls block
The tls block configures TLS settings used for a server. If the tls block
isn’t provided, TLS won’t be used for connections to the server.
The following arguments are supported:
| Name | Type | Description | Default | Required | 
|---|---|---|---|---|
| ca_file | string | Path to the CA file. | no | |
| ca_pem | string | CA PEM-encoded text to validate the server with. | no | |
| cert_file | string | Path to the TLS certificate. | no | |
| cert_pem | string | Certificate PEM-encoded text for client authentication. | no | |
| insecure_skip_verify | boolean | Ignores insecure server TLS certificates. | no | |
| insecure | boolean | Disables TLS when connecting to the configured server. | no | |
| key_file | string | Path to the TLS certificate key. | no | |
| key_pem | secret | Key PEM-encoded text for client authentication. | no | |
| max_version | string | Maximum acceptable TLS version for connections. | "TLS 1.3" | no | 
| min_version | string | Minimum acceptable TLS version for connections. | "TLS 1.2" | no | 
| reload_interval | duration | The duration after which the certificate is reloaded. | "0s" | no | 
| server_name | string | Verifies the hostname of server certificates when set. | no | 
If the server doesn’t support TLS, you must set the insecure argument to true.
To disable tls for connections to the server, set the insecure argument to true.
If reload_interval is set to "0s", the certificate never reloaded.
The following pairs of arguments are mutually exclusive and can’t both be set simultaneously:
- ca_pemand- ca_file
- cert_pemand- cert_file
- key_pemand- key_file
cors block
The cors block configures CORS settings for an HTTP server.
The following arguments are supported:
| Name | Type | Description | Default | Required | 
|---|---|---|---|---|
| allowed_origins | list(string) | Allowed values for the Originheader. | no | |
| allowed_headers | list(string) | Accepted headers from CORS requests. | ["X-Requested-With"] | no | 
| max_age | number | Configures the Access-Control-Max-Ageresponse header. | no | 
The allowed_headers argument specifies which headers are acceptable from a
CORS request. The following headers are always implicitly allowed:
- Accept
- Accept-Language
- Content-Type
- Content-Language
If allowed_headers includes "*", all headers are permitted.
debug_metrics block
The debug_metrics block configures the metrics that this component generates to monitor its state.
The following arguments are supported:
| Name | Type | Description | Default | Required | 
|---|---|---|---|---|
| disable_high_cardinality_metrics | boolean | Whether to disable certain high cardinality metrics. | false | no | 
disable_high_cardinality_metrics is the Grafana Agent equivalent to the telemetry.disableHighCardinalityMetrics feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.
output block
The output block configures a set of components to forward resulting telemetry data to.
The following arguments are supported:
| Name | Type | Description | Default | Required | 
|---|---|---|---|---|
| logs | list(otelcol.Consumer) | List of consumers to send logs to. | [] | no | 
| metrics | list(otelcol.Consumer) | List of consumers to send metrics to. | [] | no | 
| traces | list(otelcol.Consumer) | List of consumers to send traces to. | [] | no | 
You must specify the output block, but all its arguments are optional.
By default, telemetry data is dropped.
Configure the metrics, logs, and traces arguments accordingly to send telemetry data to other components.
Exported fields
otelcol.receiver.zipkin does not export any fields.
Component health
otelcol.receiver.zipkin is only reported as unhealthy if given an invalid
configuration.
Debug information
otelcol.receiver.zipkin does not expose any component-specific debug
information.
Example
This example forwards received traces through a batch processor before finally sending it to an OTLP-capable endpoint:
otelcol.receiver.zipkin "default" {
  output {
    traces = [otelcol.processor.batch.default.input]
  }
}
otelcol.processor.batch "default" {
  output {
    metrics = [otelcol.exporter.otlp.default.input]
    logs    = [otelcol.exporter.otlp.default.input]
    traces  = [otelcol.exporter.otlp.default.input]
  }
}
otelcol.exporter.otlp "default" {
  client {
    endpoint = env("OTLP_ENDPOINT")
  }
}






