@mastra/mcp-docs-server 1.2.15-alpha.19 → 1.2.15-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/docs/agents/code-mode.md +1 -1
- package/.docs/docs/agents/networks.md +2 -2
- package/.docs/docs/agents/overview.md +2 -2
- package/.docs/docs/agents/using-tools.md +1 -1
- package/.docs/docs/browser/overview.md +8 -8
- package/.docs/docs/browser/recording.md +2 -2
- package/.docs/docs/capabilities/{channels/overview.md → channels.md} +70 -7
- package/.docs/docs/capabilities/subagents.md +2 -2
- package/.docs/docs/deployment/cloud-providers.md +9 -9
- package/.docs/docs/deployment/overview.md +9 -9
- package/.docs/docs/deployment/sandbox.md +3 -3
- package/.docs/docs/deployment/web-framework.md +6 -6
- package/.docs/docs/deployment/workflow-runners.md +2 -2
- package/.docs/docs/harness/agent-controller.md +2 -2
- package/.docs/docs/index.md +8 -8
- package/.docs/docs/long-running-agents/durable-agents.md +2 -2
- package/.docs/docs/long-running-agents/signal-providers.md +2 -15
- package/.docs/docs/long-running-agents/signals.md +1 -1
- package/.docs/docs/mastra-platform/database.md +2 -2
- package/.docs/docs/mastra-platform/deploy.md +27 -0
- package/.docs/docs/mastra-platform/server.md +1 -1
- package/.docs/docs/mastra-platform/trace-intelligence.md +9 -13
- package/.docs/docs/mcp/overview.md +42 -0
- package/.docs/docs/memory/memory-processors.md +5 -5
- package/.docs/docs/memory/message-history.md +1 -1
- package/.docs/docs/memory/observational-memory.md +1 -1
- package/.docs/docs/observability/integrations/exporters/mastra-storage.md +16 -16
- package/.docs/docs/observability/integrations/overview.md +3 -3
- package/.docs/docs/server/auth/fga.md +1 -1
- package/.docs/docs/server/auth/simple-auth.md +1 -1
- package/.docs/docs/server/auth.md +8 -8
- package/.docs/docs/server/custom-api-routes.md +35 -0
- package/.docs/docs/storage/overview.md +14 -13
- package/.docs/docs/studio/observability.md +1 -1
- package/.docs/docs/workflows/overview.md +1 -1
- package/.docs/docs/workflows/snapshots.md +11 -11
- package/.docs/docs/workflows/time-travel.md +2 -0
- package/.docs/docs/workspace/filesystem.md +15 -15
- package/.docs/docs/workspace/sandbox.md +17 -17
- package/.docs/docs/workspace/search.md +1 -1
- package/.docs/guides/agent-frameworks/ai-sdk.md +2 -2
- package/.docs/guides/deployment/mastra-workers.md +1 -1
- package/.docs/guides/getting-started/quickstart.md +3 -3
- package/.docs/guides/index.md +8 -8
- package/.docs/guides/voice/overview.md +55 -106
- package/.docs/guides/voice/speech-to-text.md +7 -7
- package/.docs/guides/voice/text-to-speech.md +9 -10
- package/.docs/{guides/build-your-ui → integrations/agentic-ui}/ai-sdk-ui.md +2 -2
- package/.docs/{guides/build-your-ui/copilotkit/overview.md → integrations/agentic-ui/copilotkit.md} +256 -3
- package/.docs/{docs/browser → integrations/browsers}/agent-browser.md +2 -2
- package/.docs/{docs/browser → integrations/browsers}/browser-viewer.md +3 -3
- package/.docs/{docs/browser → integrations/browsers}/firecrawl.md +2 -2
- package/.docs/{docs/browser → integrations/browsers}/stagehand.md +1 -1
- package/.docs/{docs/capabilities → integrations}/channels/discord.md +2 -2
- package/.docs/integrations/channels/github.md +103 -0
- package/.docs/{docs/capabilities → integrations}/channels/imessage.md +7 -5
- package/.docs/{docs/capabilities → integrations}/channels/slack.md +4 -4
- package/.docs/{docs/capabilities → integrations}/channels/teams.md +2 -2
- package/.docs/{docs/capabilities → integrations}/channels/telegram.md +2 -2
- package/.docs/{docs/capabilities → integrations}/channels/whatsapp.md +2 -2
- package/.docs/{reference/storage/dsql.md → integrations/databases/aurora-dsql.md} +1 -1
- package/.docs/{reference/storage → integrations/databases}/clickhouse.md +2 -2
- package/.docs/{reference/storage → integrations/databases}/cloudflare-d1.md +1 -1
- package/.docs/{reference/storage/cloudflare.md → integrations/databases/cloudflare-kv.md} +1 -1
- package/.docs/{reference/storage → integrations/databases}/convex.md +1 -1
- package/.docs/{reference/storage → integrations/databases}/duckdb.md +5 -5
- package/.docs/{reference/storage → integrations/databases}/dynamodb.md +1 -1
- package/.docs/{reference/storage/lance.md → integrations/databases/lancedb.md} +1 -1
- package/.docs/{reference/storage → integrations/databases}/libsql.md +2 -2
- package/.docs/{reference/storage → integrations/databases}/mongodb.md +1 -1
- package/.docs/{reference/storage → integrations/databases}/mssql.md +1 -1
- package/.docs/integrations/databases/neon.md +220 -0
- package/.docs/{reference/storage → integrations/databases}/oracledb.md +1 -1
- package/.docs/{reference/storage → integrations/databases}/postgresql.md +1 -1
- package/.docs/{reference/storage → integrations/databases}/redis.md +1 -1
- package/.docs/{reference/storage → integrations/databases}/spanner.md +1 -1
- package/.docs/{reference/storage → integrations/databases}/upstash.md +1 -1
- package/.docs/{guides/deployment → integrations/deploy}/aws-bedrock-agentcore.md +1 -1
- package/.docs/{guides/deployment → integrations/deploy}/aws-lambda.md +1 -1
- package/.docs/{guides/deployment → integrations/deploy}/azure-app-services.md +1 -1
- package/.docs/{guides/deployment → integrations/deploy}/cloudflare.md +1 -1
- package/.docs/{guides/deployment → integrations/deploy}/digital-ocean.md +1 -1
- package/.docs/{guides/deployment → integrations/deploy}/netlify.md +1 -1
- package/.docs/{guides/deployment → integrations/deploy}/vercel.md +2 -2
- package/.docs/{reference/workspace/s3-filesystem.md → integrations/file-storage/amazon-s3.md} +5 -5
- package/.docs/{reference/workspace/archil-filesystem.md → integrations/file-storage/archil.md} +3 -3
- package/.docs/{reference/workspace/azure-blob-filesystem.md → integrations/file-storage/azure-blob.md} +2 -2
- package/.docs/{reference/workspace/gcs-filesystem.md → integrations/file-storage/google-cloud-storage.md} +5 -5
- package/.docs/{reference/workspace/mesa-filesystem.md → integrations/file-storage/mesa.md} +1 -1
- package/.docs/{reference/workspace/files-sdk-filesystem.md → integrations/file-storage/vercel-files.md} +5 -5
- package/.docs/{guides/getting-started → integrations/frameworks}/astro.md +1 -1
- package/.docs/{guides/getting-started → integrations/frameworks}/electron.md +1 -1
- package/.docs/{guides/getting-started → integrations/frameworks}/next-js.md +2 -2
- package/.docs/{guides/getting-started → integrations/frameworks}/nuxt.md +1 -1
- package/.docs/{guides/getting-started → integrations/frameworks}/sveltekit.md +1 -1
- package/.docs/{guides/getting-started → integrations/frameworks}/vite-react.md +1 -1
- package/.docs/{docs/observability/integrations/exporters → integrations/observability}/arize.md +1 -1
- package/.docs/{docs/observability/integrations/exporters → integrations/observability}/arthur.md +1 -1
- package/.docs/{docs/observability/integrations/exporters → integrations/observability}/braintrust.md +1 -1
- package/.docs/{docs/observability/integrations/exporters → integrations/observability}/confident-ai.md +1 -1
- package/.docs/integrations/observability/datadog.md +538 -0
- package/.docs/{docs/observability/integrations/exporters → integrations/observability}/laminar.md +1 -1
- package/.docs/{docs/observability/integrations/exporters → integrations/observability}/langfuse.md +1 -1
- package/.docs/{docs/observability/integrations/exporters → integrations/observability}/langsmith.md +1 -1
- package/.docs/{docs/observability/integrations/exporters/otel.md → integrations/observability/opentelemetry.md} +276 -44
- package/.docs/{docs/observability/integrations/exporters → integrations/observability}/posthog.md +1 -1
- package/.docs/{docs/observability/integrations/exporters → integrations/observability}/sentry.md +1 -1
- package/.docs/{reference/workspace/apple-container-sandbox.md → integrations/sandboxes/apple-container.md} +1 -1
- package/.docs/{reference/workspace/daytona-sandbox.md → integrations/sandboxes/daytona.md} +2 -2
- package/.docs/{reference/workspace/docker-sandbox.md → integrations/sandboxes/docker.md} +1 -1
- package/.docs/{reference/workspace/e2b-sandbox.md → integrations/sandboxes/e2b.md} +3 -3
- package/.docs/{reference/workspace/modal-sandbox.md → integrations/sandboxes/modal.md} +2 -2
- package/.docs/{reference/workspace/railway-sandbox.md → integrations/sandboxes/railway.md} +8 -0
- package/.docs/{reference/workspace/vercel-sandbox.md → integrations/sandboxes/vercel.md} +141 -12
- package/.docs/{reference → integrations}/tools/brightdata.md +1 -1
- package/.docs/{reference → integrations}/tools/perplexity.md +1 -1
- package/.docs/{reference → integrations}/tools/tavily.md +1 -1
- package/.docs/{reference → integrations}/voice/aws-nova-sonic.md +1 -1
- package/.docs/{reference → integrations}/voice/cloudflare.md +3 -3
- package/.docs/{reference/voice/google-gemini-live.md → integrations/voice/google.md} +305 -30
- package/.docs/{reference/voice/inworld-realtime.md → integrations/voice/inworld.md} +163 -25
- package/.docs/{reference → integrations}/voice/livekit.md +437 -34
- package/.docs/{reference/voice/openai-realtime.md → integrations/voice/openai.md} +117 -20
- package/.docs/integrations.md +147 -0
- package/.docs/models/embeddings.md +2 -2
- package/.docs/models/environment-variables.md +1 -0
- package/.docs/models/gateways/openrouter.md +4 -2
- package/.docs/models/gateways/vercel.md +2 -1
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/coralbricks.md +75 -0
- package/.docs/models/providers/evroc.md +2 -3
- package/.docs/models/providers/hyper.md +6 -6
- package/.docs/models/providers/kilo.md +7 -5
- package/.docs/models/providers/llmgateway.md +1 -2
- package/.docs/models/providers/nano-gpt.md +1 -3
- package/.docs/models/providers/opencode.md +0 -1
- package/.docs/models/providers/privatemode-ai.md +5 -4
- package/.docs/models/providers/snowflake-cortex.md +5 -1
- package/.docs/models/providers/wandb.md +2 -1
- package/.docs/models/providers/zenmux.md +0 -15
- package/.docs/models/providers.md +1 -0
- package/.docs/reference/agent-controller/agent-controller-class.md +32 -1
- package/.docs/reference/agents/channels.md +2 -2
- package/.docs/reference/agents/generateLegacy.md +2 -2
- package/.docs/reference/agents/getDefaultOptions.md +1 -1
- package/.docs/reference/agents/getDefaultStreamOptions.md +1 -1
- package/.docs/reference/agents/inngest-agent.md +1 -1
- package/.docs/reference/agents/network.md +1 -1
- package/.docs/reference/ai-sdk/handle-network-stream.md +1 -1
- package/.docs/reference/ai-sdk/network-route.md +1 -1
- package/.docs/reference/auth/auth0.md +1 -1
- package/.docs/reference/auth/better-auth.md +1 -1
- package/.docs/reference/auth/clerk.md +1 -1
- package/.docs/reference/auth/firebase.md +1 -1
- package/.docs/reference/auth/google.md +1 -1
- package/.docs/reference/auth/supabase.md +1 -1
- package/.docs/reference/auth/workos.md +1 -1
- package/.docs/reference/browser/agent-browser.md +1 -1
- package/.docs/reference/browser/browser-viewer.md +1 -1
- package/.docs/reference/browser/firecrawl-browser.md +1 -1
- package/.docs/reference/browser/stagehand-browser.md +1 -1
- package/.docs/reference/channels/channel-provider.md +1 -1
- package/.docs/reference/channels/slack-provider.md +2 -2
- package/.docs/reference/cli/mastra.md +2 -2
- package/.docs/reference/configuration.md +1 -26
- package/.docs/reference/core/getStorage.md +1 -1
- package/.docs/reference/core/getVector.md +2 -2
- package/.docs/reference/core/listVectors.md +2 -2
- package/.docs/reference/core/setStorage.md +1 -1
- package/.docs/reference/file-based-agents/storage.md +1 -1
- package/.docs/reference/file-based-agents/studio.md +1 -1
- package/.docs/reference/index.md +27 -55
- package/.docs/{guides → reference}/migrations/ai-sdk-v4-to-v5.md +1 -1
- package/.docs/{guides → reference}/migrations/mastra-cloud.md +1 -1
- package/.docs/{guides → reference}/migrations/upgrade-to-v1/cli.md +1 -1
- package/.docs/{guides → reference}/migrations/upgrade-to-v1/memory.md +1 -1
- package/.docs/{guides → reference}/migrations/upgrade-to-v1/overview.md +41 -41
- package/.docs/{guides → reference}/migrations/upgrade-to-v1/tools.md +1 -1
- package/.docs/{guides → reference}/migrations/upgrade-to-v1/tracing.md +10 -10
- package/.docs/reference/observability/tracing/bridges/datadog.md +2 -2
- package/.docs/reference/observability/tracing/bridges/otel.md +2 -2
- package/.docs/reference/observability/tracing/exporters/arize.md +1 -1
- package/.docs/reference/observability/tracing/exporters/arthur.md +1 -1
- package/.docs/reference/observability/tracing/exporters/confident-ai.md +1 -1
- package/.docs/reference/observability/tracing/exporters/mastra-platform-exporter.md +12 -0
- package/.docs/reference/observability/tracing/exporters/otel.md +2 -2
- package/.docs/reference/pubsub/lease-provider.md +1 -1
- package/.docs/{guides → reference}/rag/chunking-and-embedding.md +16 -19
- package/.docs/reference/rag/database-config.md +1 -1
- package/.docs/{guides/rag/graph-rag.md → reference/rag/graph-rag-guide.md} +1 -1
- package/.docs/{guides → reference}/rag/overview.md +2 -2
- package/.docs/{guides → reference}/rag/retrieval.md +1 -1
- package/.docs/{guides → reference}/rag/vector-databases.md +1 -1
- package/.docs/reference/server/create-route.md +27 -1
- package/.docs/reference/storage/composite.md +3 -3
- package/.docs/reference/storage/retention.md +4 -4
- package/.docs/reference/streaming/ChunkType.md +3 -3
- package/.docs/reference/streaming/agents/streamLegacy.md +3 -3
- package/.docs/reference/tools/mcp-server.md +1 -1
- package/.docs/reference/vectors/convex.md +2 -2
- package/.docs/reference/vectors/oracledb.md +2 -2
- package/.docs/reference/workers/overview.md +8 -8
- package/.docs/reference/workflows/run-methods/timeTravel.md +1 -0
- package/.docs/reference/workspace/platform-filesystem.md +2 -2
- package/.docs/reference/workspace/platform-sandbox.md +10 -2
- package/.docs/reference/workspace/process-manager.md +3 -3
- package/.docs/reference/workspace/sandbox.md +10 -0
- package/CHANGELOG.md +16 -0
- package/dist/index.js +1 -1
- package/dist/{src-BZcgzbk9.js → src-D-W-bx5t.js} +2 -2
- package/dist/{src-BZcgzbk9.js.map → src-D-W-bx5t.js.map} +1 -1
- package/dist/stdio.js +1 -1
- package/package.json +5 -5
- package/.docs/docs/capabilities/channels/other-adapters.md +0 -68
- package/.docs/docs/observability/integrations/bridges/datadog.md +0 -219
- package/.docs/docs/observability/integrations/bridges/otel.md +0 -234
- package/.docs/docs/observability/integrations/exporters/datadog.md +0 -321
- package/.docs/guides/build-your-ui/copilotkit/channels.md +0 -86
- package/.docs/guides/build-your-ui/copilotkit/generative-ui.md +0 -174
- package/.docs/guides/guide/chef-michel.md +0 -211
- package/.docs/guides/guide/publishing-mcp-server.md +0 -137
- package/.docs/guides/guide/slack-assistant.md +0 -193
- package/.docs/guides/guide/stock-agent.md +0 -132
- package/.docs/guides/guide/web-search.md +0 -322
- package/.docs/guides/guide/whatsapp-chat-bot.md +0 -407
- package/.docs/guides/voice/realtime-voice.md +0 -430
- package/.docs/reference/voice/google.md +0 -290
- package/.docs/reference/voice/inworld.md +0 -137
- package/.docs/reference/voice/openai.md +0 -96
- package/.docs/reference/voice/playai.md +0 -82
- package/.docs/reference/workspace/vercel-serverless.md +0 -128
- /package/.docs/{guides/concepts → docs/guides}/multi-agent-systems.md +0 -0
- /package/.docs/{guides/concepts → docs/guides}/streaming.md +0 -0
- /package/.docs/{guides/build-your-ui → integrations/agentic-ui}/assistant-ui.md +0 -0
- /package/.docs/{guides/build-your-ui → integrations/agentic-ui}/openui.md +0 -0
- /package/.docs/{docs/server → integrations}/auth/auth0.md +0 -0
- /package/.docs/{docs/server → integrations}/auth/better-auth.md +0 -0
- /package/.docs/{docs/server → integrations}/auth/clerk.md +0 -0
- /package/.docs/{docs/server → integrations}/auth/firebase.md +0 -0
- /package/.docs/{docs/server → integrations}/auth/google.md +0 -0
- /package/.docs/{docs/server → integrations}/auth/okta.md +0 -0
- /package/.docs/{docs/server → integrations}/auth/supabase.md +0 -0
- /package/.docs/{docs/server → integrations}/auth/workos.md +0 -0
- /package/.docs/{guides/deployment → integrations/deploy}/amazon-ec2.md +0 -0
- /package/.docs/{guides/deployment → integrations/deploy}/inngest.md +0 -0
- /package/.docs/{guides/deployment → integrations/deploy}/kubernetes.md +0 -0
- /package/.docs/{guides/deployment → integrations/deploy}/temporal.md +0 -0
- /package/.docs/{reference/workspace/agentfs-filesystem.md → integrations/file-storage/agentfs.md} +0 -0
- /package/.docs/{reference/workspace/google-drive-filesystem.md → integrations/file-storage/google-drive.md} +0 -0
- /package/.docs/{guides/getting-started → integrations/frameworks}/express.md +0 -0
- /package/.docs/{guides/getting-started → integrations/frameworks}/hono.md +0 -0
- /package/.docs/{guides/getting-started → integrations/frameworks}/nestjs.md +0 -0
- /package/.docs/{reference/workspace/agentcore-runtime-sandbox.md → integrations/sandboxes/agentcore.md} +0 -0
- /package/.docs/{reference/workspace/blaxel-sandbox.md → integrations/sandboxes/blaxel.md} +0 -0
- /package/.docs/{guides/guide → integrations/tools}/firecrawl.md +0 -0
- /package/.docs/{reference → integrations}/voice/azure.md +0 -0
- /package/.docs/{reference → integrations}/voice/deepgram.md +0 -0
- /package/.docs/{reference → integrations}/voice/elevenlabs.md +0 -0
- /package/.docs/{reference → integrations}/voice/mistral.md +0 -0
- /package/.docs/{reference → integrations}/voice/murf.md +0 -0
- /package/.docs/{reference → integrations}/voice/sarvam.md +0 -0
- /package/.docs/{reference → integrations}/voice/speechify.md +0 -0
- /package/.docs/{reference/voice/xai-realtime.md → integrations/voice/xai.md} +0 -0
- /package/.docs/{guides/getting-started → reference}/manual-install.md +0 -0
- /package/.docs/{guides → reference}/migrations/agentnetwork.md +0 -0
- /package/.docs/{guides → reference}/migrations/network-to-supervisor.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/agent.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/client.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/deployment.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/evals.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/mastra.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/mcp.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/processors.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/rag.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/storage.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/vectors.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/voice.md +0 -0
- /package/.docs/{guides → reference}/migrations/upgrade-to-v1/workflows.md +0 -0
- /package/.docs/{guides → reference}/migrations/vnext-to-standard-apis.md +0 -0
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
> Discover all available pages from the documentation index: https://mastra.ai/llms.txt
|
|
2
2
|
|
|
3
|
-
# OpenTelemetry
|
|
3
|
+
# OpenTelemetry
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Mastra supports OpenTelemetry (OTEL) through an exporter for sending traces and logs to OTEL-compatible platforms and a bridge for participating in existing OTEL tracing contexts.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Exporter
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
The OpenTelemetry exporter sends your traces and logs using standardized [OpenTelemetry Semantic Conventions for GenAI](https://opentelemetry.io/docs/specs/semconv/gen-ai/). This ensures broad compatibility with platforms like Datadog, New Relic, SigNoz, MLflow, Latitude, Dash0, Traceloop, Laminar, telemetry.dev, and more.
|
|
10
|
+
|
|
11
|
+
### Installation
|
|
10
12
|
|
|
11
13
|
Each provider requires specific protocol packages. Install the base exporter plus the protocol package for your provider:
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
#### For HTTP/Protobuf Providers (SigNoz, New Relic, Laminar, MLflow, Latitude, telemetry.dev)
|
|
14
16
|
|
|
15
17
|
**npm**:
|
|
16
18
|
|
|
@@ -36,7 +38,7 @@ yarn add @mastra/otel-exporter@latest @opentelemetry/exporter-trace-otlp-proto
|
|
|
36
38
|
bun add @mastra/otel-exporter@latest @opentelemetry/exporter-trace-otlp-proto
|
|
37
39
|
```
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
#### For `gRPC` Providers (Dash0, Datadog)
|
|
40
42
|
|
|
41
43
|
**npm**:
|
|
42
44
|
|
|
@@ -62,7 +64,7 @@ yarn add @mastra/otel-exporter@latest @opentelemetry/exporter-trace-otlp-grpc @g
|
|
|
62
64
|
bun add @mastra/otel-exporter@latest @opentelemetry/exporter-trace-otlp-grpc @grpc/grpc-js
|
|
63
65
|
```
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
#### For HTTP/JSON Providers (Traceloop)
|
|
66
68
|
|
|
67
69
|
**npm**:
|
|
68
70
|
|
|
@@ -88,7 +90,7 @@ yarn add @mastra/otel-exporter@latest @opentelemetry/exporter-trace-otlp-http
|
|
|
88
90
|
bun add @mastra/otel-exporter@latest @opentelemetry/exporter-trace-otlp-http
|
|
89
91
|
```
|
|
90
92
|
|
|
91
|
-
|
|
93
|
+
### Environment variables
|
|
92
94
|
|
|
93
95
|
All providers support zero-config setup via environment variables. Set the appropriate variables and the exporter will automatically use them:
|
|
94
96
|
|
|
@@ -100,9 +102,9 @@ All providers support zero-config setup via environment variables. Set the appro
|
|
|
100
102
|
| Traceloop | `TRACELOOP_API_KEY` (required), `TRACELOOP_DESTINATION_ID`, `TRACELOOP_ENDPOINT` (optional) |
|
|
101
103
|
| Laminar | `LMNR_PROJECT_API_KEY` (required), `LAMINAR_ENDPOINT` (optional) |
|
|
102
104
|
|
|
103
|
-
|
|
105
|
+
### Provider configurations
|
|
104
106
|
|
|
105
|
-
|
|
107
|
+
#### MLflow
|
|
106
108
|
|
|
107
109
|
[MLflow](https://mlflow.org/docs/latest/genai/tracing/integrations/listing/mastra) supports native Mastra tracing through its OTLP endpoint at `/v1/traces`. Use the `custom` provider with HTTP/Protobuf and include the experiment header so traces are routed to the correct MLflow experiment:
|
|
108
110
|
|
|
@@ -120,7 +122,7 @@ new OtelExporter({
|
|
|
120
122
|
})
|
|
121
123
|
```
|
|
122
124
|
|
|
123
|
-
|
|
125
|
+
#### Latitude
|
|
124
126
|
|
|
125
127
|
[Latitude](https://latitude.so) is an open-source LLM observability and evaluation platform that ingests OTLP traces. Use the `custom` provider with HTTP/Protobuf, pointing at Latitude's ingestion endpoint and authenticating with your API key and project slug:
|
|
126
128
|
|
|
@@ -141,7 +143,7 @@ new OtelExporter({
|
|
|
141
143
|
|
|
142
144
|
Sign up at [console.latitude.so](https://console.latitude.so/login), or self-host and point the endpoint at your own ingestion host.
|
|
143
145
|
|
|
144
|
-
|
|
146
|
+
#### telemetry.dev
|
|
145
147
|
|
|
146
148
|
[telemetry.dev](https://telemetry.dev) ingests OTLP/HTTP protobuf traces and normalizes OpenTelemetry GenAI semantic conventions into model, provider, token, latency, and cost fields. Use the `custom` provider with your project API key:
|
|
147
149
|
|
|
@@ -163,11 +165,11 @@ new OtelExporter({
|
|
|
163
165
|
})
|
|
164
166
|
```
|
|
165
167
|
|
|
166
|
-
|
|
168
|
+
#### Dash0
|
|
167
169
|
|
|
168
170
|
[Dash0](https://www.dash0.com/) provides real-time observability with automatic insights.
|
|
169
171
|
|
|
170
|
-
|
|
172
|
+
##### Zero-Config Setup
|
|
171
173
|
|
|
172
174
|
Set environment variables and use the exporter with an empty config:
|
|
173
175
|
|
|
@@ -197,7 +199,7 @@ export const mastra = new Mastra({
|
|
|
197
199
|
})
|
|
198
200
|
```
|
|
199
201
|
|
|
200
|
-
|
|
202
|
+
##### Explicit Configuration
|
|
201
203
|
|
|
202
204
|
```typescript
|
|
203
205
|
import { Mastra } from '@mastra/core'
|
|
@@ -232,11 +234,11 @@ export const mastra = new Mastra({
|
|
|
232
234
|
|
|
233
235
|
> **Note:** Get your Dash0 endpoint from your dashboard. It should be in the format `ingress.{region}.aws.dash0.com:4317`.
|
|
234
236
|
|
|
235
|
-
|
|
237
|
+
#### `SigNoz`
|
|
236
238
|
|
|
237
239
|
[SigNoz](https://signoz.io/) is an open-source APM alternative with built-in Tracing support.
|
|
238
240
|
|
|
239
|
-
|
|
241
|
+
##### Zero-Config Setup
|
|
240
242
|
|
|
241
243
|
```bash
|
|
242
244
|
# Required
|
|
@@ -251,7 +253,7 @@ SIGNOZ_ENDPOINT=https://my-signoz.example.com # For self-hosted
|
|
|
251
253
|
new OtelExporter({ provider: { signoz: {} } })
|
|
252
254
|
```
|
|
253
255
|
|
|
254
|
-
|
|
256
|
+
##### Explicit Configuration
|
|
255
257
|
|
|
256
258
|
```typescript
|
|
257
259
|
new OtelExporter({
|
|
@@ -265,11 +267,11 @@ new OtelExporter({
|
|
|
265
267
|
})
|
|
266
268
|
```
|
|
267
269
|
|
|
268
|
-
|
|
270
|
+
#### New Relic
|
|
269
271
|
|
|
270
272
|
[New Relic](https://newrelic.com/) provides complete observability with AI monitoring capabilities.
|
|
271
273
|
|
|
272
|
-
|
|
274
|
+
##### Zero-Config Setup
|
|
273
275
|
|
|
274
276
|
```bash
|
|
275
277
|
# Required
|
|
@@ -283,7 +285,7 @@ NEW_RELIC_ENDPOINT=https://otlp.eu01.nr-data.net # For EU region
|
|
|
283
285
|
new OtelExporter({ provider: { newrelic: {} } })
|
|
284
286
|
```
|
|
285
287
|
|
|
286
|
-
|
|
288
|
+
##### Explicit Configuration
|
|
287
289
|
|
|
288
290
|
```typescript
|
|
289
291
|
new OtelExporter({
|
|
@@ -296,11 +298,11 @@ new OtelExporter({
|
|
|
296
298
|
})
|
|
297
299
|
```
|
|
298
300
|
|
|
299
|
-
|
|
301
|
+
#### Traceloop
|
|
300
302
|
|
|
301
303
|
[Traceloop](https://www.traceloop.com/) specializes in LLM observability with automatic prompt tracking.
|
|
302
304
|
|
|
303
|
-
|
|
305
|
+
##### Zero-Config Setup
|
|
304
306
|
|
|
305
307
|
```bash
|
|
306
308
|
# Required
|
|
@@ -315,7 +317,7 @@ TRACELOOP_ENDPOINT=https://custom.traceloop.com
|
|
|
315
317
|
new OtelExporter({ provider: { traceloop: {} } })
|
|
316
318
|
```
|
|
317
319
|
|
|
318
|
-
|
|
320
|
+
##### Explicit Configuration
|
|
319
321
|
|
|
320
322
|
```typescript
|
|
321
323
|
new OtelExporter({
|
|
@@ -328,11 +330,11 @@ new OtelExporter({
|
|
|
328
330
|
})
|
|
329
331
|
```
|
|
330
332
|
|
|
331
|
-
|
|
333
|
+
#### Laminar
|
|
332
334
|
|
|
333
335
|
[Laminar](https://laminar.sh/) provides specialized LLM observability and analytics.
|
|
334
336
|
|
|
335
|
-
|
|
337
|
+
##### Zero-Config Setup
|
|
336
338
|
|
|
337
339
|
```bash
|
|
338
340
|
# Required
|
|
@@ -346,7 +348,7 @@ LAMINAR_ENDPOINT=https://api.lmnr.ai/v1/traces
|
|
|
346
348
|
new OtelExporter({ provider: { laminar: {} } })
|
|
347
349
|
```
|
|
348
350
|
|
|
349
|
-
|
|
351
|
+
##### Explicit Configuration
|
|
350
352
|
|
|
351
353
|
```typescript
|
|
352
354
|
new OtelExporter({
|
|
@@ -358,9 +360,9 @@ new OtelExporter({
|
|
|
358
360
|
})
|
|
359
361
|
```
|
|
360
362
|
|
|
361
|
-
> **Laminar-Native Exporter:** For Laminar-specific features like native span paths, metadata, and tags rendering in the Laminar dashboard, consider using the dedicated [`@mastra/laminar`](https://mastra.ai/
|
|
363
|
+
> **Laminar-Native Exporter:** For Laminar-specific features like native span paths, metadata, and tags rendering in the Laminar dashboard, consider using the dedicated [`@mastra/laminar`](https://mastra.ai/integrations/observability/laminar) exporter instead. It provides optimized integration with Laminar's platform.
|
|
362
364
|
|
|
363
|
-
|
|
365
|
+
#### Datadog
|
|
364
366
|
|
|
365
367
|
[Datadog](https://www.datadoghq.com/) APM provides application performance monitoring with distributed tracing. To send traces to Datadog via OTLP, you need the Datadog Agent running with OTLP ingestion enabled.
|
|
366
368
|
|
|
@@ -414,9 +416,9 @@ export const mastra = new Mastra({
|
|
|
414
416
|
|
|
415
417
|
> **Warning:** The explicit imports of `@grpc/grpc-js` and `@opentelemetry/exporter-trace-otlp-grpc` at the top of the file, along with the [`bundler.externals`](https://mastra.ai/reference/configuration) configuration, are required for the gRPC transport to work correctly. Without these, you may encounter connection issues.
|
|
416
418
|
|
|
417
|
-
> **Datadog-Native Exporter:** For Datadog-specific features like automatic span type mapping, LLM span categorization, and simplified setup without gRPC configuration, consider using the dedicated [`@mastra/datadog`](https://mastra.ai/
|
|
419
|
+
> **Datadog-Native Exporter:** For Datadog-specific features like automatic span type mapping, LLM span categorization, and simplified setup without gRPC configuration, consider using the dedicated [`@mastra/datadog`](https://mastra.ai/integrations/observability/datadog) exporter instead. It provides optimized integration with Datadog's APM platform.
|
|
418
420
|
|
|
419
|
-
|
|
421
|
+
#### Custom/Generic OTEL Endpoints
|
|
420
422
|
|
|
421
423
|
For other OTEL-compatible platforms or custom collectors:
|
|
422
424
|
|
|
@@ -434,7 +436,7 @@ new OtelExporter({
|
|
|
434
436
|
})
|
|
435
437
|
```
|
|
436
438
|
|
|
437
|
-
|
|
439
|
+
### Signals
|
|
438
440
|
|
|
439
441
|
The exporter sends two OpenTelemetry signals:
|
|
440
442
|
|
|
@@ -503,9 +505,9 @@ bun add @opentelemetry/exporter-logs-otlp-grpc @grpc/grpc-js
|
|
|
503
505
|
|
|
504
506
|
If the matching log exporter package isn't installed, log export is silently disabled and traces continue to work.
|
|
505
507
|
|
|
506
|
-
|
|
508
|
+
### Configuration options
|
|
507
509
|
|
|
508
|
-
|
|
510
|
+
#### Complete Configuration
|
|
509
511
|
|
|
510
512
|
```typescript
|
|
511
513
|
new OtelExporter({
|
|
@@ -529,18 +531,18 @@ new OtelExporter({
|
|
|
529
531
|
})
|
|
530
532
|
```
|
|
531
533
|
|
|
532
|
-
|
|
534
|
+
### `OpenTelemetry` semantic conventions
|
|
533
535
|
|
|
534
536
|
The exporter follows [OpenTelemetry Semantic Conventions for GenAI v1.38.0](https://github.com/open-telemetry/semantic-conventions/tree/v1.38.0/docs/gen-ai), ensuring compatibility with observability platforms:
|
|
535
537
|
|
|
536
|
-
|
|
538
|
+
#### Span Naming
|
|
537
539
|
|
|
538
540
|
- **LLM Operations**: `chat {model}`
|
|
539
541
|
- **Tool Execution**: `execute_tool {tool_name}`
|
|
540
542
|
- **Agent Runs**: `invoke_agent {agent_id}`
|
|
541
543
|
- **Workflow Runs**: `invoke_workflow {workflow_id}`
|
|
542
544
|
|
|
543
|
-
|
|
545
|
+
#### Key Attributes
|
|
544
546
|
|
|
545
547
|
- `gen_ai.operation.name` - Operation type (chat, tool.execute, etc.)
|
|
546
548
|
- `gen_ai.provider.name` - AI provider (openai, anthropic, etc.)
|
|
@@ -552,7 +554,7 @@ The exporter follows [OpenTelemetry Semantic Conventions for GenAI v1.38.0](http
|
|
|
552
554
|
- `gen_ai.request.temperature` - Sampling temperature
|
|
553
555
|
- `gen_ai.response.finish_reasons` - Completion reasons
|
|
554
556
|
|
|
555
|
-
|
|
557
|
+
### Protocol selection guide
|
|
556
558
|
|
|
557
559
|
Choose the right protocol package based on your provider:
|
|
558
560
|
|
|
@@ -568,9 +570,9 @@ Choose the right protocol package based on your provider:
|
|
|
568
570
|
|
|
569
571
|
> **Warning:** Make sure to install the correct protocol package for your provider. The exporter will provide a helpful error message if the wrong package is installed.
|
|
570
572
|
|
|
571
|
-
|
|
573
|
+
### Troubleshooting
|
|
572
574
|
|
|
573
|
-
|
|
575
|
+
#### Missing Dependency Error
|
|
574
576
|
|
|
575
577
|
If you see an error like:
|
|
576
578
|
|
|
@@ -582,15 +584,245 @@ To use HTTP/Protobuf export, install the required package:
|
|
|
582
584
|
|
|
583
585
|
Install the suggested package for your provider.
|
|
584
586
|
|
|
585
|
-
|
|
587
|
+
#### Common Issues
|
|
586
588
|
|
|
587
589
|
1. **Wrong protocol package**: Verify you installed the correct exporter for your provider
|
|
588
590
|
2. **Invalid endpoint**: Check endpoint format matches provider requirements
|
|
589
591
|
3. **Authentication failures**: Verify API keys and headers are correct
|
|
590
592
|
|
|
591
|
-
|
|
593
|
+
### Related
|
|
592
594
|
|
|
593
595
|
- [Tracing Overview](https://mastra.ai/docs/observability/tracing/overview)
|
|
594
|
-
- [OpenTelemetry Bridge](
|
|
596
|
+
- [OpenTelemetry Bridge](#bridge)
|
|
595
597
|
- [OpenTelemetry Semantic Conventions for GenAI v1.38.0](https://github.com/open-telemetry/semantic-conventions/tree/v1.38.0/docs/gen-ai)
|
|
596
|
-
- [OTEL Exporter Reference](https://mastra.ai/reference/observability/tracing/exporters/otel)
|
|
598
|
+
- [OTEL Exporter Reference](https://mastra.ai/reference/observability/tracing/exporters/otel)
|
|
599
|
+
|
|
600
|
+
## Bridge
|
|
601
|
+
|
|
602
|
+
> **Warning:** The OpenTelemetry Bridge is currently **experimental**. APIs and configuration options may change in future releases.
|
|
603
|
+
|
|
604
|
+
The OpenTelemetry (OTEL) Bridge enables bidirectional integration between Mastra's tracing system and existing OpenTelemetry infrastructure. Unlike exporters that send trace data to external platforms, the bridge creates native OTEL spans that participate in your distributed tracing context.
|
|
605
|
+
|
|
606
|
+
### When to use the bridge
|
|
607
|
+
|
|
608
|
+
Use the `OtelBridge` when you:
|
|
609
|
+
|
|
610
|
+
- Have existing OTEL instrumentation in your application (HTTP servers, database clients, etc.)
|
|
611
|
+
- Want Mastra operations to appear as child spans of your existing OTEL traces
|
|
612
|
+
- Need OTEL-instrumented code inside Mastra tools to maintain proper parent-child relationships
|
|
613
|
+
- Are building a distributed system where trace context must propagate across services
|
|
614
|
+
|
|
615
|
+
### How it works
|
|
616
|
+
|
|
617
|
+
The `OtelBridge` provides two-way integration:
|
|
618
|
+
|
|
619
|
+
**From OTEL to Mastra:**
|
|
620
|
+
|
|
621
|
+
- Reads from OTEL ambient context (AsyncLocalStorage) automatically
|
|
622
|
+
- Inherits trace ID and parent span ID from active OTEL spans
|
|
623
|
+
- Respects OTEL sampling decisions: if a trace isn't sampled, Mastra won't create spans for it
|
|
624
|
+
- No manual trace ID passing required when OTEL auto-instrumentation is active
|
|
625
|
+
|
|
626
|
+
**From Mastra to OTEL:**
|
|
627
|
+
|
|
628
|
+
- Creates native OTEL spans for Mastra operations (agents, LLM calls, tools, workflows)
|
|
629
|
+
- Maintains proper parent-child relationships in distributed traces
|
|
630
|
+
- Allows OTEL-instrumented code (HTTP clients, database calls) within Mastra operations to nest correctly
|
|
631
|
+
- Forwards Mastra log events to the globally registered OTEL `LoggerProvider`. Logs that originate inside a Mastra span are emitted under that span's OTEL context so backends correlate them with the trace. If no `LoggerProvider` is registered, log emission is a silent no-op.
|
|
632
|
+
|
|
633
|
+
### Installation
|
|
634
|
+
|
|
635
|
+
**npm**:
|
|
636
|
+
|
|
637
|
+
```bash
|
|
638
|
+
npm install @mastra/otel-bridge
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
**pnpm**:
|
|
642
|
+
|
|
643
|
+
```bash
|
|
644
|
+
pnpm add @mastra/otel-bridge
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
**Yarn**:
|
|
648
|
+
|
|
649
|
+
```bash
|
|
650
|
+
yarn add @mastra/otel-bridge
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
**Bun**:
|
|
654
|
+
|
|
655
|
+
```bash
|
|
656
|
+
bun add @mastra/otel-bridge
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
The bridge works with your existing OpenTelemetry setup. Depending on your configuration, you may also need some of these packages:
|
|
660
|
+
|
|
661
|
+
- `@opentelemetry/sdk-node` - Core Node.js SDK for OTEL
|
|
662
|
+
- `@opentelemetry/auto-instrumentations-node` - Auto-instrumentation for common libraries
|
|
663
|
+
- `@opentelemetry/exporter-trace-otlp-proto` - OTLP exporter (Protobuf over HTTP)
|
|
664
|
+
- `@opentelemetry/exporter-trace-otlp-http` - OTLP exporter (JSON over HTTP)
|
|
665
|
+
- `@opentelemetry/exporter-trace-otlp-grpc` - OTLP exporter (gRPC)
|
|
666
|
+
- `@opentelemetry/sdk-trace-base` - Base tracing SDK (for `BatchSpanProcessor`, etc.)
|
|
667
|
+
- `@opentelemetry/core` - Core utilities (for `W3CTraceContextPropagator`, etc.)
|
|
668
|
+
- `@opentelemetry/sdk-logs` and an OTLP log exporter (e.g. `@opentelemetry/exporter-logs-otlp-http`) - Required if you want the bridge to forward Mastra log events too
|
|
669
|
+
|
|
670
|
+
### Configuration
|
|
671
|
+
|
|
672
|
+
Using the `OtelBridge` requires two steps:
|
|
673
|
+
|
|
674
|
+
1. Configure OpenTelemetry instrumentation in your application
|
|
675
|
+
2. Add the `OtelBridge` to your Mastra observability config
|
|
676
|
+
|
|
677
|
+
#### Step 1: OpenTelemetry Instrumentation
|
|
678
|
+
|
|
679
|
+
Create an instrumentation file that initializes OTEL. This must run before your application code:
|
|
680
|
+
|
|
681
|
+
```typescript
|
|
682
|
+
import { NodeSDK } from '@opentelemetry/sdk-node'
|
|
683
|
+
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'
|
|
684
|
+
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto'
|
|
685
|
+
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base'
|
|
686
|
+
import { W3CTraceContextPropagator } from '@opentelemetry/core'
|
|
687
|
+
|
|
688
|
+
const sdk = new NodeSDK({
|
|
689
|
+
serviceName: 'my-service',
|
|
690
|
+
spanProcessors: [
|
|
691
|
+
new BatchSpanProcessor(
|
|
692
|
+
new OTLPTraceExporter({
|
|
693
|
+
url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'http://localhost:4318/v1/traces',
|
|
694
|
+
}),
|
|
695
|
+
),
|
|
696
|
+
],
|
|
697
|
+
instrumentations: [getNodeAutoInstrumentations()],
|
|
698
|
+
textMapPropagator: new W3CTraceContextPropagator(),
|
|
699
|
+
})
|
|
700
|
+
|
|
701
|
+
sdk.start()
|
|
702
|
+
|
|
703
|
+
export { sdk }
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
#### Step 2: Mastra Configuration
|
|
707
|
+
|
|
708
|
+
Add the `OtelBridge` to your Mastra observability config:
|
|
709
|
+
|
|
710
|
+
```typescript
|
|
711
|
+
import { Mastra } from '@mastra/core'
|
|
712
|
+
import { Observability } from '@mastra/observability'
|
|
713
|
+
import { OtelBridge } from '@mastra/otel-bridge'
|
|
714
|
+
|
|
715
|
+
export const mastra = new Mastra({
|
|
716
|
+
observability: new Observability({
|
|
717
|
+
configs: {
|
|
718
|
+
default: {
|
|
719
|
+
serviceName: 'my-service',
|
|
720
|
+
bridge: new OtelBridge(),
|
|
721
|
+
},
|
|
722
|
+
},
|
|
723
|
+
}),
|
|
724
|
+
agents: {/* your agents */},
|
|
725
|
+
})
|
|
726
|
+
```
|
|
727
|
+
|
|
728
|
+
No Mastra exporters are required when using the bridge. Traces are sent via your OTEL SDK configuration. You can optionally add Mastra exporters if you want to send traces to additional destinations.
|
|
729
|
+
|
|
730
|
+
#### Forwarding logs (optional)
|
|
731
|
+
|
|
732
|
+
The bridge also forwards Mastra log events to the globally registered OTEL `LoggerProvider`. To wire up logs alongside traces, register a `logRecordProcessor` on `NodeSDK`:
|
|
733
|
+
|
|
734
|
+
```typescript
|
|
735
|
+
import { NodeSDK } from '@opentelemetry/sdk-node'
|
|
736
|
+
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http'
|
|
737
|
+
import { BatchLogRecordProcessor } from '@opentelemetry/sdk-logs'
|
|
738
|
+
|
|
739
|
+
const sdk = new NodeSDK({
|
|
740
|
+
// ...trace config as usual
|
|
741
|
+
logRecordProcessor: new BatchLogRecordProcessor(
|
|
742
|
+
new OTLPLogExporter({
|
|
743
|
+
url: process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT || 'http://localhost:4318/v1/logs',
|
|
744
|
+
}),
|
|
745
|
+
),
|
|
746
|
+
})
|
|
747
|
+
```
|
|
748
|
+
|
|
749
|
+
Logs that originate inside a Mastra span are emitted under that span's OTEL context, so backends like Datadog, Grafana, and Honeycomb correlate them with the surrounding trace automatically. Logs without trace context use the currently active OTEL context.
|
|
750
|
+
|
|
751
|
+
If you don't register a `LoggerProvider`, log emission is a silent no-op. Traces continue to work as configured.
|
|
752
|
+
|
|
753
|
+
#### Running Your Application
|
|
754
|
+
|
|
755
|
+
Use the `--import` flag to ensure instrumentation loads before your application:
|
|
756
|
+
|
|
757
|
+
```bash
|
|
758
|
+
tsx --import ./instrumentation.ts ./src/index.ts
|
|
759
|
+
```
|
|
760
|
+
|
|
761
|
+
### Semantic conventions
|
|
762
|
+
|
|
763
|
+
The `OtelBridge` exports Mastra spans using [OpenTelemetry Semantic Conventions for GenAI v1.38.0](https://github.com/open-telemetry/semantic-conventions/tree/v1.38.0/docs/gen-ai). This includes standardized span names (`chat {model}`, `execute_tool {tool_name}`, etc.) and attributes (`gen_ai.usage.input_tokens`, `gen_ai.request.model`, etc.).
|
|
764
|
+
|
|
765
|
+
For details on span naming and attributes, see the [OpenTelemetry Exporter semantic conventions](#opentelemetry-semantic-conventions).
|
|
766
|
+
|
|
767
|
+
### Trace hierarchy
|
|
768
|
+
|
|
769
|
+
With the `OtelBridge`, your traces maintain proper hierarchy across OTEL and Mastra boundaries:
|
|
770
|
+
|
|
771
|
+
```text
|
|
772
|
+
HTTP POST /api/chat (from Hono middleware)
|
|
773
|
+
└── agent.assistant (from Mastra via OtelBridge)
|
|
774
|
+
├── chat gpt-5.4 (LLM call)
|
|
775
|
+
├── tool.execute search (tool execution)
|
|
776
|
+
│ └── HTTP GET api.example.com (from OTEL auto-instrumentation)
|
|
777
|
+
└── chat gpt-5.4 (follow-up LLM call)
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
### Multi-service distributed tracing
|
|
781
|
+
|
|
782
|
+
The `OtelBridge` enables trace propagation across service boundaries. When Service A calls Service B via HTTP, trace context propagates automatically:
|
|
783
|
+
|
|
784
|
+
```text
|
|
785
|
+
Service A: HTTP POST /api/process
|
|
786
|
+
└── HTTP POST service-b/api/analyze (outgoing call)
|
|
787
|
+
|
|
788
|
+
Service B: HTTP POST /api/analyze (incoming call - same trace!)
|
|
789
|
+
└── agent.analyzer (Mastra agent inherits trace context)
|
|
790
|
+
└── chat gpt-5.4
|
|
791
|
+
```
|
|
792
|
+
|
|
793
|
+
Both services must have:
|
|
794
|
+
|
|
795
|
+
1. OTEL instrumentation configured
|
|
796
|
+
2. W3C Trace Context propagator enabled
|
|
797
|
+
3. Mastra with `OtelBridge` configured
|
|
798
|
+
|
|
799
|
+
### Using tags
|
|
800
|
+
|
|
801
|
+
Tags help you categorize and filter traces in your OTEL backend. Add tags when executing agents or workflows:
|
|
802
|
+
|
|
803
|
+
```typescript
|
|
804
|
+
const result = await agent.generate('Hello', {
|
|
805
|
+
tracingOptions: {
|
|
806
|
+
tags: ['production', 'experiment-v2', 'user-request'],
|
|
807
|
+
},
|
|
808
|
+
})
|
|
809
|
+
```
|
|
810
|
+
|
|
811
|
+
Tags are exported as a JSON string in the `mastra.tags` span attribute for broad backend compatibility. Common use cases include:
|
|
812
|
+
|
|
813
|
+
- Environment labels: `"production"`, `"staging"`
|
|
814
|
+
- Experiment tracking: `"experiment-v1"`, `"control-group"`
|
|
815
|
+
- Priority levels: `"priority-high"`, `"batch-job"`
|
|
816
|
+
|
|
817
|
+
### Troubleshooting
|
|
818
|
+
|
|
819
|
+
If traces aren't displaying or connecting as expected:
|
|
820
|
+
|
|
821
|
+
- Verify OTEL SDK is initialized before Mastra (use the `--import` flag or import at the top of the entry point)
|
|
822
|
+
- Ensure the `OtelBridge` is added to your observability config
|
|
823
|
+
- Check that your OTEL backend is running and accessible
|
|
824
|
+
|
|
825
|
+
### Related
|
|
826
|
+
|
|
827
|
+
- [Tracing overview](https://mastra.ai/docs/observability/tracing/overview)
|
|
828
|
+
- [OtelBridge reference](https://mastra.ai/reference/observability/tracing/bridges/otel)
|
package/.docs/{docs/observability/integrations/exporters → integrations/observability}/posthog.md
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
> Discover all available pages from the documentation index: https://mastra.ai/llms.txt
|
|
2
2
|
|
|
3
|
-
# PostHog
|
|
3
|
+
# PostHog
|
|
4
4
|
|
|
5
5
|
[PostHog](https://posthog.com/) is an analytics platform with AI observability features for monitoring LLM applications. The PostHog exporter sends your traces to PostHog as structured events, providing insights into token usage, costs, latency, and conversation flows.
|
|
6
6
|
|
package/.docs/{docs/observability/integrations/exporters → integrations/observability}/sentry.md
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
> Discover all available pages from the documentation index: https://mastra.ai/llms.txt
|
|
2
2
|
|
|
3
|
-
# Sentry
|
|
3
|
+
# Sentry
|
|
4
4
|
|
|
5
5
|
[Sentry](https://sentry.io/) is an application monitoring platform with AI-specific tracing capabilities. The Sentry exporter sends your traces to Sentry using OpenTelemetry semantic conventions, providing insights into model performance and token usage, plus tool executions.
|
|
6
6
|
|
|
@@ -252,6 +252,6 @@ const editor = new MastraEditor({
|
|
|
252
252
|
## Related
|
|
253
253
|
|
|
254
254
|
- [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox)
|
|
255
|
-
- [DockerSandbox reference](https://mastra.ai/
|
|
255
|
+
- [DockerSandbox reference](https://mastra.ai/integrations/sandboxes/docker)
|
|
256
256
|
- [LocalSandbox reference](https://mastra.ai/reference/workspace/local-sandbox)
|
|
257
257
|
- [Workspace overview](https://mastra.ai/docs/workspace/overview)
|
|
@@ -501,6 +501,6 @@ Resources are only applied when `image` is set. Passing `resources` without `ima
|
|
|
501
501
|
- [SandboxProcessManager reference](https://mastra.ai/reference/workspace/process-manager)
|
|
502
502
|
- [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox)
|
|
503
503
|
- [LocalSandbox reference](https://mastra.ai/reference/workspace/local-sandbox)
|
|
504
|
-
- [S3Filesystem reference](https://mastra.ai/
|
|
505
|
-
- [GCSFilesystem reference](https://mastra.ai/
|
|
504
|
+
- [S3Filesystem reference](https://mastra.ai/integrations/file-storage/amazon-s3)
|
|
505
|
+
- [GCSFilesystem reference](https://mastra.ai/integrations/file-storage/google-cloud-storage)
|
|
506
506
|
- [Workspace overview](https://mastra.ai/docs/workspace/overview)
|
|
@@ -255,5 +255,5 @@ const sandbox = new DockerSandbox({
|
|
|
255
255
|
- [SandboxProcessManager reference](https://mastra.ai/reference/workspace/process-manager)
|
|
256
256
|
- [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox)
|
|
257
257
|
- [LocalSandbox reference](https://mastra.ai/reference/workspace/local-sandbox)
|
|
258
|
-
- [E2BSandbox reference](https://mastra.ai/
|
|
258
|
+
- [E2BSandbox reference](https://mastra.ai/integrations/sandboxes/e2b)
|
|
259
259
|
- [Workspace overview](https://mastra.ai/docs/workspace/overview)
|
|
@@ -271,7 +271,7 @@ const { tool, instructions } = createCodeMode(
|
|
|
271
271
|
- [SandboxProcessManager reference](https://mastra.ai/reference/workspace/process-manager)
|
|
272
272
|
- [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox)
|
|
273
273
|
- [LocalSandbox reference](https://mastra.ai/reference/workspace/local-sandbox)
|
|
274
|
-
- [S3Filesystem reference](https://mastra.ai/
|
|
275
|
-
- [GCSFilesystem reference](https://mastra.ai/
|
|
276
|
-
- [Azure Blob Filesystem reference](https://mastra.ai/
|
|
274
|
+
- [S3Filesystem reference](https://mastra.ai/integrations/file-storage/amazon-s3)
|
|
275
|
+
- [GCSFilesystem reference](https://mastra.ai/integrations/file-storage/google-cloud-storage)
|
|
276
|
+
- [Azure Blob Filesystem reference](https://mastra.ai/integrations/file-storage/azure-blob)
|
|
277
277
|
- [Workspace overview](https://mastra.ai/docs/workspace/overview)
|
|
@@ -163,6 +163,6 @@ See [`SandboxProcessManager` reference](https://mastra.ai/reference/workspace/pr
|
|
|
163
163
|
|
|
164
164
|
- [SandboxProcessManager reference](https://mastra.ai/reference/workspace/process-manager)
|
|
165
165
|
- [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox)
|
|
166
|
-
- [E2BSandbox reference](https://mastra.ai/
|
|
167
|
-
- [DaytonaSandbox reference](https://mastra.ai/
|
|
166
|
+
- [E2BSandbox reference](https://mastra.ai/integrations/sandboxes/e2b)
|
|
167
|
+
- [DaytonaSandbox reference](https://mastra.ai/integrations/sandboxes/daytona)
|
|
168
168
|
- [Workspace overview](https://mastra.ai/docs/workspace/overview)
|
|
@@ -141,6 +141,12 @@ const sandbox = new RailwaySandbox({
|
|
|
141
141
|
|
|
142
142
|
`RailwaySandbox` refreshes the checkpoint shortly before the idle timeout. Recovery restores the latest successful checkpoint. It doesn't restore running processes or filesystem writes made after the last checkpoint.
|
|
143
143
|
|
|
144
|
+
Call `snapshot()` after a filesystem update to capture the configured checkpoint immediately. It resolves without capturing when `checkpointName` isn't configured or the sandbox isn't running.
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
await sandbox.snapshot()
|
|
148
|
+
```
|
|
149
|
+
|
|
144
150
|
Use one stable checkpoint name for each independent filesystem. Don't share a checkpoint name across unrelated sessions or projects.
|
|
145
151
|
|
|
146
152
|
### Cloned sandbox checkpoints
|
|
@@ -228,6 +234,8 @@ const result = await sandbox.executeCommand('cat', ['/tmp/state.txt'])
|
|
|
228
234
|
|
|
229
235
|
**clone** (`(options?) => RailwaySandbox`): Construct an unstarted sibling sandbox that inherits credentials and defaults. Accepts optional id, sandboxId, env, idleTimeoutMinutes, and checkpointName overrides. The cloned sandbox uses options.checkpointName when set, otherwise it inherits the template checkpointName.
|
|
230
236
|
|
|
237
|
+
**snapshot** (`() => Promise<void>`): Capture the configured recovery checkpoint immediately. Resolves without work when checkpointName is not configured or the sandbox is not running.
|
|
238
|
+
|
|
231
239
|
## Background processes
|
|
232
240
|
|
|
233
241
|
`RailwaySandbox` includes a built-in process manager for spawning and managing background processes. Each spawned process runs as a Railway `exec` session.
|