@microsoft/agents-telemetry 1.9.0-beta.3.gb2d23c1c44 → 1.9.1
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/README.md +49 -16
- package/dist/cjs/package.json +2 -2
- package/dist/cjs/src/observability/category.d.ts +2 -0
- package/dist/cjs/src/observability/category.js +3 -0
- package/dist/cjs/src/observability/category.js.map +1 -1
- package/dist/cjs/src/observability/constants.d.ts +4 -0
- package/dist/cjs/src/observability/constants.js +4 -0
- package/dist/cjs/src/observability/constants.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/observability/category.d.ts +2 -0
- package/dist/esm/src/observability/category.js +3 -0
- package/dist/esm/src/observability/category.js.map +1 -1
- package/dist/esm/src/observability/constants.d.ts +4 -0
- package/dist/esm/src/observability/constants.js +4 -0
- package/dist/esm/src/observability/constants.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ This package supports both ESM and CommonJS consumers and requires Node.js 20 or
|
|
|
17
17
|
|
|
18
18
|
## For Agent Developers
|
|
19
19
|
|
|
20
|
-
This section covers how to enable and configure telemetry in your agent application. The SDK automatically instruments its components — you only need to wire up OpenTelemetry exporters and, optionally,
|
|
20
|
+
This section covers how to enable and configure telemetry in your agent application. The SDK automatically instruments its components — you only need to wire up OpenTelemetry exporters and, optionally, configure sampling for the spans you want to collect.
|
|
21
21
|
|
|
22
22
|
### Peer Dependencies
|
|
23
23
|
|
|
@@ -93,26 +93,59 @@ const sdk = new NodeSDK({
|
|
|
93
93
|
sdk.start()
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
###
|
|
96
|
+
### Filtering Spans with a Parent-Based Sampler
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
Configure filtering in your OpenTelemetry SDK with a custom sampler. A parent-based delegate ensures that descendants of a filtered span are also excluded while preserving the sampling decision for all other traces.
|
|
99
99
|
|
|
100
|
-
|
|
101
|
-
AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES=STORAGE,AUTHORIZATION
|
|
100
|
+
The following reusable sampler filters spans by their names. This example excludes automatic typing-indicator spans and their adapter and connector descendants:
|
|
102
101
|
|
|
103
|
-
|
|
102
|
+
```ts
|
|
103
|
+
import { SpanNames } from '@microsoft/agents-telemetry'
|
|
104
|
+
import { NodeSDK } from '@opentelemetry/sdk-node'
|
|
105
|
+
import {
|
|
106
|
+
AlwaysOnSampler,
|
|
107
|
+
ParentBasedSampler,
|
|
108
|
+
SamplingDecision,
|
|
109
|
+
type Sampler,
|
|
110
|
+
} from '@opentelemetry/sdk-trace-base'
|
|
111
|
+
import { ConsoleSpanExporter } from '@opentelemetry/sdk-trace-node'
|
|
104
112
|
|
|
105
|
-
|
|
106
|
-
|
|
113
|
+
class SpanNameFilteringSampler implements Sampler {
|
|
114
|
+
private readonly filteredSpanNames: ReadonlySet<string>
|
|
115
|
+
private readonly parentBased = new ParentBasedSampler({
|
|
116
|
+
root: new AlwaysOnSampler(),
|
|
117
|
+
})
|
|
107
118
|
|
|
108
|
-
|
|
119
|
+
constructor (spanNames: Iterable<string>) {
|
|
120
|
+
this.filteredSpanNames = new Set(spanNames)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
shouldSample (...args: Parameters<Sampler['shouldSample']>) {
|
|
124
|
+
return this.filteredSpanNames.has(args[2])
|
|
125
|
+
? { decision: SamplingDecision.NOT_RECORD }
|
|
126
|
+
: this.parentBased.shouldSample(...args)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
toString () {
|
|
130
|
+
return `SpanNameFilteringSampler(${[...this.filteredSpanNames].join(',')})`
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const sdk = new NodeSDK({
|
|
135
|
+
sampler: new SpanNameFilteringSampler([
|
|
136
|
+
SpanNames.AGENTS_APP_TYPING_INDICATOR,
|
|
137
|
+
]),
|
|
138
|
+
traceExporter: new ConsoleSpanExporter(),
|
|
139
|
+
serviceName: 'my-agent-service',
|
|
140
|
+
})
|
|
141
|
+
|
|
142
|
+
sdk.start()
|
|
143
|
+
```
|
|
109
144
|
|
|
110
|
-
|
|
111
|
-
- `AUTHENTICATION`
|
|
112
|
-
- `AUTHORIZATION`
|
|
113
|
-
- `DIALOGS`
|
|
145
|
+
Add any other values from `SpanNames` to the sampler's list when you need to filter additional SDK spans.
|
|
114
146
|
|
|
115
|
-
|
|
147
|
+
> [!WARNING]
|
|
148
|
+
> `AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES` is deprecated and will be removed in a future release. It remains supported temporarily for backward compatibility, but new applications should configure an OpenTelemetry sampler instead.
|
|
116
149
|
|
|
117
150
|
### Span and Metric Names
|
|
118
151
|
|
|
@@ -242,7 +275,7 @@ trace(storageReadTrace, ({ record }) => {
|
|
|
242
275
|
- On failure, the exception is recorded on the span, status is set to `ERROR`, and the error is rethrown.
|
|
243
276
|
- Non-Error thrown values are recorded with their type name and string representation.
|
|
244
277
|
- Unrecognized span names throw immediately.
|
|
245
|
-
-
|
|
278
|
+
- The deprecated disabled-span categories run the callback with a noop context — no telemetry is emitted.
|
|
246
279
|
- Managed spans can start parented spans with `child(definition)` or `child(definition, callback)`.
|
|
247
280
|
- Record updates recursively merge plain objects; arrays are copied and replaced.
|
|
248
281
|
- The `end` hook receives `{ span, record, duration, error? }`.
|
|
@@ -285,7 +318,7 @@ When `@opentelemetry/api` is not available, the instruments are safe noops.
|
|
|
285
318
|
- **Record tracking**: Accumulate structured data during a trace and access it in the `end` hook
|
|
286
319
|
- **Managed child spans**: Start child spans from a managed trace context when a manual parent span stays open
|
|
287
320
|
- **Custom actions**: Define span-scoped helper functions via the `actions` factory
|
|
288
|
-
- **
|
|
321
|
+
- **Sampler-based filtering**: Use OpenTelemetry parent-based sampling to exclude selected spans and their descendants
|
|
289
322
|
- **Noop fallback**: All instrumentation calls are safe no-ops when OpenTelemetry APIs are not installed
|
|
290
323
|
|
|
291
324
|
---
|
package/dist/cjs/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@microsoft/agents-telemetry",
|
|
4
|
-
"version": "1.9.
|
|
4
|
+
"version": "1.9.1",
|
|
5
5
|
"homepage": "https://github.com/microsoft/Agents-for-js",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@opentelemetry/api-logs": "0.214.0"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@microsoft/agents-activity": "1.9.
|
|
47
|
+
"@microsoft/agents-activity": "1.9.1",
|
|
48
48
|
"@noble/hashes": "1.8.0",
|
|
49
49
|
"debug": "4.4.3"
|
|
50
50
|
},
|
|
@@ -7,5 +7,7 @@ import type { SpanName } from '../types.js';
|
|
|
7
7
|
* Determines if a span is disabled based on its name and the `AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES` environment variable or configuration setting.
|
|
8
8
|
* @param name The name of the span to check.
|
|
9
9
|
* @returns A boolean indicating whether the span is disabled.
|
|
10
|
+
*
|
|
11
|
+
* @deprecated Configure an OpenTelemetry parent-based sampler to filter spans instead.
|
|
10
12
|
*/
|
|
11
13
|
export declare function isSpanDisabled(name: SpanName): boolean;
|
|
@@ -21,6 +21,7 @@ const disabledSpans = (() => {
|
|
|
21
21
|
if (!rawValue) {
|
|
22
22
|
return [];
|
|
23
23
|
}
|
|
24
|
+
logger.warn(`${constants_js_1.AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES} is deprecated and will be removed in a future release. Configure an OpenTelemetry parent-based sampler instead.`);
|
|
24
25
|
const envCategories = rawValue
|
|
25
26
|
.split(/[\s,]+/)
|
|
26
27
|
.map((category) => category.trim())
|
|
@@ -55,6 +56,8 @@ const disabledSpans = (() => {
|
|
|
55
56
|
* Determines if a span is disabled based on its name and the `AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES` environment variable or configuration setting.
|
|
56
57
|
* @param name The name of the span to check.
|
|
57
58
|
* @returns A boolean indicating whether the span is disabled.
|
|
59
|
+
*
|
|
60
|
+
* @deprecated Configure an OpenTelemetry parent-based sampler to filter spans instead.
|
|
58
61
|
*/
|
|
59
62
|
function isSpanDisabled(name) {
|
|
60
63
|
if (disabledSpans.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category.js","sourceRoot":"","sources":["../../../../src/observability/category.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAAqG;AACrG,kDAAuD;AAEvD,oDAAgD;AAEhD,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,kBAAkB,CAAC,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;IAC1B,MAAM,QAAQ,GAAG,IAAA,uBAAU,EAAC,wDAAyC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC3F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ;SAC3B,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAA;IAElB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAS,CAAC,CAAA;IAE3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IACnC,MAAM,MAAM,GAAe,EAAE,CAAA;IAC7B,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,6BAAc,CAAC,QAAuC,CAAC,CAAA;QACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,0BAA0B,QAAQ,QAAQ,wDAAyC,2BAA2B,MAAM,CAAC,IAAI,CAAC,6BAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACnK,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,SAAQ;YACV,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAErB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;gBACpC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAC,EAAE,CAAA;AAEJ
|
|
1
|
+
{"version":3,"file":"category.js","sourceRoot":"","sources":["../../../../src/observability/category.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAAqG;AACrG,kDAAuD;AAEvD,oDAAgD;AAEhD,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,kBAAkB,CAAC,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;IAC1B,MAAM,QAAQ,GAAG,IAAA,uBAAU,EAAC,wDAAyC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC3F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,wDAAyC,kHAAkH,CAAC,CAAA;IAE3K,MAAM,aAAa,GAAG,QAAQ;SAC3B,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAA;IAElB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAS,CAAC,CAAA;IAE3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IACnC,MAAM,MAAM,GAAe,EAAE,CAAA;IAC7B,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,6BAAc,CAAC,QAAuC,CAAC,CAAA;QACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,0BAA0B,QAAQ,QAAQ,wDAAyC,2BAA2B,MAAM,CAAC,IAAI,CAAC,6BAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACnK,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,SAAQ;YACV,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAErB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;gBACpC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAC,EAAE,CAAA;AAEJ;;;;;;GAMG;AACH,wBAAgC,IAAc;IAC5C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,aAAa,EAAE,MAAM,CAAC,CAAA;IAChD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -4,10 +4,14 @@
|
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* Environment variable or configuration setting name for disabling spans by category in the Agents SDK telemetry. The value should be comma-separated or whitespace-separated list of span categories to disable. See `SpanCategories` for available categories.
|
|
7
|
+
*
|
|
8
|
+
* @deprecated Configure an OpenTelemetry parent-based sampler to filter spans instead.
|
|
7
9
|
*/
|
|
8
10
|
export declare const AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES = "AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES";
|
|
9
11
|
/**
|
|
10
12
|
* Categories of spans used for telemetry in the Agents SDK. Spans can be disabled by category using the `AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES` environment variable or configuration setting.
|
|
13
|
+
*
|
|
14
|
+
* @deprecated Configure an OpenTelemetry parent-based sampler to filter spans instead.
|
|
11
15
|
*/
|
|
12
16
|
export declare const SpanCategories: {
|
|
13
17
|
readonly STORAGE: readonly ['STORAGE_'];
|
|
@@ -7,10 +7,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.MetricNames = exports.SpanNames = exports.SpanCategories = exports.AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES = void 0;
|
|
8
8
|
/**
|
|
9
9
|
* Environment variable or configuration setting name for disabling spans by category in the Agents SDK telemetry. The value should be comma-separated or whitespace-separated list of span categories to disable. See `SpanCategories` for available categories.
|
|
10
|
+
*
|
|
11
|
+
* @deprecated Configure an OpenTelemetry parent-based sampler to filter spans instead.
|
|
10
12
|
*/
|
|
11
13
|
exports.AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES = 'AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES';
|
|
12
14
|
/**
|
|
13
15
|
* Categories of spans used for telemetry in the Agents SDK. Spans can be disabled by category using the `AGENTS_TELEMETRY_DISABLED_SPAN_CATEGORIES` environment variable or configuration setting.
|
|
16
|
+
*
|
|
17
|
+
* @deprecated Configure an OpenTelemetry parent-based sampler to filter spans instead.
|
|
14
18
|
*/
|
|
15
19
|
exports.SpanCategories = {
|
|
16
20
|
STORAGE: ['STORAGE_'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/observability/constants.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/observability/constants.ts"],"names":[],"mappings":"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"}
|