package opentelemetry-client-cohttp-lwt

  1. Overview
  2. Docs
Collector client for opentelemetry, using cohttp + lwt


Dune Dependency






  • compat with trace 0.7


  • feat: add dep on hmap, add standard keys to carry around a span context or trace id

  • add semantic conventions for code and HTTP

  • better debug message in curl backend

  • make otel-trace a bit more lightweight


  • add Span_link.of_span_ctx, Scope.to_span_ctx, dummy values

  • feat: add Span_context, as required by OTEL API guidelines

  • feat: record backtraces in error spans

  • compat with trace 0.6

  • ocurl: add ticker_interval_ms config

  • ocurl: do some self-tracing optionally

  • move protobuf code to opentelemetry.proto

  • perf: rewrite parsing+printing for span ctx as w3c trace ctx

  • perf: when we get multiple messages, check batches only once

  • perf: use ocaml-protoc 3.0.1 for codegen, with faster pbrt


  • fix ticker thread shutdown

  • migrated to OTEL proto files v1.0

  • replace Thread_local with ocaml-ambient-context, allowing for implicit scope in Lwt/Eio contexts (#34)

  • update ocaml-trace interface to use the new trace.0.3-style API (breaking, see #34)


  • new implementation for ocurl backend, using ezcurl and queues

  • refactor lwt: Use try%lwt over Lwt.catch

  • add opentelemetry.trace (optional, depends on ocaml-trace)


  • expose Scope.get_surrounding

  • rehault of GC metrics

  • Trace.with_ now has force_new_trace_id param

  • use thread-local storage to store global scope

  • add Span_link module

  • add a Globals.default_span_kind ref to specify default span kind

  • fix(otel-lwt): missing modules now re-exported

  • fix(client-ocurl): fix tick version used in the absence of bg thread

  • drop dep on ocaml-protoc as the generated code is checked-in

  • update vendored otel to 0.19


  • improve error reporting from ocurl exporter

  • improve GC sample collection

  • feat(ocurl): simpler, cleaner backend implementation, with graceful exit

  • config: make Config.t private (breaking)


  • require pbrt only, use ocaml-protoc as a lint

  • add Metrics_callbacks module

  • add histogram metrics (untested)

  • basic support for logs

  • expose tick function (useful in the absence of a background thread)

  • debug the library is set via OTEL_OCAML_DEBUG

  • provide conventions for standard metrics

  • add runtime attrs to GC stats


Innovation. Community. Security.