LLM emitters

Embed
Preview of the card
<a href="https://forumulate.com/p/watchtower/guides/llm-emitters"><img src="https://forumulate.com/api/public/orgs/watchtower/spaces/guides/pages/0761bbef-d28f-4752-8f7c-d724efa96cac/social-card.svg?v=3e7ae33eec8b" alt="LLM emitters" width="600" height="315"></a>

Watchtower maps OTel GenAI spans into the LLM views. No SDK of ours is needed; point the emitter's OTLP exporter at the gateway with an ingestion key.

Emitter

How

Notes

LiteLLM proxy

litellm_settings: {callbacks: ["otel"]} and OTEL_EXPORTER=otlp_http, OTEL_ENDPOINT=<gateway>, OTEL_HEADERS=authorization=Bearer <wti key>

Maps provider, models and token counts. Fixture: crates/wt-llm/tests/fixtures/litellm.json (litellm_fixture_maps).

OpenLLMetry (Traceloop)

Traceloop.init(exporter=OTLPSpanExporter(...))

Fixture openllmetry_openai.json.

OpenInference

Any OpenInference instrumentor with an OTLP exporter

Fixture openinference_langchain.json.

Prompts and completions are stored according to the project's payload mode; in metadata-only mode they are dropped before storage. Gateways such as LiteLLM or Portkey are also monitored as ordinary services through their /metrics endpoint.

PostHog

Watchtower builds no product analytics. Set the project's PostHog host (PUT /v1/projects/{p}/rum/posthog), then GET /v1/projects/{p}/llm/links?user_ref=&conversation_id= returns deep links into PostHog for that user or conversation, or nulls when no connector is set.

Updated