forgesight-datadog
The Datadog exporter for ForgeSight.
Surfaces agent telemetry in Datadog APM with the unified service / env / version
tags, LLM / tool / MCP calls as child spans, and the SDK's computed cost as the
monitorable DD metric forgesight.cost_usd — the same number every other backend reports.
pip install forgesight-datadog
import forgesight
from forgesight_datadog import DatadogExporter
forgesight.configure(exporters=[
DatadogExporter(api_key="...", site="datadoghq.com",
service="issue-classifier", env="prod"),
])
Or by name: exporters: [{name: datadog, config: {api_key: "${DD_API_KEY}", service: ...}}].
Two transports
agent(default) — maps each record to a DD APM span viaddtraceand writes it to a local DD Agent (agent_endpoint: http://datadog-agent:8126), plus emits cost/token DD metrics. Direct intake (noagent_endpoint) requiresapi_key.otlp— sends OTLP/HTTP to the DD Agent's OTLP port (agent_endpoint: http://datadog-agent:4318) with the DD unified tags applied as resource attributes. Reusesforgesight-otel.
A DD Agent / intake outage makes export() return FAILURE (counted, never raised — P6);
it never blocks the agent. Prompt/response content is attached only with
capture_content=True (off by default, P7).
OTLP-native backends need no package
Because the domain model maps cleanly onto the OTel GenAI conventions, anything that ingests
OTLP works through forgesight-otel with no dedicated package — point it at the backend
and you're done:
| Backend | How to send |
|---|---|
| Honeycomb | forgesight-otel → api.honeycomb.io:443 + x-honeycomb-team header |
| Jaeger / Tempo / SigNoz | forgesight-otel → its OTLP collector |
| New Relic | forgesight-otel → otlp.nr-data.net:4317 + api-key header |
| AWS X-Ray | forgesight-otel → ADOT collector |
| Arize Phoenix | forgesight-otel → Phoenix OTLP endpoint |
Datadog earns a package only because its richest path (DD-native APM tagging + cost-as-DD-metric) is DD-specific. A team that only wants generic spans in Datadog can use the OTLP path and skip this package entirely.
Configuration
| Key | Env | Default |
|---|---|---|
api_key |
DD_API_KEY / FORGESIGHT_DATADOG_API_KEY |
— (required for direct intake) |
site |
DD_SITE / FORGESIGHT_DATADOG_SITE |
datadoghq.com |
service |
DD_SERVICE / FORGESIGHT_DATADOG_SERVICE |
forgesight |
env |
DD_ENV / FORGESIGHT_DATADOG_ENV |
— |
version |
DD_VERSION / FORGESIGHT_DATADOG_VERSION |
— |
agent_endpoint |
FORGESIGHT_DATADOG_AGENT_ENDPOINT |
— |
transport |
FORGESIGHT_DATADOG_TRANSPORT |
agent |
Constructor kwargs win over env (FR-12).
License
Apache-2.0
Metadata
Release files for forgesight-datadog 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| forgesight_datadog-0.1.1.tar.gz | 13.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| forgesight_datadog-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.8 kB
Release files / forgesight_datadog-0.1.1.tar.gz
| Download URL | forgesight_datadog-0.1.1.tar.gz |
|---|---|
| Size | 13.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
369fbb680da8d13261dd54c567690f3454f9464ea0e826cd29a8f36b36ae5008
|
|
BLAKE2b-256 checksum How to use checksums |
38017b7834b2c45bb9794695c610a0cfb675b1c9adf3e8f95bb675e4a2b9ae3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / forgesight_datadog-0.1.1-py3-none-any.whl
| Download URL | forgesight_datadog-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d1d647e6e6f8b66219e2ce9ca572866fd8b1556f280930fbec84709af6528085
|
|
BLAKE2b-256 checksum How to use checksums |
0e11624d299e3666c9481c32a4fbc0d182a4ae8ccffd51fdcca0a017955efd78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|