@mastra/observability 0.0.0-add-crumb-action-20251028111500 → 0.0.0-allow-to-pass-a-mastra-url-instance-20251105224938
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 +43 -3
- package/README.md +99 -0
- package/dist/config.d.ts +75 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/default.d.ts +29 -0
- package/dist/default.d.ts.map +1 -0
- package/dist/exporters/base.d.ts +111 -0
- package/dist/exporters/base.d.ts.map +1 -0
- package/dist/exporters/cloud.d.ts +30 -0
- package/dist/exporters/cloud.d.ts.map +1 -0
- package/dist/exporters/console.d.ts +10 -0
- package/dist/exporters/console.d.ts.map +1 -0
- package/dist/exporters/default.d.ts +89 -0
- package/dist/exporters/default.d.ts.map +1 -0
- package/dist/exporters/index.d.ts +9 -0
- package/dist/exporters/index.d.ts.map +1 -0
- package/dist/index.cjs +2098 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2084 -0
- package/dist/index.js.map +1 -1
- package/dist/instances/base.d.ts +106 -0
- package/dist/instances/base.d.ts.map +1 -0
- package/dist/instances/default.d.ts +8 -0
- package/dist/instances/default.d.ts.map +1 -0
- package/dist/instances/index.d.ts +6 -0
- package/dist/instances/index.d.ts.map +1 -0
- package/dist/model-tracing.d.ts +48 -0
- package/dist/model-tracing.d.ts.map +1 -0
- package/dist/registry.d.ts +49 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/span_processors/index.d.ts +5 -0
- package/dist/span_processors/index.d.ts.map +1 -0
- package/dist/span_processors/sensitive-data-filter.d.ts +85 -0
- package/dist/span_processors/sensitive-data-filter.d.ts.map +1 -0
- package/dist/spans/base.d.ts +71 -0
- package/dist/spans/base.d.ts.map +1 -0
- package/dist/spans/default.d.ts +13 -0
- package/dist/spans/default.d.ts.map +1 -0
- package/dist/spans/index.d.ts +7 -0
- package/dist/spans/index.d.ts.map +1 -0
- package/dist/spans/no-op.d.ts +15 -0
- package/dist/spans/no-op.d.ts.map +1 -0
- package/package.json +12 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,46 @@
|
|
|
1
1
|
# @mastra/observability
|
|
2
2
|
|
|
3
|
-
## 0.0.0-
|
|
3
|
+
## 0.0.0-allow-to-pass-a-mastra-url-instance-20251105224938
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
|
|
8
|
+
|
|
9
|
+
- Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
|
|
10
|
+
|
|
11
|
+
- ```([#9709](https://github.com/mastra-ai/mastra/pull/9709))
|
|
12
|
+
import { Mastra } from '@mastra/core';
|
|
13
|
+
import { Observability } from '@mastra/observability'; // Explicit import
|
|
14
|
+
|
|
15
|
+
const mastra = new Mastra({
|
|
16
|
+
...other_config,
|
|
17
|
+
observability: new Observability({
|
|
18
|
+
default: { enabled: true }
|
|
19
|
+
}) // Instance
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Instead of:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
import { Mastra } from '@mastra/core';
|
|
27
|
+
import '@mastra/observability/init'; // Explicit import
|
|
28
|
+
|
|
29
|
+
const mastra = new Mastra({
|
|
30
|
+
...other_config,
|
|
31
|
+
observability: {
|
|
32
|
+
default: { enabled: true }
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Also renamed a bunch of:
|
|
38
|
+
- `Tracing` things to `Observability` things.
|
|
39
|
+
- `AI-` things to just things.
|
|
40
|
+
|
|
41
|
+
- Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
|
|
42
|
+
|
|
43
|
+
- moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
|
|
4
44
|
|
|
5
45
|
### Patch Changes
|
|
6
46
|
|
|
@@ -8,8 +48,8 @@
|
|
|
8
48
|
|
|
9
49
|
- Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
10
50
|
|
|
11
|
-
- Updated dependencies [[`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
|
|
12
|
-
- @mastra/core@0.0.0-
|
|
51
|
+
- Updated dependencies [[`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
|
|
52
|
+
- @mastra/core@0.0.0-allow-to-pass-a-mastra-url-instance-20251105224938
|
|
13
53
|
|
|
14
54
|
## 0.0.2
|
|
15
55
|
|
package/README.md
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Mastra Observability
|
|
2
|
+
|
|
3
|
+
A comprehensive observability system for AI operations in Mastra, providing type-safe span tracking, event-driven exports, and flexible tracing configuration.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The Mastra Observability system enables detailed observability for AI-driven applications by tracking operations through spans that capture metadata, timing, and context. It's designed to work seamlessly with Mastra's architecture while providing flexible configuration and export options.
|
|
8
|
+
|
|
9
|
+
## Key Features
|
|
10
|
+
|
|
11
|
+
- **Type-Safe Spans**: Strongly typed metadata based on span type prevents runtime errors
|
|
12
|
+
- **Event-Driven Architecture**: Real-time tracing events for immediate observability
|
|
13
|
+
- **OpenTelemetry Compatible**: Uses standard trace and span ID formats for integration
|
|
14
|
+
- **Flexible Sampling**: Multiple sampling strategies with custom sampler support
|
|
15
|
+
- **Pluggable Processors**: Modify or filter span fields before export
|
|
16
|
+
- **Pluggable Exporters**: Multiple export formats and destinations
|
|
17
|
+
- **Automatic Lifecycle Management**: Spans automatically emit events without manual intervention
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
### Manual Tracing
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { DefaultObservabilityInstance, SpanType } from '@mastra/observability';
|
|
25
|
+
|
|
26
|
+
// Create observability instance
|
|
27
|
+
const observability = new DefaultObservabilityInstance({
|
|
28
|
+
name: 'my-app',
|
|
29
|
+
serviceName: 'my-app',
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// Start an agent span
|
|
33
|
+
const agentSpan = observability.startSpan({
|
|
34
|
+
type: SpanType.AGENT_RUN,
|
|
35
|
+
name: 'customer-support-agent',
|
|
36
|
+
attributes: {
|
|
37
|
+
agentId: 'agent-123',
|
|
38
|
+
instructions: 'Help with customer support',
|
|
39
|
+
maxSteps: 10,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// Create child spans for nested operations
|
|
44
|
+
const llmSpan = agentSpan.createChildSpan({
|
|
45
|
+
type: SpanType.MODEL_GENERATION,
|
|
46
|
+
name: 'gpt-4-response',
|
|
47
|
+
attributes: {
|
|
48
|
+
model: 'gpt-4',
|
|
49
|
+
provider: 'openai',
|
|
50
|
+
streaming: false,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// End spans with results
|
|
55
|
+
llmSpan.end({
|
|
56
|
+
output: 'Generated response',
|
|
57
|
+
attributes: { usage: { totalTokens: 180 } },
|
|
58
|
+
});
|
|
59
|
+
agentSpan.end();
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Span Types
|
|
63
|
+
|
|
64
|
+
- **`WORKFLOW_RUN`**: Root span for entire workflow execution
|
|
65
|
+
- **`WORKFLOW_STEP`**: Individual step execution within a workflow
|
|
66
|
+
- **`AGENT_RUN`**: Agent processing (supports tools, memory, multi-step)
|
|
67
|
+
- **`MODEL_GENERATION`**: Individual model API calls with token usage
|
|
68
|
+
- **`TOOL_CALL`**: Function/tool execution
|
|
69
|
+
- **`MCP_TOOL_CALL`**: Model Context Protocol tool execution
|
|
70
|
+
- **`PROCESSOR_RUN`**: Input/output processor execution
|
|
71
|
+
- **`GENERIC`**: Custom spans for other operations
|
|
72
|
+
|
|
73
|
+
### Basic Configuration
|
|
74
|
+
|
|
75
|
+
Enable observability in your Mastra instance:
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { Mastra } from '@mastra/core';
|
|
79
|
+
import { Observability } from '@mastra/observability';
|
|
80
|
+
|
|
81
|
+
export const mastra = new Mastra({
|
|
82
|
+
// ... other config
|
|
83
|
+
observability: new Observability({
|
|
84
|
+
default: { enabled: true },
|
|
85
|
+
}),
|
|
86
|
+
});
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
This enables the `DefaultExporter` and `CloudExporter`, with the `SensitiveDataFilter` span output processor, and `always` sampling.
|
|
90
|
+
|
|
91
|
+
## Performance Considerations
|
|
92
|
+
|
|
93
|
+
### Current Implementation
|
|
94
|
+
|
|
95
|
+
The current implementation prioritizes correctness and ease of use:
|
|
96
|
+
|
|
97
|
+
- **Automatic Lifecycle Management**: All spans automatically emit events through method wrapping
|
|
98
|
+
- **Real-time Export**: Events are exported immediately when they occur
|
|
99
|
+
- **Memory Overhead**: Each span maintains references to tracing instance
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration types for Mastra Observability
|
|
3
|
+
*
|
|
4
|
+
* These types define the configuration structure for observability,
|
|
5
|
+
* including tracing configs, sampling strategies, and registry setup.
|
|
6
|
+
*/
|
|
7
|
+
import type { RequestContext } from '@mastra/core/di';
|
|
8
|
+
import type { ObservabilityInstance, ObservabilityExporter, SpanOutputProcessor, ConfigSelector } from '@mastra/core/observability';
|
|
9
|
+
/**
|
|
10
|
+
* Sampling strategy types
|
|
11
|
+
*/
|
|
12
|
+
export declare enum SamplingStrategyType {
|
|
13
|
+
ALWAYS = "always",
|
|
14
|
+
NEVER = "never",
|
|
15
|
+
RATIO = "ratio",
|
|
16
|
+
CUSTOM = "custom"
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Options passed when using a custom sampler strategy
|
|
20
|
+
*/
|
|
21
|
+
export interface CustomSamplerOptions {
|
|
22
|
+
requestContext?: RequestContext;
|
|
23
|
+
metadata?: Record<string, any>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Sampling strategy configuration
|
|
27
|
+
*/
|
|
28
|
+
export type SamplingStrategy = {
|
|
29
|
+
type: SamplingStrategyType.ALWAYS;
|
|
30
|
+
} | {
|
|
31
|
+
type: SamplingStrategyType.NEVER;
|
|
32
|
+
} | {
|
|
33
|
+
type: SamplingStrategyType.RATIO;
|
|
34
|
+
probability: number;
|
|
35
|
+
} | {
|
|
36
|
+
type: SamplingStrategyType.CUSTOM;
|
|
37
|
+
sampler: (options?: CustomSamplerOptions) => boolean;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Configuration for a single observability instance
|
|
41
|
+
*/
|
|
42
|
+
export interface ObservabilityInstanceConfig {
|
|
43
|
+
/** Unique identifier for this config in the tracing registry */
|
|
44
|
+
name: string;
|
|
45
|
+
/** Service name for tracing */
|
|
46
|
+
serviceName: string;
|
|
47
|
+
/** Sampling strategy - controls whether tracing is collected (defaults to ALWAYS) */
|
|
48
|
+
sampling?: SamplingStrategy;
|
|
49
|
+
/** Custom exporters */
|
|
50
|
+
exporters?: ObservabilityExporter[];
|
|
51
|
+
/** Custom span output processors */
|
|
52
|
+
spanOutputProcessors?: SpanOutputProcessor[];
|
|
53
|
+
/** Set to `true` if you want to see spans internal to the operation of mastra */
|
|
54
|
+
includeInternalSpans?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* RequestContext keys to automatically extract as metadata for all spans
|
|
57
|
+
* created with this tracing configuration.
|
|
58
|
+
* Supports dot notation for nested values.
|
|
59
|
+
*/
|
|
60
|
+
requestContextKeys?: string[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Complete Observability registry configuration
|
|
64
|
+
*/
|
|
65
|
+
export interface ObservabilityRegistryConfig {
|
|
66
|
+
/** Enables default exporters, with sampling: always, and sensitive data filtering */
|
|
67
|
+
default?: {
|
|
68
|
+
enabled?: boolean;
|
|
69
|
+
};
|
|
70
|
+
/** Map of tracing instance names to their configurations or pre-instantiated instances */
|
|
71
|
+
configs?: Record<string, Omit<ObservabilityInstanceConfig, 'name'> | ObservabilityInstance>;
|
|
72
|
+
/** Optional selector function to choose which tracing instance to use */
|
|
73
|
+
configSelector?: ConfigSelector;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,4BAA4B,CAAC;AAMpC;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAA;CAAE,CAAC;AAMhG;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,uBAAuB;IACvB,SAAS,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACpC,oCAAoC;IACpC,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7C,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qFAAqF;IACrF,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC;IAC5F,yEAAyE;IACzE,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Mastra } from '@mastra/core';
|
|
2
|
+
import { MastraBase } from '@mastra/core/base';
|
|
3
|
+
import type { IMastraLogger } from '@mastra/core/logger';
|
|
4
|
+
import type { ConfigSelector, ConfigSelectorOptions, ObservabilityEntrypoint, ObservabilityInstance } from '@mastra/core/observability';
|
|
5
|
+
import type { ObservabilityRegistryConfig } from './config.js';
|
|
6
|
+
export declare class Observability extends MastraBase implements ObservabilityEntrypoint {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(config: ObservabilityRegistryConfig);
|
|
9
|
+
setMastraContext(options: {
|
|
10
|
+
mastra: Mastra;
|
|
11
|
+
}): void;
|
|
12
|
+
setLogger(options: {
|
|
13
|
+
logger: IMastraLogger;
|
|
14
|
+
}): void;
|
|
15
|
+
getSelectedInstance(options: ConfigSelectorOptions): ObservabilityInstance | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Registry management methods
|
|
18
|
+
*/
|
|
19
|
+
registerInstance(name: string, instance: ObservabilityInstance, isDefault?: boolean): void;
|
|
20
|
+
getInstance(name: string): ObservabilityInstance | undefined;
|
|
21
|
+
getDefaultInstance(): ObservabilityInstance | undefined;
|
|
22
|
+
listInstances(): ReadonlyMap<string, ObservabilityInstance>;
|
|
23
|
+
unregisterInstance(name: string): boolean;
|
|
24
|
+
hasInstance(name: string): boolean;
|
|
25
|
+
setConfigSelector(selector: ConfigSelector): void;
|
|
26
|
+
clear(): void;
|
|
27
|
+
shutdown(): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../src/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAA+B,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAezF,qBAAa,aAAc,SAAQ,UAAW,YAAW,uBAAuB;;gBAGlE,MAAM,EAAE,2BAA2B;IAqD/C,gBAAgB,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAuBnD,SAAS,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,aAAa,CAAA;KAAE,GAAG,IAAI;IAOnD,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,SAAS;IAItF;;OAEG;IAEH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,SAAS,UAAQ,GAAG,IAAI;IAIxF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAI5D,kBAAkB,IAAI,qBAAqB,GAAG,SAAS;IAIvD,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAI3D,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIjD,KAAK,IAAI,IAAI;IAIP,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Exporter for Observability
|
|
3
|
+
*
|
|
4
|
+
* Provides common functionality shared by all observability exporters:
|
|
5
|
+
* - Logger initialization with proper Mastra logger support
|
|
6
|
+
* - Disabled state management
|
|
7
|
+
* - Graceful shutdown lifecycle
|
|
8
|
+
*/
|
|
9
|
+
import { LogLevel } from '@mastra/core/logger';
|
|
10
|
+
import type { IMastraLogger } from '@mastra/core/logger';
|
|
11
|
+
import type { TracingEvent, ObservabilityExporter, InitExporterOptions } from '@mastra/core/observability';
|
|
12
|
+
/**
|
|
13
|
+
* Base configuration that all exporters should support
|
|
14
|
+
*/
|
|
15
|
+
export interface BaseExporterConfig {
|
|
16
|
+
/** Optional Mastra logger instance */
|
|
17
|
+
logger?: IMastraLogger;
|
|
18
|
+
/** Log level for the exporter (defaults to INFO) - accepts both enum and string */
|
|
19
|
+
logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Abstract base class for observability exporters
|
|
23
|
+
*
|
|
24
|
+
* Handles common concerns:
|
|
25
|
+
* - Logger setup with proper Mastra logger
|
|
26
|
+
* - Disabled state management
|
|
27
|
+
* - Basic lifecycle methods
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* class MyExporter extends BaseExporter {
|
|
32
|
+
* name = 'my-exporter';
|
|
33
|
+
*
|
|
34
|
+
* constructor(config: MyExporterConfig) {
|
|
35
|
+
* super(config);
|
|
36
|
+
*
|
|
37
|
+
* if (!config.apiKey) {
|
|
38
|
+
* this.setDisabled('Missing API key');
|
|
39
|
+
* return;
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* // Initialize exporter-specific logic
|
|
43
|
+
* }
|
|
44
|
+
*
|
|
45
|
+
* async _exportEvent(event: TracingEvent): Promise<void> {
|
|
46
|
+
* // Export logic
|
|
47
|
+
* }
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare abstract class BaseExporter implements ObservabilityExporter {
|
|
52
|
+
/** Exporter name - must be implemented by subclasses */
|
|
53
|
+
abstract name: string;
|
|
54
|
+
/** Mastra logger instance */
|
|
55
|
+
protected logger: IMastraLogger;
|
|
56
|
+
/** Whether this exporter is disabled */
|
|
57
|
+
protected isDisabled: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Initialize the base exporter with logger
|
|
60
|
+
*/
|
|
61
|
+
constructor(config?: BaseExporterConfig);
|
|
62
|
+
/**
|
|
63
|
+
* Set the logger for the exporter (called by Mastra/ObservabilityInstance during initialization)
|
|
64
|
+
*/
|
|
65
|
+
__setLogger(logger: IMastraLogger): void;
|
|
66
|
+
/**
|
|
67
|
+
* Convert string log level to LogLevel enum
|
|
68
|
+
*/
|
|
69
|
+
private resolveLogLevel;
|
|
70
|
+
/**
|
|
71
|
+
* Mark the exporter as disabled and log a message
|
|
72
|
+
*
|
|
73
|
+
* @param reason - Reason why the exporter is disabled
|
|
74
|
+
*/
|
|
75
|
+
protected setDisabled(reason: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* Export a tracing event
|
|
78
|
+
*
|
|
79
|
+
* This method checks if the exporter is disabled before calling _exportEvent.
|
|
80
|
+
* Subclasses should implement _exportEvent instead of overriding this method.
|
|
81
|
+
*/
|
|
82
|
+
exportTracingEvent(event: TracingEvent): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Export a tracing event - must be implemented by subclasses
|
|
85
|
+
*
|
|
86
|
+
* This method is called by exportTracingEvent after checking if the exporter is disabled.
|
|
87
|
+
*/
|
|
88
|
+
protected abstract _exportTracingEvent(event: TracingEvent): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Optional initialization hook called after Mastra is fully configured
|
|
91
|
+
*/
|
|
92
|
+
init?(_options: InitExporterOptions): void;
|
|
93
|
+
/**
|
|
94
|
+
* Optional method to add scores to traces
|
|
95
|
+
*/
|
|
96
|
+
addScoreToTrace?(_args: {
|
|
97
|
+
traceId: string;
|
|
98
|
+
spanId?: string;
|
|
99
|
+
score: number;
|
|
100
|
+
reason?: string;
|
|
101
|
+
scorerName: string;
|
|
102
|
+
metadata?: Record<string, any>;
|
|
103
|
+
}): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Shutdown the exporter and clean up resources
|
|
106
|
+
*
|
|
107
|
+
* Default implementation just logs. Override to add custom cleanup.
|
|
108
|
+
*/
|
|
109
|
+
shutdown(): Promise<void>;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/exporters/base.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE3G;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,8BAAsB,YAAa,YAAW,qBAAqB;IACjE,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,6BAA6B;IAC7B,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAEhC,wCAAwC;IACxC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAS;IAEtC;;OAEG;gBACS,MAAM,GAAE,kBAAuB;IAO3C;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAMxC;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK3C;;;;;OAKG;IACG,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5D;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1E;;OAEG;IACH,IAAI,CAAC,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAE1C;;OAEG;IACH,eAAe,CAAC,CAAC,KAAK,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjB;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { TracingEvent } from '@mastra/core/observability';
|
|
2
|
+
import { BaseExporter } from './base.js';
|
|
3
|
+
import type { BaseExporterConfig } from './base.js';
|
|
4
|
+
export interface CloudExporterConfig extends BaseExporterConfig {
|
|
5
|
+
maxBatchSize?: number;
|
|
6
|
+
maxBatchWaitMs?: number;
|
|
7
|
+
maxRetries?: number;
|
|
8
|
+
accessToken?: string;
|
|
9
|
+
endpoint?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class CloudExporter extends BaseExporter {
|
|
12
|
+
name: string;
|
|
13
|
+
private config;
|
|
14
|
+
private buffer;
|
|
15
|
+
private flushTimer;
|
|
16
|
+
constructor(config?: CloudExporterConfig);
|
|
17
|
+
protected _exportTracingEvent(event: TracingEvent): Promise<void>;
|
|
18
|
+
private addToBuffer;
|
|
19
|
+
private formatSpan;
|
|
20
|
+
private shouldFlush;
|
|
21
|
+
private scheduleFlush;
|
|
22
|
+
private flush;
|
|
23
|
+
/**
|
|
24
|
+
* Uploads spans to cloud API using fetchWithRetry for all retry logic
|
|
25
|
+
*/
|
|
26
|
+
private batchUpload;
|
|
27
|
+
private resetBuffer;
|
|
28
|
+
shutdown(): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=cloud.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/exporters/cloud.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,4BAA4B,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAEjD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA0BD,qBAAa,aAAc,SAAQ,YAAY;IAC7C,IAAI,SAAyC;IAE7C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAA+B;gBAErC,MAAM,GAAE,mBAAwB;cA8B5B,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvE,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,aAAa;YAoBP,KAAK;IA8CnB;;OAEG;YACW,WAAW;IAezB,OAAO,CAAC,WAAW;IAMb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAuChC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TracingEvent } from '@mastra/core/observability';
|
|
2
|
+
import { BaseExporter } from './base.js';
|
|
3
|
+
import type { BaseExporterConfig } from './base.js';
|
|
4
|
+
export declare class ConsoleExporter extends BaseExporter {
|
|
5
|
+
name: string;
|
|
6
|
+
constructor(config?: BaseExporterConfig);
|
|
7
|
+
protected _exportTracingEvent(event: TracingEvent): Promise<void>;
|
|
8
|
+
shutdown(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=console.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/exporters/console.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAEjD,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,IAAI,SAA8B;gBAEtB,MAAM,GAAE,kBAAuB;cAI3B,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA+EjE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { TracingEvent, InitExporterOptions, TracingStorageStrategy } from '@mastra/core/observability';
|
|
2
|
+
import type { BaseExporterConfig } from './base.js';
|
|
3
|
+
import { BaseExporter } from './base.js';
|
|
4
|
+
interface DefaultExporterConfig extends BaseExporterConfig {
|
|
5
|
+
maxBatchSize?: number;
|
|
6
|
+
maxBufferSize?: number;
|
|
7
|
+
maxBatchWaitMs?: number;
|
|
8
|
+
maxRetries?: number;
|
|
9
|
+
retryDelayMs?: number;
|
|
10
|
+
strategy?: TracingStorageStrategy | 'auto';
|
|
11
|
+
}
|
|
12
|
+
export declare class DefaultExporter extends BaseExporter {
|
|
13
|
+
#private;
|
|
14
|
+
name: string;
|
|
15
|
+
private buffer;
|
|
16
|
+
private allCreatedSpans;
|
|
17
|
+
constructor(config?: DefaultExporterConfig);
|
|
18
|
+
/**
|
|
19
|
+
* Initialize the exporter (called after all dependencies are ready)
|
|
20
|
+
*/
|
|
21
|
+
init(options: InitExporterOptions): void;
|
|
22
|
+
/**
|
|
23
|
+
* Initialize the resolved strategy once storage is available
|
|
24
|
+
*/
|
|
25
|
+
private initializeStrategy;
|
|
26
|
+
/**
|
|
27
|
+
* Builds a unique span key for tracking
|
|
28
|
+
*/
|
|
29
|
+
private buildSpanKey;
|
|
30
|
+
/**
|
|
31
|
+
* Gets the next sequence number for a span
|
|
32
|
+
*/
|
|
33
|
+
private getNextSequence;
|
|
34
|
+
/**
|
|
35
|
+
* Handles out-of-order span updates by logging and skipping
|
|
36
|
+
*/
|
|
37
|
+
private handleOutOfOrderUpdate;
|
|
38
|
+
/**
|
|
39
|
+
* Adds an event to the appropriate buffer based on strategy
|
|
40
|
+
*/
|
|
41
|
+
private addToBuffer;
|
|
42
|
+
/**
|
|
43
|
+
* Checks if buffer should be flushed based on size or time triggers
|
|
44
|
+
*/
|
|
45
|
+
private shouldFlush;
|
|
46
|
+
/**
|
|
47
|
+
* Resets the buffer after successful flush
|
|
48
|
+
*/
|
|
49
|
+
private resetBuffer;
|
|
50
|
+
/**
|
|
51
|
+
* Schedules a flush using setTimeout
|
|
52
|
+
*/
|
|
53
|
+
private scheduleFlush;
|
|
54
|
+
/**
|
|
55
|
+
* Serializes span attributes to storage record format
|
|
56
|
+
* Handles all Span types and their specific attributes
|
|
57
|
+
*/
|
|
58
|
+
private serializeAttributes;
|
|
59
|
+
private buildCreateRecord;
|
|
60
|
+
private buildUpdateRecord;
|
|
61
|
+
/**
|
|
62
|
+
* Handles realtime strategy - processes each event immediately
|
|
63
|
+
*/
|
|
64
|
+
private handleRealtimeEvent;
|
|
65
|
+
/**
|
|
66
|
+
* Handles batch-with-updates strategy - buffers events and processes in batches
|
|
67
|
+
*/
|
|
68
|
+
private handleBatchWithUpdatesEvent;
|
|
69
|
+
/**
|
|
70
|
+
* Handles insert-only strategy - only processes SPAN_ENDED events in batches
|
|
71
|
+
*/
|
|
72
|
+
private handleInsertOnlyEvent;
|
|
73
|
+
/**
|
|
74
|
+
* Calculates retry delay using exponential backoff
|
|
75
|
+
*/
|
|
76
|
+
private calculateRetryDelay;
|
|
77
|
+
/**
|
|
78
|
+
* Flushes the current buffer to storage with retry logic
|
|
79
|
+
*/
|
|
80
|
+
private flush;
|
|
81
|
+
/**
|
|
82
|
+
* Attempts to flush with exponential backoff retry logic
|
|
83
|
+
*/
|
|
84
|
+
private flushWithRetries;
|
|
85
|
+
_exportTracingEvent(event: TracingEvent): Promise<void>;
|
|
86
|
+
shutdown(): Promise<void>;
|
|
87
|
+
}
|
|
88
|
+
export {};
|
|
89
|
+
//# sourceMappingURL=default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/exporters/default.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EAEZ,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,UAAU,qBAAsB,SAAQ,kBAAkB;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,QAAQ,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC;CAC5C;AAwDD,qBAAa,eAAgB,SAAQ,YAAY;;IAC/C,IAAI,SAA2C;IAK/C,OAAO,CAAC,MAAM,CAAc;IAI5B,OAAO,CAAC,eAAe,CAA0B;gBAErC,MAAM,GAAE,qBAA0B;IAoC9C;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAUxC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAgFnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,iBAAiB;IAczB;;OAEG;YACW,mBAAmB;IAyCjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAgBnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;YACW,KAAK;IAsDnB;;OAEG;YACW,gBAAgB;IA2DxB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAuBhC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mastra Tracing Exporters
|
|
3
|
+
*/
|
|
4
|
+
export * from './base.js';
|
|
5
|
+
export { CloudExporter } from './cloud.js';
|
|
6
|
+
export type { CloudExporterConfig } from './cloud.js';
|
|
7
|
+
export * from './console.js';
|
|
8
|
+
export * from './default.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exporters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,QAAQ,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|