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.
Files changed (65) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +31 -5
  3. package/dist/context.d.ts +39 -2
  4. package/dist/context.d.ts.map +1 -1
  5. package/dist/context.js +59 -5
  6. package/dist/context.js.map +1 -1
  7. package/dist/database.d.ts.map +1 -1
  8. package/dist/database.js +3 -1
  9. package/dist/database.js.map +1 -1
  10. package/dist/express.d.ts +6 -1
  11. package/dist/express.d.ts.map +1 -1
  12. package/dist/express.js +20 -6
  13. package/dist/express.js.map +1 -1
  14. package/dist/fetch.d.ts.map +1 -1
  15. package/dist/fetch.js +156 -9
  16. package/dist/fetch.js.map +1 -1
  17. package/dist/index.d.ts +3 -3
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/infra/aws.d.ts +7 -4
  22. package/dist/infra/aws.d.ts.map +1 -1
  23. package/dist/infra/aws.js +38 -7
  24. package/dist/infra/aws.js.map +1 -1
  25. package/dist/infra/lambda.d.ts +2 -0
  26. package/dist/infra/lambda.d.ts.map +1 -1
  27. package/dist/infra/lambda.js +6 -3
  28. package/dist/infra/lambda.js.map +1 -1
  29. package/dist/infra/messaging.d.ts +10 -2
  30. package/dist/infra/messaging.d.ts.map +1 -1
  31. package/dist/infra/messaging.js +22 -3
  32. package/dist/infra/messaging.js.map +1 -1
  33. package/dist/logs/shipper.d.ts.map +1 -1
  34. package/dist/logs/shipper.js +15 -4
  35. package/dist/logs/shipper.js.map +1 -1
  36. package/dist/logs/types.d.ts +8 -0
  37. package/dist/logs/types.d.ts.map +1 -1
  38. package/dist/monitors.d.ts.map +1 -1
  39. package/dist/monitors.js +3 -1
  40. package/dist/monitors.js.map +1 -1
  41. package/dist/next.d.ts.map +1 -1
  42. package/dist/next.js +8 -3
  43. package/dist/next.js.map +1 -1
  44. package/dist/node-http.d.ts.map +1 -1
  45. package/dist/node-http.js +12 -3
  46. package/dist/node-http.js.map +1 -1
  47. package/dist/normalize.d.ts +58 -8
  48. package/dist/normalize.d.ts.map +1 -1
  49. package/dist/normalize.js +383 -79
  50. package/dist/normalize.js.map +1 -1
  51. package/dist/pg.d.ts +12 -2
  52. package/dist/pg.d.ts.map +1 -1
  53. package/dist/pg.js +464 -213
  54. package/dist/pg.js.map +1 -1
  55. package/dist/scrub.d.ts +62 -4
  56. package/dist/scrub.d.ts.map +1 -1
  57. package/dist/scrub.js +656 -11
  58. package/dist/scrub.js.map +1 -1
  59. package/dist/tracker.d.ts +45 -5
  60. package/dist/tracker.d.ts.map +1 -1
  61. package/dist/tracker.js +93 -17
  62. package/dist/tracker.js.map +1 -1
  63. package/dist/types.d.ts +44 -8
  64. package/dist/types.d.ts.map +1 -1
  65. 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): ActiveSpanImpl;
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;
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
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
- const span = new ActiveSpanImpl(this, traceId, spanId, parentSpanId, kind, name, attrs, sampled, ignored, localRootId);
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 span = new ActiveSpanImpl(this, remote.traceId, spanId, null, kind, name, attrs, sampled, ignored, spanId);
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
- if (this.options.scrubFields.length > 0) {
451
- try {
452
- out = { ...out, attributes: scrubAttributes(out.attributes, this.options.scrubFields) };
453
- }
454
- catch (err) {
455
- this.dropped += 1;
456
- this.warnOnce(`span descartado: falha ao limpar atributos (${err?.message ?? err})`);
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) {