fg-tracker-sdk 0.8.1 → 0.10.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 +26 -0
- package/README.md +37 -12
- package/dist/cli/release.js +1 -1
- package/dist/cli/sourcemaps.js +1 -1
- package/dist/context.d.ts +7 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js.map +1 -1
- package/dist/exit-hooks.d.ts +23 -0
- package/dist/exit-hooks.d.ts.map +1 -0
- package/dist/exit-hooks.js +88 -0
- package/dist/exit-hooks.js.map +1 -0
- package/dist/fetch.d.ts +1 -1
- package/dist/fetch.js +1 -1
- package/dist/global-errors.d.ts +8 -5
- package/dist/global-errors.d.ts.map +1 -1
- package/dist/global-errors.js +59 -10
- package/dist/global-errors.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/infra/aggregator.d.ts +5 -0
- package/dist/infra/aggregator.d.ts.map +1 -1
- package/dist/infra/aggregator.js.map +1 -1
- package/dist/infra/lambda.d.ts +1 -1
- package/dist/infra/lambda.d.ts.map +1 -1
- package/dist/infra/lambda.js +3 -2
- package/dist/infra/lambda.js.map +1 -1
- package/dist/logs/nest-logger.d.ts +1 -1
- package/dist/logs/nest-logger.js +1 -1
- package/dist/logs/shipper.d.ts +5 -4
- package/dist/logs/shipper.d.ts.map +1 -1
- package/dist/logs/shipper.js +170 -52
- package/dist/logs/shipper.js.map +1 -1
- package/dist/logs/types.d.ts +19 -3
- package/dist/logs/types.d.ts.map +1 -1
- package/dist/monitors.d.ts.map +1 -1
- package/dist/monitors.js +3 -0
- package/dist/monitors.js.map +1 -1
- package/dist/scrub.d.ts +5 -0
- package/dist/scrub.d.ts.map +1 -1
- package/dist/scrub.js +17 -1
- package/dist/scrub.js.map +1 -1
- package/dist/tracker.d.ts +101 -6
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +468 -92
- package/dist/tracker.js.map +1 -1
- package/dist/transport.d.ts +115 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +323 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +50 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/scrub.js
CHANGED
|
@@ -29,6 +29,22 @@ export function scrubAttributes(attributes, fields) {
|
|
|
29
29
|
export function matchesAny(value, patterns) {
|
|
30
30
|
if (!patterns || patterns.length === 0)
|
|
31
31
|
return false;
|
|
32
|
-
return patterns.some((pattern) => (pattern instanceof RegExp ? pattern
|
|
32
|
+
return patterns.some((pattern) => (pattern instanceof RegExp ? testPattern(pattern, value) : value.includes(pattern)));
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* `RegExp.test` sem depender de estado: com flag `g` ou `y`, `test` começa em `lastIndex` e o
|
|
36
|
+
* avança, e a mesma regra alternaria entre casar e não casar a cada chamada.
|
|
37
|
+
*/
|
|
38
|
+
export function testPattern(pattern, value) {
|
|
39
|
+
if (!pattern.global && !pattern.sticky)
|
|
40
|
+
return pattern.test(value);
|
|
41
|
+
const previous = pattern.lastIndex;
|
|
42
|
+
pattern.lastIndex = 0;
|
|
43
|
+
try {
|
|
44
|
+
return pattern.test(value);
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
pattern.lastIndex = previous;
|
|
48
|
+
}
|
|
33
49
|
}
|
|
34
50
|
//# sourceMappingURL=scrub.js.map
|
package/dist/scrub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrub.js","sourceRoot":"","sources":["../src/scrub.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY;IAChF,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa;CAC3H,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AACrC,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,MAAgB;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5L,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,MAAgB,EAAE,KAAK,GAAG,CAAC;IACpE,IAAI,KAAK,GAAG,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9H,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAmC,EAAE,MAAgB;IACnF,OAAO,UAAU,CAAC,UAAU,EAAE,MAAM,CAA4B,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,QAAyC;IACjF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,YAAY,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"scrub.js","sourceRoot":"","sources":["../src/scrub.ts"],"names":[],"mappings":"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"}
|
package/dist/tracker.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type SpanContext } from './context.js';
|
|
2
|
+
import { type ExitParticipant } from './exit-hooks.js';
|
|
2
3
|
import { InfraAggregator } from './infra/aggregator.js';
|
|
4
|
+
import { type Compression } from './transport.js';
|
|
3
5
|
import type { ActiveSpan, PropagationTargets, SamplingContext, Span, SpanError, SpanKind, TrackerOptions, UserRef } from './types.js';
|
|
4
6
|
export interface ResolvedOptions {
|
|
5
7
|
apiKey: string;
|
|
@@ -20,6 +22,13 @@ export interface ResolvedOptions {
|
|
|
20
22
|
enabled: boolean;
|
|
21
23
|
debug: boolean;
|
|
22
24
|
fetch: typeof globalThis.fetch;
|
|
25
|
+
maxQueueBytes: number;
|
|
26
|
+
maxBatchBytes: number;
|
|
27
|
+
requestTimeoutMs: number;
|
|
28
|
+
shutdownTimeoutMs: number;
|
|
29
|
+
compression: Compression;
|
|
30
|
+
exitHooks: boolean;
|
|
31
|
+
sendUnsampledErrors: boolean;
|
|
23
32
|
infraEnabled: boolean;
|
|
24
33
|
infraIdleIntervalMs: number;
|
|
25
34
|
autoSpanMinDurationMs: number;
|
|
@@ -36,20 +45,50 @@ export declare function shouldPropagate(targets: PropagationTargets, url: URL):
|
|
|
36
45
|
* Núcleo do tracker: constrói spans, mantém a fila e faz o envio em lote.
|
|
37
46
|
* As integrações (express, pg, next, fetch) ficam em arquivos separados e só
|
|
38
47
|
* usam `startSpan` / `runInSpan`.
|
|
48
|
+
*
|
|
49
|
+
* Envio (CONTRATO.md §4.3): lotes limitados por bytes (`maxBatchBytes`) e por 1000 spans, uma
|
|
50
|
+
* requisição por vez, timeout de 10 s, backoff exponencial com jitter e `Retry-After` em
|
|
51
|
+
* rede/408/429/5xx, 413 divide o lote, outro 4xx descarta. Spans recusados num 202 parcial não
|
|
52
|
+
* são reenviados (a recusa se repetiria); agregados de infra em `retryableIds` voltam para a fila.
|
|
39
53
|
*/
|
|
40
|
-
export declare class TrackerCore {
|
|
54
|
+
export declare class TrackerCore implements ExitParticipant {
|
|
41
55
|
readonly options: ResolvedOptions;
|
|
42
56
|
private queue;
|
|
57
|
+
private queueBytes;
|
|
43
58
|
private timer;
|
|
44
59
|
private flushing;
|
|
45
60
|
private warnedFailure;
|
|
61
|
+
private warnedRejected;
|
|
46
62
|
private stopped;
|
|
63
|
+
/** Prazo do encerramento em andamento (epoch ms): nenhum envio passa dele. */
|
|
64
|
+
/** Prazos de encerramento ativos; vale o menor (`deadline`). */
|
|
65
|
+
private readonly deadlines;
|
|
66
|
+
private get deadline();
|
|
67
|
+
/** Spans descartados por limite de fila ou por 4xx desde o último aviso. */
|
|
68
|
+
dropped: number;
|
|
69
|
+
private readonly sender;
|
|
70
|
+
/** Teto atual do corpo: começa em `maxBatchBytes` e cai pela metade a cada 413. */
|
|
71
|
+
private batchBytes;
|
|
72
|
+
/** Teto de itens por lote: só cai quando um 413 chega com o teto de bytes já no mínimo. */
|
|
73
|
+
private batchItems;
|
|
74
|
+
/** Enfileiramentos desde a última tentativa de envio na saída do processo. */
|
|
75
|
+
private enqueuedSinceExit;
|
|
76
|
+
private readonly unregisterExit;
|
|
77
|
+
/**
|
|
78
|
+
* Raízes locais (por `spanId`) de traces não amostrados em que um descendente falhou: quando
|
|
79
|
+
* fecham, também são enviadas (`sendUnsampledErrors`). A chave é a raiz, não o trace: duas
|
|
80
|
+
* requisições do mesmo trace distribuído têm raízes locais diferentes.
|
|
81
|
+
*/
|
|
82
|
+
private readonly keptRoots;
|
|
47
83
|
/** Spans ainda abertos, por spanId — permite `currentSpan()` a partir do contexto assíncrono. */
|
|
48
84
|
private readonly active;
|
|
49
85
|
/** Agregados de infra (nunca amostrados); `null` quando `infra.enabled === false`. */
|
|
50
86
|
readonly infra: InfraAggregator | null;
|
|
51
87
|
/** Agregados já fechados aguardando envio (retentativa após falha). */
|
|
52
88
|
private infraPending;
|
|
89
|
+
/** Identidade dos agregados deste processo: `<emissor>:<sequência>` (dedupe no servidor). */
|
|
90
|
+
private readonly emitterId;
|
|
91
|
+
private infraSeq;
|
|
53
92
|
/** A janela de infra venceu: o próximo flush fecha o agregador e envia junto dos spans. */
|
|
54
93
|
private infraDue;
|
|
55
94
|
private infraTimer;
|
|
@@ -63,12 +102,17 @@ export declare class TrackerCore {
|
|
|
63
102
|
private readonly eventLoop;
|
|
64
103
|
constructor(options: TrackerOptions);
|
|
65
104
|
get enabled(): boolean;
|
|
105
|
+
/** Spans aguardando envio. */
|
|
106
|
+
get queueSize(): number;
|
|
107
|
+
get exitTimeoutMs(): number;
|
|
66
108
|
currentContext(): SpanContext | undefined;
|
|
67
109
|
/** Cria um span; o pai é o contexto assíncrono atual, salvo se `parent` for informado. */
|
|
68
110
|
startSpan(kind: SpanKind, name: string, attributes?: Record<string, unknown>, parent?: SpanContext | null): ActiveSpanImpl;
|
|
111
|
+
/** Raiz local de um span ainda aberto (sobe pelos pais abertos); senão o próprio id. */
|
|
112
|
+
private localRootOf;
|
|
69
113
|
private decorate;
|
|
70
114
|
/** `ignoreTransactions` → nunca; `tracesSampler` → fração/boolean; senão `tracesSampleRate`. */
|
|
71
|
-
decideSampling(context: SamplingContext): boolean;
|
|
115
|
+
decideSampling(context: SamplingContext, exclusionChecked?: boolean): boolean;
|
|
72
116
|
/**
|
|
73
117
|
* Continua um trace recebido de outro serviço: mesmo `traceId`, mas o span nasce como
|
|
74
118
|
* raiz local (`parentSpanId` null) e guarda o pai remoto em `attributes.remoteParentSpanId`,
|
|
@@ -94,6 +138,8 @@ export declare class TrackerCore {
|
|
|
94
138
|
traceHeaders(): Record<string, string>;
|
|
95
139
|
/** Chamado por ActiveSpanImpl.end(): amostragem, ignoreErrors, scrubbing e beforeSend. */
|
|
96
140
|
finishSpan(span: ActiveSpanImpl, payload: Span): void;
|
|
141
|
+
private isFailure;
|
|
142
|
+
private keepRoot;
|
|
97
143
|
/**
|
|
98
144
|
* Registra um span que já terminou, sem ter existido um `ActiveSpanImpl`
|
|
99
145
|
* durante a execução.
|
|
@@ -117,13 +163,41 @@ export declare class TrackerCore {
|
|
|
117
163
|
/** Executa `fn` com `span` como contexto pai das operações internas. */
|
|
118
164
|
runInSpan<T>(span: ActiveSpanImpl, fn: () => T): T;
|
|
119
165
|
enqueue(span: Span): void;
|
|
166
|
+
/** Acima dos limites (spans ou bytes), descarta os mais antigos para não crescer sem limite. */
|
|
167
|
+
private trimQueue;
|
|
120
168
|
/**
|
|
121
169
|
* Envia a fila. `includeInfra` (default `true`) também fecha a janela de infra e envia os
|
|
122
170
|
* agregados no mesmo lote; o timer de spans chama com `false` para respeitar a janela de 60 s/5 s.
|
|
171
|
+
* Não espera o backoff: em backoff, volta na hora e o próximo flush tenta.
|
|
123
172
|
*/
|
|
124
173
|
flush(includeInfra?: boolean): Promise<void>;
|
|
174
|
+
/**
|
|
175
|
+
* Envia o que der até `deadline`, sem esperar backoff (fim de invocação da Lambda). Aborta a
|
|
176
|
+
* requisição em andamento no prazo: nada fica pendurado no congelamento do ambiente.
|
|
177
|
+
*/
|
|
178
|
+
flushUntil(deadline: number): Promise<void>;
|
|
125
179
|
private hasInfraToSend;
|
|
126
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Laço de envio. `waitBackoff` (encerramento) espera o backoff enquanto couber no prazo;
|
|
182
|
+
* sem ele, uma falha devolve o lote à fila e encerra o laço.
|
|
183
|
+
*/
|
|
184
|
+
private drain;
|
|
185
|
+
/**
|
|
186
|
+
* Monta o próximo lote: agregados (até 500) e depois spans (até 1000), todos dentro do teto de
|
|
187
|
+
* bytes e do teto de itens (este só cai depois de 413 com o teto de bytes no mínimo). Sempre leva
|
|
188
|
+
* pelo menos um item.
|
|
189
|
+
*/
|
|
190
|
+
private takeBatch;
|
|
191
|
+
/** Aplica o resultado do envio. Devolve `false` quando o lote voltou para a fila (backoff). */
|
|
192
|
+
private handleResult;
|
|
193
|
+
/** Devolve o lote para a frente da fila (os limites de memória continuam valendo). */
|
|
194
|
+
private requeue;
|
|
195
|
+
/**
|
|
196
|
+
* 202 da ingestão: `live`/`liveIntervalMs` (infra ao vivo), spans recusados (não reenvia: a
|
|
197
|
+
* recusa se repetiria) e agregados de infra com falha transitória (`retryableIds`, reenvia só
|
|
198
|
+
* esses). Devolve `true` quando algum agregado voltou para a fila.
|
|
199
|
+
*/
|
|
200
|
+
private readIngestResponse;
|
|
127
201
|
private pushInfraPending;
|
|
128
202
|
/** Mesma política dos spans: acima do limite, descarta os agregados mais antigos. */
|
|
129
203
|
private trimInfraPending;
|
|
@@ -137,9 +211,22 @@ export declare class TrackerCore {
|
|
|
137
211
|
onShutdown(dispose: () => void): () => void;
|
|
138
212
|
/** POST autenticado na API (ingest, check-ins, releases). Devolve a resposta ou `null` em falha de rede. */
|
|
139
213
|
post(path: string, body: unknown, timeoutMs?: number): Promise<Response | null>;
|
|
140
|
-
private send;
|
|
141
214
|
warnOnce(message: string): void;
|
|
142
|
-
|
|
215
|
+
hasPendingForExit(): boolean;
|
|
216
|
+
/** Saída do processo sem `shutdown()` (`beforeExit`, SIGTERM/SIGINT): envia com prazo, sem parar o tracker. */
|
|
217
|
+
flushForExit(deadline: number): Promise<void>;
|
|
218
|
+
/**
|
|
219
|
+
* Envia tudo o que der até `deadline`, esperando backoff/`Retry-After` quando cabe no prazo.
|
|
220
|
+
* A requisição em andamento é abortada no prazo.
|
|
221
|
+
*/
|
|
222
|
+
private sendUntil;
|
|
223
|
+
/**
|
|
224
|
+
* Para os timers e envia o que restou em até `timeoutMs` (default `shutdownTimeoutMs`, 10 s).
|
|
225
|
+
* Com a API muda ou fora, volta no prazo; o que não saiu é descartado (e contado em `dropped`).
|
|
226
|
+
*/
|
|
227
|
+
shutdown(options?: {
|
|
228
|
+
timeoutMs?: number;
|
|
229
|
+
}): Promise<void>;
|
|
143
230
|
}
|
|
144
231
|
export declare function userAttributes(user: UserRef | null): Record<string, unknown>;
|
|
145
232
|
export declare class ActiveSpanImpl implements ActiveSpan {
|
|
@@ -149,6 +236,10 @@ export declare class ActiveSpanImpl implements ActiveSpan {
|
|
|
149
236
|
readonly parentSpanId: string | null;
|
|
150
237
|
readonly kind: SpanKind;
|
|
151
238
|
readonly sampled: boolean;
|
|
239
|
+
/** Trace excluído por `ignoreTransactions`: nunca enviado (nem com `sendUnsampledErrors`). */
|
|
240
|
+
readonly ignored: boolean;
|
|
241
|
+
/** `spanId` da raiz local deste ramo (o próprio, quando o span é raiz local). */
|
|
242
|
+
readonly localRootId: string;
|
|
152
243
|
name: string;
|
|
153
244
|
method: string | null;
|
|
154
245
|
route: string | null;
|
|
@@ -158,7 +249,11 @@ export declare class ActiveSpanImpl implements ActiveSpan {
|
|
|
158
249
|
private readonly startedAt;
|
|
159
250
|
private readonly startedPerf;
|
|
160
251
|
private ended;
|
|
161
|
-
constructor(core: TrackerCore, traceId: string, spanId: string, parentSpanId: string | null, kind: SpanKind, name: string, attributes: Record<string, unknown>, sampled?: boolean
|
|
252
|
+
constructor(core: TrackerCore, traceId: string, spanId: string, parentSpanId: string | null, kind: SpanKind, name: string, attributes: Record<string, unknown>, sampled?: boolean,
|
|
253
|
+
/** Trace excluído por `ignoreTransactions`: nunca enviado (nem com `sendUnsampledErrors`). */
|
|
254
|
+
ignored?: boolean,
|
|
255
|
+
/** `spanId` da raiz local deste ramo (o próprio, quando o span é raiz local). */
|
|
256
|
+
localRootId?: string);
|
|
162
257
|
setAttribute(key: string, value: unknown): void;
|
|
163
258
|
setError(err: unknown): void;
|
|
164
259
|
setUser(user: UserRef | null): void;
|
package/dist/tracker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
|