Use this file to discover all available pages before exploring further.
This page covers instrumenting a Kotlin application with the OpenTelemetry Java SDK to send logs and traces to Bronto over OTLP/HTTP via a local OTel Collector. Logs are bridged via the Logback appender — no log statement changes needed. Traces are added by configuring a tracer provider alongside the log provider.
If you don’t have a Collector and want to export directly from your application to Bronto, see Direct export to Bronto at the bottom of this page.
After running your application, open the Search page in Bronto. Filter by the dataset name you set in service.name — your log records should appear within a few seconds.If no logs appear, check:
The OTel Collector is running and reachable at the configured endpoint.
The Collector’s pipeline includes a logs pipeline with an otlp receiver and the Bronto exporter — see Connect Open Telemetry to Bronto.
OpenTelemetryAppender.install() is called before the first log statement.
BatchLogRecordProcessor exports on a background thread — for short-lived programs, add a shutdown call: loggerProvider.shutdown().
The OpenTelemetry Java Agent works for Kotlin applications too — attach it with -javaagent:opentelemetry-javaagent.jar to auto-instrument Spring Boot, Hibernate, gRPC, Kafka, and many more frameworks with no code changes.
No additional packages are needed — opentelemetry-sdk and opentelemetry-exporter-otlp already include tracing support.Create a SdkTracerProvider and combine it with the SdkLoggerProvider in the same OpenTelemetrySdk builder:
If you are not using an OTel Collector, export directly to Bronto by replacing the exporter configurations with the Bronto OTLP endpoints and your API key:
val logExporter = OtlpHttpLogRecordExporter.builder() .setEndpoint("https://ingestion.eu.bronto.io/v1/logs") // or ingestion.us.bronto.io .addHeader("x-bronto-api-key", "<YOUR_API_KEY>") .build()val traceExporter = OtlpHttpSpanExporter.builder() .setEndpoint("https://ingestion.eu.bronto.io/v1/traces") // or ingestion.us.bronto.io .addHeader("x-bronto-api-key", "<YOUR_API_KEY>") .build()
Region
Logs endpoint
Traces endpoint
EU
https://ingestion.eu.bronto.io/v1/logs
https://ingestion.eu.bronto.io/v1/traces
US
https://ingestion.us.bronto.io/v1/logs
https://ingestion.us.bronto.io/v1/traces
See API Keys for how to create a key with ingestion permissions. No other changes to the rest of the setup are required.