Skip to main content

OpenTelemetry-based tracing module for Lemma

Project description

uselemma-tracing

OpenTelemetry-based tracing for AI agents. Capture inputs, outputs, timing, token usage, and errors — then view everything in Lemma.

Installation

pip install uselemma-tracing

Quick Start

1. Register the tracer provider

Call register_otel once when your application starts. It reads LEMMA_API_KEY and LEMMA_PROJECT_ID from environment variables by default.

from uselemma_tracing import register_otel

register_otel()

You can also enable experiment mode globally for the process:

from uselemma_tracing import enable_experiment_mode

enable_experiment_mode()

2. Wrap your agent

wrap_agent creates a root OpenTelemetry span named ai.agent.run and records:

  • ai.agent.name
  • lemma.run_id
  • ai.agent.input
  • lemma.is_experiment
from uselemma_tracing import TraceContext, wrap_agent

def my_agent(ctx: TraceContext, user_message: str):
    result = do_work(user_message)
    ctx.record_generation_results({"response": result})
    return result

wrapped = wrap_agent("my-agent", my_agent, initial_state={"user_message": user_message})
result, run_id, span = wrapped()

Export Behavior

  • Spans are exported in run-specific batches keyed by lemma.run_id.
  • A run batch is exported when its top-level ai.agent.run span ends.
  • force_flush() exports remaining runs in separate batches per run.
  • Spans with instrumentation_scope.name == "next.js" are excluded from export.

Environment Variables

Variable Description
LEMMA_API_KEY Your Lemma API key
LEMMA_PROJECT_ID Your Lemma project ID

Both are required unless passed explicitly to register_otel().

Documentation

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uselemma_tracing-2.3.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uselemma_tracing-2.3.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file uselemma_tracing-2.3.0.tar.gz.

File metadata

  • Download URL: uselemma_tracing-2.3.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uselemma_tracing-2.3.0.tar.gz
Algorithm Hash digest
SHA256 f0b12036b6c85ac989355e8806a1a3f97a1670327c3c9223d0099a9100c38a72
MD5 4782c123d5433995ab9a6bb6a844f671
BLAKE2b-256 9d36e4792ccb582ea307ba5da9b3a4f6d53e7aefa55450a4ce0ac2c749959e40

See more details on using hashes here.

File details

Details for the file uselemma_tracing-2.3.0-py3-none-any.whl.

File metadata

  • Download URL: uselemma_tracing-2.3.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uselemma_tracing-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20a0ac2df5ddd107e8295028207f4113a5be53ca9e7d70730e276dc5c5c015d2
MD5 f18db9546429a7d406d12e39daea1bc1
BLAKE2b-256 e866979c9c32d153fb5d0eb89c7fa136bb5a5a86e49298bd31c4ead843a41833

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page