Skip to main content

OpenTelemetry SDKs

Pick your language

SparkLogs receives OTLP/HTTP logs natively. Every OpenTelemetry SDK with a stable logs API can ship to SparkLogs directly — no vendor adapter, no custom transport. These pages give you a 5-minute setup with batching, compression, and graceful-shutdown wired correctly out of the box, plus integration recipes for the logging library you already use:

LanguageDocRunnable examples (GitHub)
PythonPythonstdlib logging · structlog · loguru
Node.jsNode.jsmanual OTel · Pino · Winston · Bunyan
JavaJavaLogback · Log4j2
.NET.NETMEL · Serilog · NLog
GoGoslog · zap · logrus · zerolog
RubyRubystdlib Logger
PHPPHPMonolog
RustRusttracing

All examples live in the public sparklogs-ingest-examples repository (make mock-test runs them against a local OTLP mock receiver).

If your language isn't listed (yet), you can still ship logs to SparkLogs — see the OTLP/HTTP API page for the wire-protocol contract, or use any of our agent-based ingestion options.

Do I need a collector?

Probably not, to start. Each language page documents the OTel SDK direct → SparkLogs path, which is the simplest setup and works for most services. Add a local collector when you need queue-on-outage durability, central config, sampling / redaction, or multi-backend fan-out. The OTel SDKs in production guide has the full decision matrix.

What about metrics and traces?

Today SparkLogs receives logs only via OTLP — traces, metrics, and profiles are on the roadmap. The same OTel SDK setup will export those signals to SparkLogs once they're generally available, with no application changes; only the per-signal exporter endpoint will need to be configured.

Where to next

  • Pick your language in the table above for a 5-minute walkthrough.
  • Production deployments: see OTel SDKs in production for batching, backpressure, compression, and graceful shutdown.
  • OTLP/HTTP transport details: see the OTLP/HTTP API page.
  • Tested compatibility: any OTLP-compliant client works (Grafana Alloy, Vector, the OTel Collector itself); see tested compatibility for the full list.