Documentation Index
Fetch the complete documentation index at: https://docs.charmos.io/llms.txt
Use this file to discover all available pages before exploring further.
Telemetry Exporters
Charm provides an open observability framework to track the full lifecycle of your agents—from LLM token generation to tool execution and error handling. By default, Charm streams execution events viastdout so the Charm Cloud Runner can capture and broadcast them to end-users via Server-Sent Events (SSE). However, you can extend this by building and registering Custom Telemetry Exporters to forward events directly to external platforms like DataDog, LangSmith, or Sentry.
1. Create your Telemetry Exporter
To create a custom telemetry exporter, create a new Python class that inherits fromcharm.core.telemetry.BaseTelemetryExporter. You can implement whichever lifecycle hooks you need:
Create a file named my_exporter.py:
2. Register via Entry Points
Just like custom adapters, Charm discovers telemetry exporters dynamically using Pythonentry_points.
In your package’s pyproject.toml, add an entry to the charm.telemetry group:
TelemetryManager will recognize the datadog plugin.
3. Enable it in charm.yaml
To avoid loading unnecessary plugins, telemetry exporters are opt-in. You must explicitly list the exporters you want to activate in your charm.yaml configuration file:
4. Deploying to the Cloud Runner
When deploying your agent to the Charm Cloud Runner, ensure that:- You provide a Custom Image (
custom_image) that installs your telemetry python package (e.g.,RUN uv pip install charm-telemetry-datadog). - You provide the required secrets (e.g.,
DATADOG_API_KEY) via your Agent’s Environment Variables settings in the Charm Dashboard. The runner will securely inject these directly into the container execution context.
