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.

Open source


otelcol.exporter.loki accepts OTLP-formatted logs from other otelcol components, converts them to Loki-formatted log entries, and forwards them to loki components.

NOTE: otelcol.exporter.loki is a custom component unrelated to the lokiexporter from the OpenTelemetry Collector.

Conversion of logs are done according to the OpenTelemetry Logs Data Model specification.

Multiple otelcol.exporter.loki components can be specified by giving them different labels.


otelcol.exporter.loki "LABEL" {
  forward_to = [...]


otelcol.exporter.loki supports the following arguments:

forward_tolist(receiver)Where to forward converted Loki logs.yes

Exported fields

The following fields are exported and can be referenced by other components:

inputotelcol.ConsumerA value that other components can use to send telemetry data to.

input accepts otelcol.Consumer data for logs. Other telemetry signals are ignored.

Logs sent to input are converted to Loki-compatible log entries and are forwarded to the forward_to argument in sequence.

Component health

otelcol.exporter.loki is only reported as unhealthy if given an invalid configuration.

Debug information

otelcol.exporter.loki does not expose any component-specific debug information.


This example accepts OTLP logs over gRPC, transforms them and forwards the converted log entries to loki.write:

otelcol.receiver.otlp "default" {
  grpc {}

  output {
    logs = [otelcol.exporter.loki.default.input]

otelcol.exporter.loki "default" {
  forward_to = [loki.write.local.receiver]

loki.write "local" {
    endpoint {
        url = "loki:3100"