Skip to main content
The OpenTelemetry Collector forwards logs and traces to Bronto via OTLP/HTTP. This page covers Collector configuration only. For installation instructions, see the OpenTelemetry Collector documentation. For SDK-based instrumentation, see Bronto’s language-specific OpenTelemetry guides.

Endpoints

Use the endpoints for your Bronto region:
RegionLogs endpointTraces endpoint
EUhttps://ingestion.eu.bronto.io/v1/logshttps://ingestion.eu.bronto.io/v1/traces
UShttps://ingestion.us.bronto.io/v1/logshttps://ingestion.us.bronto.io/v1/traces
The OTel Collector routes logs and traces to the correct dataset and collection automatically using the service.name and service.namespace resource attributes. Only the API key header is required; the rest are optional overrides:
HeaderRequiredDescription
x-bronto-api-keyRequiredYour Bronto API key.
x-bronto-datasetOptionalOverrides service.name as the dataset.
x-bronto-collectionOptionalOverrides service.namespace as the collection.
x-bronto-tagsOptionalKey-value tag pairs (e.g. env=prod,team=platform). See Partitions.

Logs and traces

Run both pipelines through a single Collector. Tail log files via the filelog receiver, accept OTLP traces from your applications via the otlp receiver, and ship each signal to its own Bronto exporter.
/etc/otel/config.yaml
receivers:
  filelog/app:
    include:
      - /path/to/your/logs
    resource:
      service.name: <YOUR_DATASET_NAME>
      service.namespace: <YOUR_COLLECTION_NAME>
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

processors:
  batch:

exporters:
  otlphttp/brontologs:
    logs_endpoint: "https://ingestion.<REGION>.bronto.io/v1/logs"
    compression: gzip
    headers:
      x-bronto-api-key: <YOUR_API_KEY>
  otlphttp/brontotraces:
    traces_endpoint: "https://ingestion.<REGION>.bronto.io/v1/traces"
    compression: gzip
    headers:
      x-bronto-api-key: <YOUR_API_KEY>

service:
  pipelines:
    logs:
      receivers: [filelog/app]
      processors: [batch]
      exporters: [otlphttp/brontologs]
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp/brontotraces]
The service.name and service.namespace resource attributes are used by Bronto to route logs to the correct dataset and collection. You can override them with the x-bronto-dataset and x-bronto-collection headers. For more on tracing — including SDK-based export — see Send Traces to Bronto.

Logs only

If you only need to forward logs, drop the OTLP receiver and traces pipeline.
/etc/otel/config.yaml
receivers:
  filelog/<DATASET_NAME>:
    include:
      - /path/to/your/logs
    resource:
      service.name: <YOUR_DATASET_NAME>
      service.namespace: <YOUR_COLLECTION_NAME>

processors:
  batch:

exporters:
  otlphttp/brontologs:
    logs_endpoint: "https://ingestion.<REGION>.bronto.io/v1/logs"
    compression: gzip
    headers:
      x-bronto-api-key: <YOUR_API_KEY>

service:
  pipelines:
    logs:
      receivers: [filelog/<DATASET_NAME>]
      processors: [batch]
      exporters: [otlphttp/brontologs]

Parsing unstructured logs

Rather than building parser operators in the Collector for unstructured text, ship raw log lines to Bronto and use the Bronto Custom Parser to extract structured fields server-side. The Custom Parser uses LLMs to generate parsers automatically and ships with built-in support for Apache, IIS, HAProxy, Syslog, key-value, and custom formats — no regex maintenance required.

Kubernetes

For Kubernetes deployments, install the Collector using the OpenTelemetry Helm chart.
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm install otel-collector open-telemetry/opentelemetry-collector \
  --values values.yaml
Use the x-bronto-collection header to identify the cluster (e.g. cluster1-prod-us-east-1). Bronto infers dataset/service names from log attributes and span resources, so per-service routing is handled automatically.
values.yaml
mode: daemonset

config:
  receivers:
    filelog:
      include:
        - /var/log/pods/*/*/*.log
    otlp:
      protocols:
        grpc:
          endpoint: 0.0.0.0:4317
        http:
          endpoint: 0.0.0.0:4318

  processors:
    batch:
    k8sattributes:

  exporters:
    otlphttp/brontologs:
      logs_endpoint: "https://ingestion.<REGION>.bronto.io/v1/logs"
      compression: gzip
      headers:
        x-bronto-api-key: <YOUR_API_KEY>
        x-bronto-collection: <CLUSTER_NAME>-<ENVIRONMENT>-<REGION>
    otlphttp/brontotraces:
      traces_endpoint: "https://ingestion.<REGION>.bronto.io/v1/traces"
      compression: gzip
      headers:
        x-bronto-api-key: <YOUR_API_KEY>
        x-bronto-collection: <CLUSTER_NAME>-<ENVIRONMENT>-<REGION>

  service:
    pipelines:
      logs:
        receivers: [filelog]
        processors: [k8sattributes, batch]
        exporters: [otlphttp/brontologs]
      traces:
        receivers: [otlp]
        processors: [k8sattributes, batch]
        exporters: [otlphttp/brontotraces]
The k8sattributes processor enriches logs and traces with pod, namespace, and node metadata. See the OpenTelemetry Demo Kubernetes deployment guide for further context on backend configuration.

Verify delivery

Once your configuration is applied and the Collector is restarted:

Further reading