fg-tracker-sdk 0.13.0 → 0.15.0
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 +34 -0
- package/README.md +31 -5
- package/dist/context.d.ts +39 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +59 -5
- package/dist/context.js.map +1 -1
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +3 -1
- package/dist/database.js.map +1 -1
- package/dist/express.d.ts +6 -1
- package/dist/express.d.ts.map +1 -1
- package/dist/express.js +20 -6
- package/dist/express.js.map +1 -1
- package/dist/fetch.d.ts.map +1 -1
- package/dist/fetch.js +156 -9
- package/dist/fetch.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/infra/aws.d.ts +7 -4
- package/dist/infra/aws.d.ts.map +1 -1
- package/dist/infra/aws.js +38 -7
- package/dist/infra/aws.js.map +1 -1
- package/dist/infra/lambda.d.ts +2 -0
- package/dist/infra/lambda.d.ts.map +1 -1
- package/dist/infra/lambda.js +6 -3
- package/dist/infra/lambda.js.map +1 -1
- package/dist/infra/messaging.d.ts +10 -2
- package/dist/infra/messaging.d.ts.map +1 -1
- package/dist/infra/messaging.js +22 -3
- package/dist/infra/messaging.js.map +1 -1
- package/dist/logs/shipper.d.ts.map +1 -1
- package/dist/logs/shipper.js +15 -4
- package/dist/logs/shipper.js.map +1 -1
- package/dist/logs/types.d.ts +8 -0
- package/dist/logs/types.d.ts.map +1 -1
- package/dist/monitors.d.ts.map +1 -1
- package/dist/monitors.js +3 -1
- package/dist/monitors.js.map +1 -1
- package/dist/next.d.ts.map +1 -1
- package/dist/next.js +8 -3
- package/dist/next.js.map +1 -1
- package/dist/node-http.d.ts.map +1 -1
- package/dist/node-http.js +12 -3
- package/dist/node-http.js.map +1 -1
- package/dist/normalize.d.ts +58 -8
- package/dist/normalize.d.ts.map +1 -1
- package/dist/normalize.js +383 -79
- package/dist/normalize.js.map +1 -1
- package/dist/pg.d.ts +12 -2
- package/dist/pg.d.ts.map +1 -1
- package/dist/pg.js +464 -213
- package/dist/pg.js.map +1 -1
- package/dist/scrub.d.ts +62 -4
- package/dist/scrub.d.ts.map +1 -1
- package/dist/scrub.js +656 -11
- package/dist/scrub.js.map +1 -1
- package/dist/tracker.d.ts +45 -5
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +93 -17
- package/dist/tracker.js.map +1 -1
- package/dist/types.d.ts +44 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -1
package/dist/scrub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrub.js","sourceRoot":"","sources":["../src/scrub.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scrub.js","sourceRoot":"","sources":["../src/scrub.ts"],"names":[],"mappings":"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"}
|
package/dist/tracker.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type SpanContext } from './context.js';
|
|
2
|
+
import { type ScrubOptions } from './scrub.js';
|
|
2
3
|
import { type ExitParticipant } from './exit-hooks.js';
|
|
3
4
|
import { type ResolvedGenAi } from './genai/config.js';
|
|
4
5
|
import { InfraAggregator } from './infra/aggregator.js';
|
|
5
6
|
import { type Compression } from './transport.js';
|
|
6
|
-
import type { ActiveSpan, PropagationTargets, SamplingContext, Span, SpanError, SpanKind, TrackerOptions, UserRef } from './types.js';
|
|
7
|
+
import type { ActiveSpan, PropagationTargets, SamplingContext, Span, SpanError, SpanKind, TrackerOptions, UpstreamSamplingOrigin, UpstreamSamplingPolicy, UserRef } from './types.js';
|
|
7
8
|
export interface ResolvedOptions {
|
|
8
9
|
apiKey: string;
|
|
9
10
|
endpoint: string;
|
|
@@ -11,12 +12,14 @@ export interface ResolvedOptions {
|
|
|
11
12
|
release: string | undefined;
|
|
12
13
|
environment: string | undefined;
|
|
13
14
|
propagateTraceTo: PropagationTargets;
|
|
15
|
+
propagateBaggageTo: PropagationTargets;
|
|
14
16
|
tracesSampleRate: number;
|
|
15
17
|
tracesSampler: ((context: SamplingContext) => number | boolean) | undefined;
|
|
16
18
|
ignoreTransactions: (string | RegExp)[];
|
|
17
19
|
ignoreErrors: (string | RegExp)[];
|
|
18
20
|
beforeSend: ((span: Span) => Span | null) | undefined;
|
|
19
21
|
scrubFields: string[];
|
|
22
|
+
sendDefaultPii: boolean;
|
|
20
23
|
flushIntervalMs: number;
|
|
21
24
|
maxBatchSize: number;
|
|
22
25
|
maxQueueSize: number;
|
|
@@ -30,7 +33,7 @@ export interface ResolvedOptions {
|
|
|
30
33
|
compression: Compression;
|
|
31
34
|
exitHooks: boolean;
|
|
32
35
|
sendUnsampledErrors: boolean;
|
|
33
|
-
respectUpstreamSampling: boolean;
|
|
36
|
+
respectUpstreamSampling: boolean | UpstreamSamplingPolicy;
|
|
34
37
|
infraEnabled: boolean;
|
|
35
38
|
infraIdleIntervalMs: number;
|
|
36
39
|
autoSpanMinDurationMs: number;
|
|
@@ -43,6 +46,11 @@ export interface ResolvedOptions {
|
|
|
43
46
|
export declare function detectRelease(serviceName: string | undefined, env?: NodeJS.ProcessEnv): string | undefined;
|
|
44
47
|
export declare function detectEnvironment(env?: NodeJS.ProcessEnv): string | undefined;
|
|
45
48
|
export declare function resolveOptions(options: TrackerOptions): ResolvedOptions;
|
|
49
|
+
/**
|
|
50
|
+
* A flag `00` vinda desta origem vale? `true`/`false` valem para todas; por origem, chave ausente é
|
|
51
|
+
* `true`. Sem origem conhecida, só vale se todas as origens a respeitam.
|
|
52
|
+
*/
|
|
53
|
+
export declare function respectsUpstreamSampling(setting: boolean | UpstreamSamplingPolicy, origin?: UpstreamSamplingOrigin): boolean;
|
|
46
54
|
/** Decide se um destino recebe o `traceparent` (CONTRATO.md §16). */
|
|
47
55
|
export declare function shouldPropagate(targets: PropagationTargets, url: URL): boolean;
|
|
48
56
|
/**
|
|
@@ -120,6 +128,10 @@ export declare class TrackerCore implements ExitParticipant {
|
|
|
120
128
|
genAiFor(span: ActiveSpanImpl): ResolvedGenAi | null;
|
|
121
129
|
/** Raiz local de um span ainda aberto (sobe pelos pais abertos); senão o próprio id. */
|
|
122
130
|
private localRootOf;
|
|
131
|
+
/** Raiz local de um contexto (o `localRootId` dele ou, sem ele, o do span aberto). */
|
|
132
|
+
localRootOfContext(ctx: SpanContext): string;
|
|
133
|
+
/** Execução que abriu a raiz deste contexto por relação intencional (`trackMessage`); `undefined` nas demais. */
|
|
134
|
+
executionRootOfContext(ctx: SpanContext): string | undefined;
|
|
123
135
|
private decorate;
|
|
124
136
|
/** `ignoreTransactions` → nunca; `tracesSampler` → fração/boolean; senão `tracesSampleRate`. */
|
|
125
137
|
decideSampling(context: SamplingContext, exclusionChecked?: boolean): boolean;
|
|
@@ -128,9 +140,18 @@ export declare class TrackerCore implements ExitParticipant {
|
|
|
128
140
|
* raiz local (`parentSpanId` null) e guarda o pai remoto em `attributes.remoteParentSpanId`,
|
|
129
141
|
* para as métricas por requisição continuarem contando este serviço. Não herda o contexto
|
|
130
142
|
* assíncrono atual: cada mensagem de um lote tem o próprio pai remoto.
|
|
131
|
-
* A flag `00` do `traceparent` vale aqui, salvo `respectUpstreamSampling: false
|
|
143
|
+
* A flag `00` do `traceparent` vale aqui, salvo `respectUpstreamSampling: false` (ou falso para a
|
|
144
|
+
* origem, com a forma por origem).
|
|
145
|
+
*
|
|
146
|
+
* A raiz nasce com identidade de execução nova, mesmo com contexto assíncrono presente (Express,
|
|
147
|
+
* Next, Lambda). Só quem abre a raiz por uma relação intencional passa `options.execution`: o
|
|
148
|
+
* `trackMessage`, com o contexto da invocação, para as queries da mensagem continuarem na
|
|
149
|
+
* transação de lote dessa invocação quando as decisões coincidem.
|
|
132
150
|
*/
|
|
133
|
-
startRemoteRoot(kind: SpanKind, name: string, attributes: Record<string, unknown>, remote: SpanContext
|
|
151
|
+
startRemoteRoot(kind: SpanKind, name: string, attributes: Record<string, unknown>, remote: SpanContext, options?: {
|
|
152
|
+
execution?: SpanContext;
|
|
153
|
+
origin?: UpstreamSamplingOrigin;
|
|
154
|
+
}): ActiveSpanImpl;
|
|
134
155
|
/**
|
|
135
156
|
* Uma requisição abriu: liga a amostragem do event loop enquanto ela durar.
|
|
136
157
|
* Chamado pelo próprio `ActiveSpanImpl` quando o span nasce sem pai local.
|
|
@@ -144,6 +165,12 @@ export declare class TrackerCore implements ExitParticipant {
|
|
|
144
165
|
closeRootSpan(span: ActiveSpanImpl, fromPerf: number, toPerf: number): void;
|
|
145
166
|
/** Span aberto correspondente ao contexto assíncrono atual (se houver). */
|
|
146
167
|
currentSpan(): ActiveSpanImpl | undefined;
|
|
168
|
+
/**
|
|
169
|
+
* HTTP de uma chamada que já tem span (o `http.client` do AWS SDK, S08): nenhum span novo, mas o
|
|
170
|
+
* host real da requisição vai para esse span (`host`, `server.address`, `server.port`), quando ele
|
|
171
|
+
* ainda não tem um. Sem isso, a chamada a um endpoint padrão da AWS ficaria sem host em `/providers`.
|
|
172
|
+
*/
|
|
173
|
+
noteCoveredHttp(url: URL): void;
|
|
147
174
|
/** Span raiz local do contexto atual (sobe pelos pais ainda abertos). */
|
|
148
175
|
rootSpan(): ActiveSpanImpl | undefined;
|
|
149
176
|
/** Headers de propagação para o contexto corrente. */
|
|
@@ -223,6 +250,7 @@ export declare class TrackerCore implements ExitParticipant {
|
|
|
223
250
|
onShutdown(dispose: () => void): () => void;
|
|
224
251
|
/** POST autenticado na API (ingest, check-ins, releases). Devolve a resposta ou `null` em falha de rede. */
|
|
225
252
|
post(path: string, body: unknown, timeoutMs?: number): Promise<Response | null>;
|
|
253
|
+
/** Aviso único no console, sem dados sensíveis (URLs com credencial, tokens em mensagens de erro). */
|
|
226
254
|
warnOnce(message: string): void;
|
|
227
255
|
hasPendingForExit(): boolean;
|
|
228
256
|
/** Saída do processo sem `shutdown()` (`beforeExit`, SIGTERM/SIGINT): envia com prazo, sem parar o tracker. */
|
|
@@ -240,6 +268,12 @@ export declare class TrackerCore implements ExitParticipant {
|
|
|
240
268
|
timeoutMs?: number;
|
|
241
269
|
}): Promise<void>;
|
|
242
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* Limpeza do span antes da fila (CONTRATO.md §22): atributos por chave, por valor e URLs; mensagem
|
|
273
|
+
* e stack do erro por valor; nome e rota por valor (um e-mail ou token no caminho). O nome de
|
|
274
|
+
* `db.query` já é SQL sem literais e não muda: ele agrupa as queries.
|
|
275
|
+
*/
|
|
276
|
+
export declare function scrubSpan(span: Span, options: ScrubOptions): Span;
|
|
243
277
|
export declare function userAttributes(user: UserRef | null): Record<string, unknown>;
|
|
244
278
|
export declare class ActiveSpanImpl implements ActiveSpan {
|
|
245
279
|
private readonly core;
|
|
@@ -252,6 +286,8 @@ export declare class ActiveSpanImpl implements ActiveSpan {
|
|
|
252
286
|
readonly ignored: boolean;
|
|
253
287
|
/** `spanId` da raiz local deste ramo (o próprio, quando o span é raiz local). */
|
|
254
288
|
readonly localRootId: string;
|
|
289
|
+
/** Raiz da execução que abriu esta raiz por relação intencional (`trackMessage`); herdada pelos filhos. */
|
|
290
|
+
readonly executionRootId?: string | undefined;
|
|
255
291
|
name: string;
|
|
256
292
|
method: string | null;
|
|
257
293
|
route: string | null;
|
|
@@ -263,11 +299,15 @@ export declare class ActiveSpanImpl implements ActiveSpan {
|
|
|
263
299
|
private ended;
|
|
264
300
|
/** `tracestate` herdado do serviço a montante (repassado na propagação). */
|
|
265
301
|
traceState?: string;
|
|
302
|
+
/** `baggage` herdado do serviço a montante (só com `propagateBaggageTo`; nunca enviado à API). */
|
|
303
|
+
baggage?: string;
|
|
266
304
|
constructor(core: TrackerCore, traceId: string, spanId: string, parentSpanId: string | null, kind: SpanKind, name: string, attributes: Record<string, unknown>, sampled?: boolean,
|
|
267
305
|
/** Trace excluído por `ignoreTransactions`: nunca enviado (nem com `sendUnsampledErrors`). */
|
|
268
306
|
ignored?: boolean,
|
|
269
307
|
/** `spanId` da raiz local deste ramo (o próprio, quando o span é raiz local). */
|
|
270
|
-
localRootId?: string
|
|
308
|
+
localRootId?: string,
|
|
309
|
+
/** Raiz da execução que abriu esta raiz por relação intencional (`trackMessage`); herdada pelos filhos. */
|
|
310
|
+
executionRootId?: string | undefined);
|
|
271
311
|
setAttribute(key: string, value: unknown): void;
|
|
272
312
|
/** Contexto deste span para o `AsyncLocalStorage` e para a propagação. */
|
|
273
313
|
context(): SpanContext;
|
package/dist/tracker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmD,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmD,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEjG,OAAO,EAA0G,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvJ,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAuB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAUL,KAAK,WAAW,EAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AA6BtL,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5E,kBAAkB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxC,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,uBAAuB,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAC1D,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,mEAAmE;IACnE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;CAC7B;AAaD,wGAAwG;AACxG,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAWvH;AAED,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAE1F;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,CAuCvE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,sBAAsB,EAAE,MAAM,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAK5H;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAU9E;AAiBD;;;;;;;;;GASG;AACH,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,8EAA8E;IAC9E,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,KAAK,QAAQ,GAEnB;IACD,4EAA4E;IAC5E,OAAO,SAAK;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,mFAAmF;IACnF,OAAO,CAAC,UAAU,CAAS;IAC3B,2FAA2F;IAC3F,OAAO,CAAC,UAAU,CAA4B;IAC9C,8EAA8E;IAC9E,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;IAC5C;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IACvC,uEAAuE;IACvE,OAAO,CAAC,YAAY,CAAwB;IAC5C,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAK;IACrB,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,YAAY,CAAK;IACzB,oFAAoF;IACpF,IAAI,UAAS;IACb,cAAc,SAAkC;IAChD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;gBAExC,OAAO,EAAE,cAAc;IAmCnC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,8BAA8B;IAC9B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,cAAc,IAAI,WAAW,GAAG,SAAS;IAIzC,0FAA0F;IAC1F,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,cAAc;IAqB9H;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,GAAG,IAAI;IAMpD,wFAAwF;IACxF,OAAO,CAAC,WAAW;IAKnB,sFAAsF;IACtF,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM;IAI5C,iHAAiH;IACjH,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS;IAI5D,OAAO,CAAC,QAAQ;IAYhB,gGAAgG;IAChG,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,gBAAgB,UAAQ,GAAG,OAAO;IAgB3E;;;;;;;;;;;;OAYG;IACH,eAAe,CACb,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,WAAW,CAAC;QAAC,MAAM,CAAC,EAAE,sBAAsB,CAAA;KAAO,GACzE,cAAc;IAejB;;;OAGG;IACH,YAAY,IAAI,IAAI;IAIpB;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS3E,2EAA2E;IAC3E,WAAW,IAAI,cAAc,GAAG,SAAS;IAKzC;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAS/B,yEAAyE;IACzE,QAAQ,IAAI,cAAc,GAAG,SAAS;IAYtC,sDAAsD;IACtD,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKtC,0FAA0F;IAC1F,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI;IAkBrD,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,QAAQ;IAQhB;;;;;;;;OAQG;IACH,UAAU,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,MAAM,EAAE,WAAW,CAAC;QACpB,SAAS,EAAE,IAAI,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,IAAI;IA4BR,oEAAoE;IACpE,OAAO,CAAC,IAAI;IAwBZ,wEAAwE;IACxE,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAIlD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAkBzB,gGAAgG;IAChG,OAAO,CAAC,SAAS;IAQjB;;;;OAIG;IACG,KAAK,CAAC,YAAY,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/C;;;OAGG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjD,OAAO,CAAC,cAAc;IAItB;;;OAGG;YACW,KAAK;IAqBnB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAkCjB,+FAA+F;IAC/F,OAAO,CAAC,YAAY;IAiDpB,sFAAsF;IACtF,OAAO,CAAC,OAAO;IAUf;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,gBAAgB;IAMxB,qFAAqF;IACrF,OAAO,CAAC,gBAAgB;IAMxB,wGAAwG;IACxG,eAAe,IAAI,MAAM;IAIzB,kFAAkF;IAClF,gBAAgB,IAAI,IAAI;IAgBxB,yFAAyF;IACzF,OAAO,CAAC,YAAY;IAYpB,+EAA+E;IAC/E,UAAU,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAK3C,4GAA4G;IACtG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAcrF,sGAAsG;IACtG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM/B,iBAAiB,IAAI,OAAO;IAO5B,+GAA+G;IACzG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD;;;OAGG;YACW,SAAS;IAkBvB;;;OAGG;IACG,QAAQ,CAAC,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BpE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAWjE;AAuDD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM5E;AAED,qBAAa,cAAe,YAAW,UAAU;IAgB7C,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IACpC,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAGvB,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,iFAAiF;IACjF,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,2GAA2G;IAC3G,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM;IA5BnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAO;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,KAAK,CAAS;IACtB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;gBAGE,IAAI,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,IAAI,EAAE,QAAQ,EACvB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1B,OAAO,GAAE,OAAc;IAChC,8FAA8F;IACrF,OAAO,GAAE,OAAe;IACjC,iFAAiF;IACxE,WAAW,GAAE,MAAe;IACrC,2GAA2G;IAClG,eAAe,CAAC,EAAE,MAAM,YAAA;IAUnC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAI/C,0EAA0E;IAC1E,OAAO,IAAI,WAAW;IAatB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI5B,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI;IAOnC,GAAG,IAAI,IAAI;CA6BZ"}
|
package/dist/tracker.js
CHANGED
|
@@ -3,7 +3,7 @@ import { performance } from 'node:perf_hooks';
|
|
|
3
3
|
import { EventLoopMonitor } from './event-loop.js';
|
|
4
4
|
import { als, newSpanId, newTraceId, traceContextHeaders } from './context.js';
|
|
5
5
|
import { toSpanError } from './normalize.js';
|
|
6
|
-
import { DEFAULT_SCRUB_FIELDS, matchesAny, scrubAttributes, testPattern } from './scrub.js';
|
|
6
|
+
import { DEFAULT_SCRUB_FIELDS, matchesAny, scrubAttributes, scrubDiagnostic, scrubError, scrubText, testPattern } from './scrub.js';
|
|
7
7
|
import { API_KEY_HEADER, DEFAULT_ENDPOINT, readEnv } from './constants.js';
|
|
8
8
|
import { registerExitFlush } from './exit-hooks.js';
|
|
9
9
|
import { resolveGenAi } from './genai/config.js';
|
|
@@ -71,12 +71,14 @@ export function resolveOptions(options) {
|
|
|
71
71
|
release: options.release === false ? undefined : options.release?.trim() || detectRelease(options.serviceName),
|
|
72
72
|
environment: options.environment === false ? undefined : options.environment?.trim() || detectEnvironment(),
|
|
73
73
|
propagateTraceTo: options.propagateTraceTo ?? true,
|
|
74
|
+
propagateBaggageTo: options.propagateBaggageTo ?? false,
|
|
74
75
|
tracesSampleRate: Math.min(1, Math.max(0, options.tracesSampleRate ?? 1)),
|
|
75
76
|
tracesSampler: options.tracesSampler,
|
|
76
77
|
ignoreTransactions: options.ignoreTransactions ?? [],
|
|
77
78
|
ignoreErrors: options.ignoreErrors ?? [],
|
|
78
79
|
beforeSend: options.beforeSend,
|
|
79
80
|
scrubFields: options.scrubFields === false ? [] : (options.scrubFields ?? DEFAULT_SCRUB_FIELDS),
|
|
81
|
+
sendDefaultPii: options.sendDefaultPii ?? false,
|
|
80
82
|
flushIntervalMs: Math.max(100, options.flushIntervalMs ?? DEFAULT_FLUSH_INTERVAL_MS),
|
|
81
83
|
maxBatchSize: Math.max(1, options.maxBatchSize ?? DEFAULT_MAX_BATCH),
|
|
82
84
|
maxQueueSize: Math.max(10, options.maxQueueSize ?? DEFAULT_MAX_QUEUE),
|
|
@@ -100,6 +102,19 @@ export function resolveOptions(options) {
|
|
|
100
102
|
genAi: resolveGenAi(options.genAi, (message) => console.warn(`[fg-tracker] ${message}`)),
|
|
101
103
|
};
|
|
102
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* A flag `00` vinda desta origem vale? `true`/`false` valem para todas; por origem, chave ausente é
|
|
107
|
+
* `true`. Sem origem conhecida, só vale se todas as origens a respeitam.
|
|
108
|
+
*/
|
|
109
|
+
export function respectsUpstreamSampling(setting, origin) {
|
|
110
|
+
if (typeof setting === 'boolean')
|
|
111
|
+
return setting;
|
|
112
|
+
if (!setting || typeof setting !== 'object')
|
|
113
|
+
return true;
|
|
114
|
+
if (origin)
|
|
115
|
+
return setting[origin] !== false;
|
|
116
|
+
return setting.http !== false && setting.messaging !== false;
|
|
117
|
+
}
|
|
103
118
|
/** Decide se um destino recebe o `traceparent` (CONTRATO.md §16). */
|
|
104
119
|
export function shouldPropagate(targets, url) {
|
|
105
120
|
if (targets === true)
|
|
@@ -239,9 +254,13 @@ export class TrackerCore {
|
|
|
239
254
|
const sampled = parentCtx ? parentCtx.sampled !== false : !ignored && this.decideSampling({ kind, name, attributes: attrs }, true);
|
|
240
255
|
const spanId = newSpanId();
|
|
241
256
|
const localRootId = parentCtx ? (parentCtx.localRootId ?? this.localRootOf(parentCtx.spanId)) : spanId;
|
|
242
|
-
|
|
257
|
+
// Identidade de execução: herdada do pai; raiz sem pai nunca a herda do contexto assíncrono.
|
|
258
|
+
const executionRootId = parentCtx ? this.executionRootOfContext(parentCtx) : undefined;
|
|
259
|
+
const span = new ActiveSpanImpl(this, traceId, spanId, parentSpanId, kind, name, attrs, sampled, ignored, localRootId, executionRootId);
|
|
243
260
|
if (parentCtx?.traceState)
|
|
244
261
|
span.traceState = parentCtx.traceState;
|
|
262
|
+
if (parentCtx?.baggage)
|
|
263
|
+
span.baggage = parentCtx.baggage;
|
|
245
264
|
this.active.set(span.spanId, span);
|
|
246
265
|
return span;
|
|
247
266
|
}
|
|
@@ -262,6 +281,14 @@ export class TrackerCore {
|
|
|
262
281
|
const open = this.active.get(spanId);
|
|
263
282
|
return open ? open.localRootId : spanId;
|
|
264
283
|
}
|
|
284
|
+
/** Raiz local de um contexto (o `localRootId` dele ou, sem ele, o do span aberto). */
|
|
285
|
+
localRootOfContext(ctx) {
|
|
286
|
+
return ctx.localRootId ?? this.localRootOf(ctx.spanId);
|
|
287
|
+
}
|
|
288
|
+
/** Execução que abriu a raiz deste contexto por relação intencional (`trackMessage`); `undefined` nas demais. */
|
|
289
|
+
executionRootOfContext(ctx) {
|
|
290
|
+
return ctx.executionRootId ?? this.active.get(ctx.spanId)?.executionRootId;
|
|
291
|
+
}
|
|
265
292
|
decorate(attributes) {
|
|
266
293
|
const attrs = { ...attributes };
|
|
267
294
|
if (this.options.serviceName && attrs.serviceName === undefined)
|
|
@@ -304,18 +331,27 @@ export class TrackerCore {
|
|
|
304
331
|
* raiz local (`parentSpanId` null) e guarda o pai remoto em `attributes.remoteParentSpanId`,
|
|
305
332
|
* para as métricas por requisição continuarem contando este serviço. Não herda o contexto
|
|
306
333
|
* assíncrono atual: cada mensagem de um lote tem o próprio pai remoto.
|
|
307
|
-
* A flag `00` do `traceparent` vale aqui, salvo `respectUpstreamSampling: false
|
|
334
|
+
* A flag `00` do `traceparent` vale aqui, salvo `respectUpstreamSampling: false` (ou falso para a
|
|
335
|
+
* origem, com a forma por origem).
|
|
336
|
+
*
|
|
337
|
+
* A raiz nasce com identidade de execução nova, mesmo com contexto assíncrono presente (Express,
|
|
338
|
+
* Next, Lambda). Só quem abre a raiz por uma relação intencional passa `options.execution`: o
|
|
339
|
+
* `trackMessage`, com o contexto da invocação, para as queries da mensagem continuarem na
|
|
340
|
+
* transação de lote dessa invocação quando as decisões coincidem.
|
|
308
341
|
*/
|
|
309
|
-
startRemoteRoot(kind, name, attributes, remote) {
|
|
342
|
+
startRemoteRoot(kind, name, attributes, remote, options = {}) {
|
|
310
343
|
const attrs = this.decorate({ ...attributes, remoteParentSpanId: remote.spanId });
|
|
311
344
|
// A decisão do serviço a montante (flag do traceparent) vale aqui, salvo `ignoreTransactions`.
|
|
312
345
|
const ignored = matchesAny(name, this.options.ignoreTransactions);
|
|
313
|
-
const upstreamDropped = remote.sampled === false && this.options.respectUpstreamSampling;
|
|
346
|
+
const upstreamDropped = remote.sampled === false && respectsUpstreamSampling(this.options.respectUpstreamSampling, options.origin);
|
|
314
347
|
const sampled = upstreamDropped || ignored ? false : this.decideSampling({ kind, name, attributes: attrs, parentSampled: remote.sampled }, true);
|
|
315
348
|
const spanId = newSpanId();
|
|
316
|
-
const
|
|
349
|
+
const executionRootId = options.execution ? this.localRootOfContext(options.execution) : undefined;
|
|
350
|
+
const span = new ActiveSpanImpl(this, remote.traceId, spanId, null, kind, name, attrs, sampled, ignored, spanId, executionRootId);
|
|
317
351
|
if (remote.traceState)
|
|
318
352
|
span.traceState = remote.traceState;
|
|
353
|
+
if (remote.baggage)
|
|
354
|
+
span.baggage = remote.baggage;
|
|
319
355
|
this.active.set(span.spanId, span);
|
|
320
356
|
return span;
|
|
321
357
|
}
|
|
@@ -346,6 +382,21 @@ export class TrackerCore {
|
|
|
346
382
|
const ctx = als.getStore();
|
|
347
383
|
return ctx ? this.active.get(ctx.spanId) : undefined;
|
|
348
384
|
}
|
|
385
|
+
/**
|
|
386
|
+
* HTTP de uma chamada que já tem span (o `http.client` do AWS SDK, S08): nenhum span novo, mas o
|
|
387
|
+
* host real da requisição vai para esse span (`host`, `server.address`, `server.port`), quando ele
|
|
388
|
+
* ainda não tem um. Sem isso, a chamada a um endpoint padrão da AWS ficaria sem host em `/providers`.
|
|
389
|
+
*/
|
|
390
|
+
noteCoveredHttp(url) {
|
|
391
|
+
const span = this.currentSpan();
|
|
392
|
+
if (!span || span.kind !== 'http.client' || span.attributes.host !== undefined)
|
|
393
|
+
return;
|
|
394
|
+
span.setAttribute('host', url.host);
|
|
395
|
+
span.setAttribute('server.address', url.hostname);
|
|
396
|
+
const port = url.port ? Number(url.port) : url.protocol === 'https:' ? 443 : url.protocol === 'http:' ? 80 : undefined;
|
|
397
|
+
if (port)
|
|
398
|
+
span.setAttribute('server.port', port);
|
|
399
|
+
}
|
|
349
400
|
/** Span raiz local do contexto atual (sobe pelos pais ainda abertos). */
|
|
350
401
|
rootSpan() {
|
|
351
402
|
let span = this.currentSpan();
|
|
@@ -447,15 +498,13 @@ export class TrackerCore {
|
|
|
447
498
|
if (out.error && matchesAny(`${out.error.name}: ${out.error.message}`, this.options.ignoreErrors)) {
|
|
448
499
|
out = { ...out, error: null, attributes: { ...out.attributes, ignoredError: out.error.name } };
|
|
449
500
|
}
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
return;
|
|
458
|
-
}
|
|
501
|
+
try {
|
|
502
|
+
out = scrubSpan(out, { fields: this.options.scrubFields, sendDefaultPii: this.options.sendDefaultPii });
|
|
503
|
+
}
|
|
504
|
+
catch (err) {
|
|
505
|
+
this.dropped += 1;
|
|
506
|
+
this.warnOnce(`span descartado: falha ao limpar atributos (${err?.message ?? err})`);
|
|
507
|
+
return;
|
|
459
508
|
}
|
|
460
509
|
if (this.options.beforeSend) {
|
|
461
510
|
try {
|
|
@@ -775,11 +824,12 @@ export class TrackerCore {
|
|
|
775
824
|
return null;
|
|
776
825
|
}
|
|
777
826
|
}
|
|
827
|
+
/** Aviso único no console, sem dados sensíveis (URLs com credencial, tokens em mensagens de erro). */
|
|
778
828
|
warnOnce(message) {
|
|
779
829
|
if (this.warnedFailure)
|
|
780
830
|
return;
|
|
781
831
|
this.warnedFailure = true;
|
|
782
|
-
console.warn(`[fg-tracker] ${message}`);
|
|
832
|
+
console.warn(`[fg-tracker] ${scrubDiagnostic(message)}`);
|
|
783
833
|
}
|
|
784
834
|
hasPendingForExit() {
|
|
785
835
|
if (!this.enabled)
|
|
@@ -858,6 +908,24 @@ export class TrackerCore {
|
|
|
858
908
|
this.stopped = true;
|
|
859
909
|
}
|
|
860
910
|
}
|
|
911
|
+
/**
|
|
912
|
+
* Limpeza do span antes da fila (CONTRATO.md §22): atributos por chave, por valor e URLs; mensagem
|
|
913
|
+
* e stack do erro por valor; nome e rota por valor (um e-mail ou token no caminho). O nome de
|
|
914
|
+
* `db.query` já é SQL sem literais e não muda: ele agrupa as queries.
|
|
915
|
+
*/
|
|
916
|
+
export function scrubSpan(span, options) {
|
|
917
|
+
const attributes = scrubAttributes(span.attributes ?? {}, options.fields, { sendDefaultPii: options.sendDefaultPii });
|
|
918
|
+
if (options.fields.length === 0)
|
|
919
|
+
return attributes === span.attributes ? span : { ...span, attributes };
|
|
920
|
+
const sql = span.kind === 'db.query';
|
|
921
|
+
return {
|
|
922
|
+
...span,
|
|
923
|
+
name: sql ? span.name : scrubText(span.name, options),
|
|
924
|
+
route: span.route === null || sql ? span.route : scrubText(span.route, options),
|
|
925
|
+
attributes,
|
|
926
|
+
error: span.error ? scrubError(span.error, options) : span.error,
|
|
927
|
+
};
|
|
928
|
+
}
|
|
861
929
|
/** Atributos do span enviado só porque falhou num trace não amostrado (`sendUnsampledErrors`). */
|
|
862
930
|
function markKeptByError(span) {
|
|
863
931
|
return { ...span, attributes: { ...span.attributes, 'sampling.kept': 'error' } };
|
|
@@ -934,6 +1002,7 @@ export class ActiveSpanImpl {
|
|
|
934
1002
|
sampled;
|
|
935
1003
|
ignored;
|
|
936
1004
|
localRootId;
|
|
1005
|
+
executionRootId;
|
|
937
1006
|
name;
|
|
938
1007
|
method = null;
|
|
939
1008
|
route = null;
|
|
@@ -945,11 +1014,15 @@ export class ActiveSpanImpl {
|
|
|
945
1014
|
ended = false;
|
|
946
1015
|
/** `tracestate` herdado do serviço a montante (repassado na propagação). */
|
|
947
1016
|
traceState;
|
|
1017
|
+
/** `baggage` herdado do serviço a montante (só com `propagateBaggageTo`; nunca enviado à API). */
|
|
1018
|
+
baggage;
|
|
948
1019
|
constructor(core, traceId, spanId, parentSpanId, kind, name, attributes, sampled = true,
|
|
949
1020
|
/** Trace excluído por `ignoreTransactions`: nunca enviado (nem com `sendUnsampledErrors`). */
|
|
950
1021
|
ignored = false,
|
|
951
1022
|
/** `spanId` da raiz local deste ramo (o próprio, quando o span é raiz local). */
|
|
952
|
-
localRootId = spanId
|
|
1023
|
+
localRootId = spanId,
|
|
1024
|
+
/** Raiz da execução que abriu esta raiz por relação intencional (`trackMessage`); herdada pelos filhos. */
|
|
1025
|
+
executionRootId) {
|
|
953
1026
|
this.core = core;
|
|
954
1027
|
this.traceId = traceId;
|
|
955
1028
|
this.spanId = spanId;
|
|
@@ -958,6 +1031,7 @@ export class ActiveSpanImpl {
|
|
|
958
1031
|
this.sampled = sampled;
|
|
959
1032
|
this.ignored = ignored;
|
|
960
1033
|
this.localRootId = localRootId;
|
|
1034
|
+
this.executionRootId = executionRootId;
|
|
961
1035
|
this.name = name;
|
|
962
1036
|
this.attributes = attributes;
|
|
963
1037
|
this.startedAt = new Date();
|
|
@@ -976,8 +1050,10 @@ export class ActiveSpanImpl {
|
|
|
976
1050
|
spanId: this.spanId,
|
|
977
1051
|
sampled: this.sampled,
|
|
978
1052
|
localRootId: this.localRootId,
|
|
1053
|
+
...(this.executionRootId ? { executionRootId: this.executionRootId } : {}),
|
|
979
1054
|
...(this.ignored ? { ignored: true } : {}),
|
|
980
1055
|
...(this.traceState ? { traceState: this.traceState } : {}),
|
|
1056
|
+
...(this.baggage ? { baggage: this.baggage } : {}),
|
|
981
1057
|
};
|
|
982
1058
|
}
|
|
983
1059
|
setError(err) {
|