@mastra/otel-exporter 1.0.0-beta.1 → 1.0.0-beta.10
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/CHANGELOG.md +171 -0
- package/README.md +47 -3
- package/dist/gen-ai-messages.d.ts +26 -0
- package/dist/gen-ai-messages.d.ts.map +1 -0
- package/dist/gen-ai-semantics.d.ts +40 -0
- package/dist/gen-ai-semantics.d.ts.map +1 -0
- package/dist/index.cjs +444 -370
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +441 -369
- package/dist/index.js.map +1 -1
- package/dist/span-converter.d.ts +27 -29
- package/dist/span-converter.d.ts.map +1 -1
- package/dist/tracing.d.ts +2 -2
- package/dist/tracing.d.ts.map +1 -1
- package/package.json +7 -8
- package/dist/mastra-span.d.ts +0 -38
- package/dist/mastra-span.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,176 @@
|
|
|
1
1
|
# @mastra/otel-exporter
|
|
2
2
|
|
|
3
|
+
## 1.0.0-beta.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`51fec93`](https://github.com/mastra-ai/mastra/commit/51fec93ffd2f167b1247c23e5c04ed24e369ff75), [`5947fcd`](https://github.com/mastra-ai/mastra/commit/5947fcdd425531f29f9422026d466c2ee3113c93)]:
|
|
8
|
+
- @mastra/observability@1.0.0-beta.9
|
|
9
|
+
- @mastra/core@1.0.0-beta.18
|
|
10
|
+
|
|
11
|
+
## 1.0.0-beta.9
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [[`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f)]:
|
|
16
|
+
- @mastra/core@1.0.0-beta.16
|
|
17
|
+
- @mastra/observability@1.0.0-beta.8
|
|
18
|
+
|
|
19
|
+
## 1.0.0-beta.8
|
|
20
|
+
|
|
21
|
+
### Minor Changes
|
|
22
|
+
|
|
23
|
+
- Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
|
|
24
|
+
|
|
25
|
+
## What changed
|
|
26
|
+
|
|
27
|
+
Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
|
|
28
|
+
|
|
29
|
+
**Before:**
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
// Old span structure
|
|
33
|
+
span.agentId; // 'my-agent'
|
|
34
|
+
span.toolId; // undefined
|
|
35
|
+
span.workflowId; // undefined
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**After:**
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
// New span structure
|
|
42
|
+
span.entityType; // EntityType.AGENT
|
|
43
|
+
span.entityId; // 'my-agent'
|
|
44
|
+
span.entityName; // 'My Agent'
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## New `listTraces()` API
|
|
48
|
+
|
|
49
|
+
Query traces with filtering, pagination, and sorting:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
const { spans, pagination } = await storage.listTraces({
|
|
53
|
+
filters: {
|
|
54
|
+
entityType: EntityType.AGENT,
|
|
55
|
+
entityId: 'my-agent',
|
|
56
|
+
userId: 'user-123',
|
|
57
|
+
environment: 'production',
|
|
58
|
+
status: TraceStatus.SUCCESS,
|
|
59
|
+
startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
|
|
60
|
+
},
|
|
61
|
+
pagination: { page: 0, perPage: 50 },
|
|
62
|
+
orderBy: { field: 'startedAt', direction: 'DESC' },
|
|
63
|
+
});
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Available filters:** date ranges (`startedAt`, `endedAt`), entity (`entityType`, `entityId`, `entityName`), identity (`userId`, `organizationId`), correlation IDs (`runId`, `sessionId`, `threadId`), deployment (`environment`, `source`, `serviceName`), `tags`, `metadata`, and `status`.
|
|
67
|
+
|
|
68
|
+
## New retrieval methods
|
|
69
|
+
- `getSpan({ traceId, spanId })` - Get a single span
|
|
70
|
+
- `getRootSpan({ traceId })` - Get the root span of a trace
|
|
71
|
+
- `getTrace({ traceId })` - Get all spans for a trace
|
|
72
|
+
|
|
73
|
+
## Backward compatibility
|
|
74
|
+
|
|
75
|
+
The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
|
|
76
|
+
|
|
77
|
+
## Migration
|
|
78
|
+
|
|
79
|
+
**Automatic:** SQL-based stores (PostgreSQL, LibSQL, MSSQL) automatically add new columns to existing `spans` tables on initialization. Existing data is preserved with new columns set to `NULL`.
|
|
80
|
+
|
|
81
|
+
**No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
|
|
82
|
+
|
|
83
|
+
### Patch Changes
|
|
84
|
+
|
|
85
|
+
- Updated dependencies [[`33a4d2e`](https://github.com/mastra-ai/mastra/commit/33a4d2e4ed8af51f69256232f00c34d6b6b51d48), [`4aaa844`](https://github.com/mastra-ai/mastra/commit/4aaa844a4f19d054490f43638a990cc57bda8d2f), [`4a1a6cb`](https://github.com/mastra-ai/mastra/commit/4a1a6cb3facad54b2bb6780b00ce91d6de1edc08), [`31d13d5`](https://github.com/mastra-ai/mastra/commit/31d13d5fdc2e2380e2e3ee3ec9fb29d2a00f265d), [`4c62166`](https://github.com/mastra-ai/mastra/commit/4c621669f4a29b1f443eca3ba70b814afa286266), [`7bcbf10`](https://github.com/mastra-ai/mastra/commit/7bcbf10133516e03df964b941f9a34e9e4ab4177), [`4353600`](https://github.com/mastra-ai/mastra/commit/43536005a65988a8eede236f69122e7f5a284ba2), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`053e979`](https://github.com/mastra-ai/mastra/commit/053e9793b28e970086b0507f7f3b76ea32c1e838), [`e26dc9c`](https://github.com/mastra-ai/mastra/commit/e26dc9c3ccfec54ae3dc3e2b2589f741f9ae60a6), [`55edf73`](https://github.com/mastra-ai/mastra/commit/55edf7302149d6c964fbb7908b43babfc2b52145), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`dee388d`](https://github.com/mastra-ai/mastra/commit/dee388dde02f2e63c53385ae69252a47ab6825cc), [`3f3fc30`](https://github.com/mastra-ai/mastra/commit/3f3fc3096f24c4a26cffeecfe73085928f72aa63), [`d90ea65`](https://github.com/mastra-ai/mastra/commit/d90ea6536f7aa51c6545a4e9215b55858e98e16d), [`d171e55`](https://github.com/mastra-ai/mastra/commit/d171e559ead9f52ec728d424844c8f7b164c4510), [`10c2735`](https://github.com/mastra-ai/mastra/commit/10c27355edfdad1ee2b826b897df74125eb81fb8), [`1924cf0`](https://github.com/mastra-ai/mastra/commit/1924cf06816e5e4d4d5333065ec0f4bb02a97799), [`b339816`](https://github.com/mastra-ai/mastra/commit/b339816df0984d0243d944ac2655d6ba5f809cde)]:
|
|
86
|
+
- @mastra/core@1.0.0-beta.15
|
|
87
|
+
- @mastra/observability@1.0.0-beta.7
|
|
88
|
+
|
|
89
|
+
## 1.0.0-beta.7
|
|
90
|
+
|
|
91
|
+
### Patch Changes
|
|
92
|
+
|
|
93
|
+
- Updated dependencies [[`4f94ed8`](https://github.com/mastra-ai/mastra/commit/4f94ed8177abfde3ec536e3574883e075423350c), [`ac3cc23`](https://github.com/mastra-ai/mastra/commit/ac3cc2397d1966bc0fc2736a223abc449d3c7719), [`a86f4df`](https://github.com/mastra-ai/mastra/commit/a86f4df0407311e0d2ea49b9a541f0938810d6a9), [`029540c`](https://github.com/mastra-ai/mastra/commit/029540ca1e582fc2dd8d288ecd4a9b0f31a954ef), [`f1bbc94`](https://github.com/mastra-ai/mastra/commit/f1bbc941934a4806f5512b3fb1507c77420336b1), [`66741d1`](https://github.com/mastra-ai/mastra/commit/66741d1a99c4f42cf23a16109939e8348ac6852e), [`01b20fe`](https://github.com/mastra-ai/mastra/commit/01b20fefb7c67c2b7d79417598ef4e60256d1225), [`0dbf199`](https://github.com/mastra-ai/mastra/commit/0dbf199110f22192ce5c95b1c8148d4872b4d119), [`a7ce182`](https://github.com/mastra-ai/mastra/commit/a7ce1822a8785ce45d62dd5c911af465e144f7d7)]:
|
|
94
|
+
- @mastra/core@1.0.0-beta.14
|
|
95
|
+
- @mastra/observability@1.0.0-beta.6
|
|
96
|
+
|
|
97
|
+
## 1.0.0-beta.6
|
|
98
|
+
|
|
99
|
+
### Patch Changes
|
|
100
|
+
|
|
101
|
+
- Updated dependencies [[`d5ed981`](https://github.com/mastra-ai/mastra/commit/d5ed981c8701c1b8a27a5f35a9a2f7d9244e695f), [`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808), [`932d63d`](https://github.com/mastra-ai/mastra/commit/932d63dd51be9c8bf1e00e3671fe65606c6fb9cd), [`b760b73`](https://github.com/mastra-ai/mastra/commit/b760b731aca7c8a3f041f61d57a7f125ae9cb215), [`695a621`](https://github.com/mastra-ai/mastra/commit/695a621528bdabeb87f83c2277cf2bb084c7f2b4), [`2b459f4`](https://github.com/mastra-ai/mastra/commit/2b459f466fd91688eeb2a44801dc23f7f8a887ab), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`24b76d8`](https://github.com/mastra-ai/mastra/commit/24b76d8e17656269c8ed09a0c038adb9cc2ae95a), [`243a823`](https://github.com/mastra-ai/mastra/commit/243a8239c5906f5c94e4f78b54676793f7510ae3), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`c61fac3`](https://github.com/mastra-ai/mastra/commit/c61fac3add96f0dcce0208c07415279e2537eb62), [`6f14f70`](https://github.com/mastra-ai/mastra/commit/6f14f706ccaaf81b69544b6c1b75ab66a41e5317), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`4524734`](https://github.com/mastra-ai/mastra/commit/45247343e384717a7c8404296275c56201d6470f), [`2a53598`](https://github.com/mastra-ai/mastra/commit/2a53598c6d8cfeb904a7fc74e57e526d751c8fa6), [`c7cd3c7`](https://github.com/mastra-ai/mastra/commit/c7cd3c7a187d7aaf79e2ca139de328bf609a14b4), [`5a632bd`](https://github.com/mastra-ai/mastra/commit/5a632bdf7b78953b664f5e038e98d4ba5f971e47), [`847c212`](https://github.com/mastra-ai/mastra/commit/847c212caba7df0d6f2fc756b494ac3c75c3720d), [`6f941c4`](https://github.com/mastra-ai/mastra/commit/6f941c438ca5f578619788acc7608fc2e23bd176)]:
|
|
102
|
+
- @mastra/core@1.0.0-beta.12
|
|
103
|
+
- @mastra/observability@1.0.0-beta.5
|
|
104
|
+
|
|
105
|
+
## 1.0.0-beta.5
|
|
106
|
+
|
|
107
|
+
### Patch Changes
|
|
108
|
+
|
|
109
|
+
- Fixed CachedToken tracking in all Observability Exporters. Also fixed TimeToFirstToken in Langfuse, Braintrust, PostHog exporters. Fixed trace formatting in Posthog Exporter. ([#11029](https://github.com/mastra-ai/mastra/pull/11029))
|
|
110
|
+
|
|
111
|
+
- Updated dependencies [[`edb07e4`](https://github.com/mastra-ai/mastra/commit/edb07e49283e0c28bd094a60e03439bf6ecf0221), [`b7e17d3`](https://github.com/mastra-ai/mastra/commit/b7e17d3f5390bb5a71efc112204413656fcdc18d), [`261473a`](https://github.com/mastra-ai/mastra/commit/261473ac637e633064a22076671e2e02b002214d), [`5d7000f`](https://github.com/mastra-ai/mastra/commit/5d7000f757cd65ea9dc5b05e662fd83dfd44e932), [`4f0331a`](https://github.com/mastra-ai/mastra/commit/4f0331a79bf6eb5ee598a5086e55de4b5a0ada03), [`8a000da`](https://github.com/mastra-ai/mastra/commit/8a000da0c09c679a2312f6b3aa05b2ca78ca7393)]:
|
|
112
|
+
- @mastra/core@1.0.0-beta.10
|
|
113
|
+
- @mastra/observability@1.0.0-beta.4
|
|
114
|
+
|
|
115
|
+
## 1.0.0-beta.4
|
|
116
|
+
|
|
117
|
+
### Patch Changes
|
|
118
|
+
|
|
119
|
+
- Add agentId and agentName attributes to MODEL_GENERATION spans. This allows users to correlate gen_ai.usage metrics with specific agents when analyzing LLM operation spans. The attributes are exported as gen_ai.agent.id and gen_ai.agent.name in the OtelExporter. ([#10984](https://github.com/mastra-ai/mastra/pull/10984))
|
|
120
|
+
|
|
121
|
+
- Updated dependencies [[`72df8ae`](https://github.com/mastra-ai/mastra/commit/72df8ae595584cdd7747d5c39ffaca45e4507227), [`9198899`](https://github.com/mastra-ai/mastra/commit/91988995c427b185c33714b7f3be955367911324), [`653e65a`](https://github.com/mastra-ai/mastra/commit/653e65ae1f9502c2958a32f47a5a2df11e612a92), [`c6fd6fe`](https://github.com/mastra-ai/mastra/commit/c6fd6fedd09e9cf8004b03a80925f5e94826ad7e), [`0bed332`](https://github.com/mastra-ai/mastra/commit/0bed332843f627202c6520eaf671771313cd20f3)]:
|
|
122
|
+
- @mastra/core@1.0.0-beta.9
|
|
123
|
+
|
|
124
|
+
## 1.0.0-beta.3
|
|
125
|
+
|
|
126
|
+
### Patch Changes
|
|
127
|
+
|
|
128
|
+
- Updated OtelExporters, Bridge, and Arize packages to better implement GenAI v1.38.0 Otel Semantic Conventions. See: ([#10591](https://github.com/mastra-ai/mastra/pull/10591))
|
|
129
|
+
https://github.com/open-telemetry/semantic-conventions/blob/v1.38.0/docs/gen-ai/README.md
|
|
130
|
+
|
|
131
|
+
- feat(observability): Add tags support to OtelExporter, OtelBridge, and ArizeExporter ([#10843](https://github.com/mastra-ai/mastra/pull/10843))
|
|
132
|
+
|
|
133
|
+
This change adds support for the `tracingOptions.tags` feature to the OpenTelemetry-based exporters and bridge. Tags are now included as span attributes when present on root spans, following the same pattern as Braintrust and Langfuse exporters.
|
|
134
|
+
|
|
135
|
+
**Changes:**
|
|
136
|
+
- **OtelExporter**: Tags are now included as `mastra.tags` span attribute for root spans
|
|
137
|
+
- **OtelBridge**: Tags flow through the SpanConverter and are included in native OTEL spans as `mastra.tags`
|
|
138
|
+
- **ArizeExporter**: Tags are mapped to the native OpenInference `tag.tags` semantic convention
|
|
139
|
+
|
|
140
|
+
**Implementation Details:**
|
|
141
|
+
- Tags are only included on root spans (by design)
|
|
142
|
+
- Tags are stored as JSON-stringified arrays for maximum backend compatibility (many OTEL backends have limited native array support)
|
|
143
|
+
- Empty or undefined tag arrays are not included in span attributes
|
|
144
|
+
|
|
145
|
+
**Usage:**
|
|
146
|
+
|
|
147
|
+
```typescript
|
|
148
|
+
const result = await agent.generate({
|
|
149
|
+
messages: [{ role: 'user', content: 'Hello' }],
|
|
150
|
+
tracingOptions: {
|
|
151
|
+
tags: ['production', 'experiment-v2'],
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Fixes #10771
|
|
157
|
+
|
|
158
|
+
- Updated dependencies [[`6c59a40`](https://github.com/mastra-ai/mastra/commit/6c59a40e0ad160467bd13d63a8a287028d75b02d), [`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`0bada2f`](https://github.com/mastra-ai/mastra/commit/0bada2f2c1234932cf30c1c47a719ffb64b801c5), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`cc60ff6`](https://github.com/mastra-ai/mastra/commit/cc60ff616541a3b0fb531a7e469bf9ae7bb90528), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b)]:
|
|
159
|
+
- @mastra/observability@1.0.0-beta.3
|
|
160
|
+
- @mastra/core@1.0.0-beta.7
|
|
161
|
+
|
|
162
|
+
## 1.0.0-beta.2
|
|
163
|
+
|
|
164
|
+
### Minor Changes
|
|
165
|
+
|
|
166
|
+
- Adds bidirectional integration with otel tracing via a new @mastra/otel-bridge package. ([#10482](https://github.com/mastra-ai/mastra/pull/10482))
|
|
167
|
+
|
|
168
|
+
### Patch Changes
|
|
169
|
+
|
|
170
|
+
- Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`103586c`](https://github.com/mastra-ai/mastra/commit/103586cb23ebcd2466c7f68a71674d37cc10e263), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749)]:
|
|
171
|
+
- @mastra/core@1.0.0-beta.6
|
|
172
|
+
- @mastra/observability@1.0.0-beta.2
|
|
173
|
+
|
|
3
174
|
## 1.0.0-beta.1
|
|
4
175
|
|
|
5
176
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -359,7 +359,7 @@ Spans are named following OTEL conventions:
|
|
|
359
359
|
|
|
360
360
|
- **LLM Operations**: `chat {model}` or `tool_selection {model}`
|
|
361
361
|
- **Tool Execution**: `tool.execute {tool_name}`
|
|
362
|
-
- **Agent Runs**: `
|
|
362
|
+
- **Agent Runs**: `invoke_agent {agent_name}`
|
|
363
363
|
- **Workflow Runs**: `workflow.{workflow_id}`
|
|
364
364
|
|
|
365
365
|
### Attributes
|
|
@@ -369,7 +369,7 @@ The exporter maps Mastra's tracing data to OTEL-compliant attributes:
|
|
|
369
369
|
#### Core Attributes
|
|
370
370
|
|
|
371
371
|
- `gen_ai.operation.name` - Operation type (chat, tool.execute, agent.run, workflow.run)
|
|
372
|
-
- `gen_ai.
|
|
372
|
+
- `gen_ai.provider.name` - AI provider (openai, anthropic, etc.)
|
|
373
373
|
- `gen_ai.request.model` - Model identifier
|
|
374
374
|
|
|
375
375
|
#### LLM-Specific Attributes
|
|
@@ -382,8 +382,12 @@ The exporter maps Mastra's tracing data to OTEL-compliant attributes:
|
|
|
382
382
|
- `gen_ai.request.top_p` - Top-p sampling parameter
|
|
383
383
|
- `gen_ai.request.top_k` - Top-k sampling parameter
|
|
384
384
|
- `gen_ai.response.finish_reasons` - Reason for completion
|
|
385
|
+
- `gen_ai.response.model` - Actual model used in response (may differ from request)
|
|
386
|
+
- `gen_ai.response.id` - Unique response identifier
|
|
385
387
|
- `gen_ai.prompt` - Input prompt (for Model spans)
|
|
386
388
|
- `gen_ai.completion` - Model output (for Model spans)
|
|
389
|
+
- `server.address` - Server address for the model endpoint
|
|
390
|
+
- `server.port` - Server port for the model endpoint
|
|
387
391
|
|
|
388
392
|
#### Tool Attributes
|
|
389
393
|
|
|
@@ -395,7 +399,10 @@ The exporter maps Mastra's tracing data to OTEL-compliant attributes:
|
|
|
395
399
|
|
|
396
400
|
#### Agent & Workflow Attributes
|
|
397
401
|
|
|
398
|
-
- `agent.id` - Agent identifier
|
|
402
|
+
- `gen_ai.agent.id` - Agent identifier
|
|
403
|
+
- `gen_ai.agent.name` - Human-readable agent name
|
|
404
|
+
- `gen_ai.conversation.id` - Conversation/thread/session identifier
|
|
405
|
+
- `agent.id` - Agent identifier (also included for compatibility)
|
|
399
406
|
- `agent.max_steps` - Maximum agent steps
|
|
400
407
|
- `workflow.id` - Workflow identifier
|
|
401
408
|
- `workflow.status` - Workflow execution status
|
|
@@ -407,6 +414,43 @@ The exporter maps Mastra's tracing data to OTEL-compliant attributes:
|
|
|
407
414
|
- `error.message` - Error description
|
|
408
415
|
- `error.domain` - Error domain/category
|
|
409
416
|
|
|
417
|
+
### Opt-In Content Attributes
|
|
418
|
+
|
|
419
|
+
For enhanced observability, you can enable additional content attributes that capture detailed message data. These attributes may contain sensitive information and should only be enabled with proper consent and security considerations.
|
|
420
|
+
|
|
421
|
+
To enable content attributes:
|
|
422
|
+
|
|
423
|
+
```typescript
|
|
424
|
+
new OtelExporter({
|
|
425
|
+
provider: {
|
|
426
|
+
/* your provider config */
|
|
427
|
+
},
|
|
428
|
+
genAiConventions: {
|
|
429
|
+
includeContentAttributes: true, // Default: false
|
|
430
|
+
},
|
|
431
|
+
});
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
When enabled, the following additional attributes are captured:
|
|
435
|
+
|
|
436
|
+
#### Model Content Attributes
|
|
437
|
+
|
|
438
|
+
- `gen_ai.input.messages` - Structured input messages in OpenTelemetry format
|
|
439
|
+
- `gen_ai.output.messages` - Structured output messages in OpenTelemetry format
|
|
440
|
+
|
|
441
|
+
These attributes convert Mastra's message format to the OpenTelemetry GenAI standard message schema, providing detailed conversation history and tool interactions.
|
|
442
|
+
|
|
443
|
+
#### Agent Content Attributes
|
|
444
|
+
|
|
445
|
+
- `gen_ai.system_instructions` - Agent system instructions/prompts
|
|
446
|
+
|
|
447
|
+
**Privacy Considerations:**
|
|
448
|
+
|
|
449
|
+
- These attributes may contain user data, prompts, and model responses
|
|
450
|
+
- Only enable in environments where data privacy and compliance requirements are met
|
|
451
|
+
- Consider using span processors to filter sensitive data before export
|
|
452
|
+
- Review your organization's data retention and privacy policies before enabling
|
|
453
|
+
|
|
410
454
|
## Troubleshooting
|
|
411
455
|
|
|
412
456
|
### Missing Dependency Error
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for converting Mastra messages to OpenTelemetry gen_ai message format
|
|
3
|
+
* Based on OpenTelemetry GenAI semantic conventions
|
|
4
|
+
* @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-input-messages
|
|
5
|
+
* @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-input-messages.json
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Convert an Input/Output string from a MastraSpan into a jsonified string that adheres to
|
|
9
|
+
* OpenTelemetry gen_ai.input.messages and gen_ai.output.messages schema.
|
|
10
|
+
* If parsing fails at any step, the original inputOutputString is returned unmodified.
|
|
11
|
+
*
|
|
12
|
+
* This conversion is best effort; It assumes a consistent shape for mastra messages, and converts
|
|
13
|
+
* into the gen_ai input and output schemas as of October 20th, 2025.
|
|
14
|
+
*
|
|
15
|
+
* @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-input-messages
|
|
16
|
+
* @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-input-messages.json
|
|
17
|
+
* @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-output-messages
|
|
18
|
+
* @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-output-messages.json
|
|
19
|
+
*
|
|
20
|
+
* @param inputOutputString a jsonified string that contains messages adhering to what appears to be
|
|
21
|
+
* Mastra's message shape.
|
|
22
|
+
* @returns a jsonified string that contains messages adhering to the OpenTelemetry gen_ai.input.messages and gen_ai.output.messages schema.
|
|
23
|
+
* If parsing fails at any step, the original inputOutputString is returned unmodified.
|
|
24
|
+
*/
|
|
25
|
+
export declare const convertMastraMessagesToGenAIMessages: (inputOutputString: string) => string;
|
|
26
|
+
//# sourceMappingURL=gen-ai-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gen-ai-messages.d.ts","sourceRoot":"","sources":["../src/gen-ai-messages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oCAAoC,GAAI,mBAAmB,MAAM,KAAG,MAyEhF,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for converting Mastra Spans to OTel Spans
|
|
3
|
+
* with Semantic conventions for generative AI systems
|
|
4
|
+
* @see https://github.com/open-telemetry/semantic-conventions/blob/v1.38.0/docs/gen-ai/README.md
|
|
5
|
+
* @see https://github.com/open-telemetry/semantic-conventions/blob/v1.38.0/docs/gen-ai/gen-ai-events.md
|
|
6
|
+
* @see https://github.com/open-telemetry/semantic-conventions/blob/v1.38.0/docs/gen-ai/gen-ai-spans.md
|
|
7
|
+
* @see https://github.com/open-telemetry/semantic-conventions/blob/v1.38.0/docs/gen-ai/gen-ai-agent-spans.md
|
|
8
|
+
* @see https://opentelemetry.io/docs/specs/semconv/gen-ai/non-normative/examples-llm-calls/
|
|
9
|
+
* @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/
|
|
10
|
+
*/
|
|
11
|
+
import type { AnyExportedSpan, UsageStats } from '@mastra/core/observability';
|
|
12
|
+
import type { Attributes } from '@opentelemetry/api';
|
|
13
|
+
import { ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS } from '@opentelemetry/semantic-conventions/incubating';
|
|
14
|
+
/**
|
|
15
|
+
* Token usage attributes following OTel GenAI semantic conventions.
|
|
16
|
+
* @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/
|
|
17
|
+
*/
|
|
18
|
+
export interface OtelUsageMetrics {
|
|
19
|
+
[ATTR_GEN_AI_USAGE_INPUT_TOKENS]?: number;
|
|
20
|
+
[ATTR_GEN_AI_USAGE_OUTPUT_TOKENS]?: number;
|
|
21
|
+
'gen_ai.usage.reasoning_tokens'?: number;
|
|
22
|
+
'gen_ai.usage.cached_input_tokens'?: number;
|
|
23
|
+
'gen_ai.usage.cache_write_tokens'?: number;
|
|
24
|
+
'gen_ai.usage.audio_input_tokens'?: number;
|
|
25
|
+
'gen_ai.usage.audio_output_tokens'?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Formats UsageStats to OTel GenAI semantic convention attributes.
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatUsageMetrics(usage?: UsageStats): OtelUsageMetrics;
|
|
31
|
+
/**
|
|
32
|
+
* Get an OTEL-compliant span name based on span type and attributes
|
|
33
|
+
*/
|
|
34
|
+
export declare function getSpanName(span: AnyExportedSpan): string;
|
|
35
|
+
/**
|
|
36
|
+
* Gets OpenTelemetry attributes from Mastra Span
|
|
37
|
+
* Following OTEL Semantic Conventions for GenAI
|
|
38
|
+
*/
|
|
39
|
+
export declare function getAttributes(span: AnyExportedSpan): Attributes;
|
|
40
|
+
//# sourceMappingURL=gen-ai-semantics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gen-ai-semantics.d.ts","sourceRoot":"","sources":["../src/gen-ai-semantics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAEV,eAAe,EAIf,UAAU,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAgBL,8BAA8B,EAC9B,+BAA+B,EAYhC,MAAM,gDAAgD,CAAC;AAGxD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,8BAA8B,CAAC,CAAC,EAAE,MAAM,CAAC;IAC1C,CAAC,+BAA+B,CAAC,CAAC,EAAE,MAAM,CAAC;IAC3C,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC5C,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,kCAAkC,CAAC,EAAE,MAAM,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,gBAAgB,CAqCvE;AAuCD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAUzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,CA+K/D"}
|