autotel 4.1.0 → 4.2.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/package.json +1 -2
- package/src/attribute-redacting-processor.test.ts +0 -763
- package/src/attribute-redacting-processor.ts +0 -621
- package/src/attributes/attachers.ts +0 -161
- package/src/attributes/builders.ts +0 -529
- package/src/attributes/domains.ts +0 -42
- package/src/attributes/index.ts +0 -81
- package/src/attributes/registry.ts +0 -323
- package/src/attributes/types.ts +0 -211
- package/src/attributes/utils.ts +0 -64
- package/src/attributes/validators.ts +0 -266
- package/src/attributes.test.ts +0 -292
- package/src/auto.ts +0 -67
- package/src/autotel-logger.test.ts +0 -548
- package/src/autotel-logger.ts +0 -364
- package/src/baggage-span-processor.test.ts +0 -202
- package/src/baggage-span-processor.ts +0 -100
- package/src/business-baggage.test.ts +0 -500
- package/src/business-baggage.ts +0 -669
- package/src/circuit-breaker.test.ts +0 -341
- package/src/circuit-breaker.ts +0 -184
- package/src/config.test.ts +0 -94
- package/src/config.ts +0 -172
- package/src/correlated-events.test.ts +0 -151
- package/src/correlated-events.ts +0 -47
- package/src/correlation-id.test.ts +0 -163
- package/src/correlation-id.ts +0 -206
- package/src/db.test.ts +0 -252
- package/src/db.ts +0 -447
- package/src/decorators.test.ts +0 -153
- package/src/decorators.ts +0 -188
- package/src/define-event.test.ts +0 -41
- package/src/define-event.ts +0 -58
- package/src/devtools.ts +0 -60
- package/src/drain-pipeline.test.ts +0 -68
- package/src/drain-pipeline.ts +0 -199
- package/src/drain-toolkit.test.ts +0 -113
- package/src/drain-toolkit.ts +0 -129
- package/src/enricher-toolkit.test.ts +0 -67
- package/src/enricher-toolkit.ts +0 -79
- package/src/enrichers.test.ts +0 -150
- package/src/enrichers.ts +0 -145
- package/src/env-config.test.ts +0 -323
- package/src/env-config.ts +0 -309
- package/src/error-catalog.test.ts +0 -133
- package/src/error-catalog.ts +0 -262
- package/src/event-queue.test.ts +0 -864
- package/src/event-queue.ts +0 -699
- package/src/event-subscriber.ts +0 -262
- package/src/event-testing.ts +0 -197
- package/src/event.test.ts +0 -1104
- package/src/event.ts +0 -988
- package/src/events-config.ts +0 -235
- package/src/exporters.ts +0 -165
- package/src/filtering-span-processor.test.ts +0 -281
- package/src/filtering-span-processor.ts +0 -111
- package/src/flatten-attributes.test.ts +0 -76
- package/src/flatten-attributes.ts +0 -80
- package/src/functional.strict-types.typecheck.ts +0 -53
- package/src/functional.test.ts +0 -1464
- package/src/functional.ts +0 -2539
- package/src/functional.types.test.ts +0 -135
- package/src/hook.mjs +0 -15
- package/src/http.test.ts +0 -485
- package/src/http.ts +0 -424
- package/src/index.ts +0 -433
- package/src/init-auto-redactor.test.ts +0 -53
- package/src/init-redactor.test.ts +0 -8
- package/src/init.customization.test.ts +0 -665
- package/src/init.integrations.test.ts +0 -399
- package/src/init.openllmetry.test.ts +0 -194
- package/src/init.protocol.test.ts +0 -215
- package/src/init.ts +0 -2439
- package/src/instrumentation.test.ts +0 -108
- package/src/instrumentation.ts +0 -319
- package/src/logger.test.ts +0 -125
- package/src/logger.ts +0 -341
- package/src/messaging-adapters.test.ts +0 -595
- package/src/messaging-adapters.ts +0 -583
- package/src/messaging-testing.test.ts +0 -573
- package/src/messaging-testing.ts +0 -935
- package/src/messaging.test.ts +0 -1646
- package/src/messaging.ts +0 -2245
- package/src/metric-helpers.ts +0 -47
- package/src/metric-testing.ts +0 -197
- package/src/metric.ts +0 -446
- package/src/metrics.test.ts +0 -241
- package/src/node-require.ts +0 -123
- package/src/operation-context.ts +0 -93
- package/src/parse-error.test.ts +0 -73
- package/src/parse-error.ts +0 -112
- package/src/posthog-logs.test.ts +0 -115
- package/src/posthog-logs.ts +0 -77
- package/src/pretty-console-exporter.test.ts +0 -545
- package/src/pretty-console-exporter.ts +0 -413
- package/src/pretty-log-formatter.test.ts +0 -123
- package/src/pretty-log-formatter.ts +0 -210
- package/src/processors/canonical-log-line-processor.test.ts +0 -523
- package/src/processors/canonical-log-line-processor.ts +0 -396
- package/src/processors.ts +0 -152
- package/src/rate-limiter.test.ts +0 -199
- package/src/rate-limiter.ts +0 -98
- package/src/redact-values.test.ts +0 -90
- package/src/redact-values.ts +0 -34
- package/src/register.ts +0 -37
- package/src/request-logger.test.ts +0 -545
- package/src/request-logger.ts +0 -342
- package/src/sampling.test.ts +0 -1060
- package/src/sampling.ts +0 -737
- package/src/security-schema.test.ts +0 -45
- package/src/security-schema.ts +0 -107
- package/src/semantic-conventions.ts +0 -15
- package/src/semantic-helpers.test.ts +0 -226
- package/src/semantic-helpers.ts +0 -438
- package/src/shutdown.test.ts +0 -364
- package/src/shutdown.ts +0 -246
- package/src/span-name-normalizer.test.ts +0 -377
- package/src/span-name-normalizer.ts +0 -213
- package/src/stable-hash.ts +0 -27
- package/src/structured-error.test.ts +0 -191
- package/src/structured-error.ts +0 -157
- package/src/stub.integration.test.ts +0 -361
- package/src/tail-sampling-processor.test.ts +0 -230
- package/src/tail-sampling-processor.ts +0 -55
- package/src/test-span-collector.test.ts +0 -234
- package/src/test-span-collector.ts +0 -150
- package/src/testing.ts +0 -705
- package/src/trace-context.test.ts +0 -73
- package/src/trace-context.ts +0 -567
- package/src/trace-helpers.new.test.ts +0 -278
- package/src/trace-helpers.test.ts +0 -290
- package/src/trace-helpers.ts +0 -710
- package/src/trace-hybrid.test.ts +0 -42
- package/src/trace-hybrid.ts +0 -37
- package/src/tracer-provider.test.ts +0 -183
- package/src/tracer-provider.ts +0 -266
- package/src/track.test.ts +0 -154
- package/src/track.ts +0 -216
- package/src/validate.test.ts +0 -287
- package/src/validate.ts +0 -307
- package/src/validation-attributes.ts +0 -43
- package/src/validation.test.ts +0 -330
- package/src/validation.ts +0 -246
- package/src/variable-name-inference.test.ts +0 -178
- package/src/variable-name-inference.ts +0 -242
- package/src/webhook.test.ts +0 -649
- package/src/webhook.ts +0 -637
- package/src/workflow-distributed.test.ts +0 -786
- package/src/workflow-distributed.ts +0 -916
- package/src/workflow.async-safety.integration.test.ts +0 -345
- package/src/workflow.test.ts +0 -647
- package/src/workflow.ts +0 -810
- package/src/yaml-config.test.ts +0 -373
- package/src/yaml-config.ts +0 -351
package/src/posthog-logs.test.ts
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
2
|
-
|
|
3
|
-
const mockBatchLogRecordProcessor = vi.fn();
|
|
4
|
-
const mockOTLPLogExporter = vi.fn();
|
|
5
|
-
|
|
6
|
-
vi.mock('./node-require', () => ({
|
|
7
|
-
safeRequire: vi.fn((id: string) => {
|
|
8
|
-
if (id === '@opentelemetry/sdk-logs') {
|
|
9
|
-
return { BatchLogRecordProcessor: mockBatchLogRecordProcessor };
|
|
10
|
-
}
|
|
11
|
-
if (id === '@opentelemetry/exporter-logs-otlp-http') {
|
|
12
|
-
return { OTLPLogExporter: mockOTLPLogExporter };
|
|
13
|
-
}
|
|
14
|
-
return undefined;
|
|
15
|
-
}),
|
|
16
|
-
}));
|
|
17
|
-
|
|
18
|
-
import { buildPostHogLogProcessors } from './posthog-logs';
|
|
19
|
-
|
|
20
|
-
describe('buildPostHogLogProcessors', () => {
|
|
21
|
-
const originalEnv = process.env;
|
|
22
|
-
|
|
23
|
-
beforeEach(() => {
|
|
24
|
-
vi.clearAllMocks();
|
|
25
|
-
process.env = { ...originalEnv };
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
afterEach(() => {
|
|
29
|
-
process.env = originalEnv;
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
it('returns processor when posthog.url is configured', () => {
|
|
33
|
-
const result = buildPostHogLogProcessors({
|
|
34
|
-
url: 'https://us.i.posthog.com/i/v1/logs?token=phc_test',
|
|
35
|
-
});
|
|
36
|
-
expect(result).toHaveLength(1);
|
|
37
|
-
expect(mockOTLPLogExporter).toHaveBeenCalledWith({
|
|
38
|
-
url: 'https://us.i.posthog.com/i/v1/logs?token=phc_test',
|
|
39
|
-
});
|
|
40
|
-
expect(mockBatchLogRecordProcessor).toHaveBeenCalled();
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it('returns processor from POSTHOG_LOGS_URL env var', () => {
|
|
44
|
-
process.env.POSTHOG_LOGS_URL =
|
|
45
|
-
'https://eu.i.posthog.com/i/v1/logs?token=phc_eu';
|
|
46
|
-
const result = buildPostHogLogProcessors(undefined);
|
|
47
|
-
expect(result).toHaveLength(1);
|
|
48
|
-
expect(mockOTLPLogExporter).toHaveBeenCalledWith({
|
|
49
|
-
url: 'https://eu.i.posthog.com/i/v1/logs?token=phc_eu',
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
it('config.url takes precedence over env var', () => {
|
|
54
|
-
process.env.POSTHOG_LOGS_URL = 'https://env-url.com';
|
|
55
|
-
const result = buildPostHogLogProcessors({ url: 'https://config-url.com' });
|
|
56
|
-
expect(result).toHaveLength(1);
|
|
57
|
-
expect(mockOTLPLogExporter).toHaveBeenCalledWith({
|
|
58
|
-
url: 'https://config-url.com',
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it('returns empty array when no url configured', () => {
|
|
63
|
-
const result = buildPostHogLogProcessors(undefined);
|
|
64
|
-
expect(result).toHaveLength(0);
|
|
65
|
-
expect(mockOTLPLogExporter).not.toHaveBeenCalled();
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it('accepts a second stringRedactor parameter without error', () => {
|
|
69
|
-
const redactor = (s: string) => s.replace(/secret/g, '***');
|
|
70
|
-
const result = buildPostHogLogProcessors(
|
|
71
|
-
{ url: 'https://us.i.posthog.com/i/v1/logs?token=phc_test' },
|
|
72
|
-
redactor,
|
|
73
|
-
);
|
|
74
|
-
expect(result).toHaveLength(1);
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
it('returns empty array when called with undefined, undefined', () => {
|
|
78
|
-
const result = buildPostHogLogProcessors(undefined, undefined);
|
|
79
|
-
expect(result).toHaveLength(0);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it('redacts string values inside attribute arrays before emitting', () => {
|
|
83
|
-
const wrappedOnEmit = vi.fn();
|
|
84
|
-
mockBatchLogRecordProcessor.mockImplementation(function () {
|
|
85
|
-
return {
|
|
86
|
-
onEmit: wrappedOnEmit,
|
|
87
|
-
shutdown: vi.fn().mockResolvedValue(undefined),
|
|
88
|
-
forceFlush: vi.fn().mockResolvedValue(undefined),
|
|
89
|
-
};
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
const [processor] = buildPostHogLogProcessors(
|
|
93
|
-
{ url: 'https://us.i.posthog.com/i/v1/logs?token=phc_test' },
|
|
94
|
-
(value: string) => value.replace(/secret/g, '***'),
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
const record = {
|
|
98
|
-
body: 'ok',
|
|
99
|
-
attributes: {
|
|
100
|
-
tags: ['public', 'secret'],
|
|
101
|
-
},
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
processor.onEmit(record as any);
|
|
105
|
-
|
|
106
|
-
expect(wrappedOnEmit).toHaveBeenCalledWith(
|
|
107
|
-
expect.objectContaining({
|
|
108
|
-
attributes: {
|
|
109
|
-
tags: ['public', '***'],
|
|
110
|
-
},
|
|
111
|
-
}),
|
|
112
|
-
undefined,
|
|
113
|
-
);
|
|
114
|
-
});
|
|
115
|
-
});
|
package/src/posthog-logs.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import type { LogRecordProcessor } from '@opentelemetry/sdk-logs';
|
|
2
|
-
import { safeRequire } from './node-require';
|
|
3
|
-
import type { StringRedactor } from './redact-values';
|
|
4
|
-
|
|
5
|
-
export class RedactingLogRecordProcessor implements LogRecordProcessor {
|
|
6
|
-
constructor(
|
|
7
|
-
private wrapped: LogRecordProcessor,
|
|
8
|
-
private redact: StringRedactor,
|
|
9
|
-
) {}
|
|
10
|
-
|
|
11
|
-
onEmit(logRecord: any, context?: any): void {
|
|
12
|
-
if (logRecord.body && typeof logRecord.body === 'string') {
|
|
13
|
-
logRecord.body = this.redact(logRecord.body);
|
|
14
|
-
}
|
|
15
|
-
if (logRecord.attributes) {
|
|
16
|
-
for (const [key, value] of Object.entries(logRecord.attributes)) {
|
|
17
|
-
if (typeof value === 'string') {
|
|
18
|
-
logRecord.attributes[key] = this.redact(value);
|
|
19
|
-
} else if (Array.isArray(value)) {
|
|
20
|
-
logRecord.attributes[key] = value.map((item: unknown) =>
|
|
21
|
-
typeof item === 'string' ? this.redact(item) : item,
|
|
22
|
-
);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
this.wrapped.onEmit(logRecord, context);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
shutdown(): Promise<void> {
|
|
30
|
-
return this.wrapped.shutdown();
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
forceFlush(): Promise<void> {
|
|
34
|
-
return this.wrapped.forceFlush();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface PostHogConfig {
|
|
39
|
-
/** OTLP logs endpoint URL (e.g., https://us.i.posthog.com/i/v1/logs?token=phc_xxx) */
|
|
40
|
-
url: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Build log record processors for PostHog OTLP logs integration.
|
|
45
|
-
*
|
|
46
|
-
* Resolution order:
|
|
47
|
-
* 1. config.url if provided
|
|
48
|
-
* 2. POSTHOG_LOGS_URL env var
|
|
49
|
-
* 3. Empty array (disabled)
|
|
50
|
-
*/
|
|
51
|
-
export function buildPostHogLogProcessors(
|
|
52
|
-
config: PostHogConfig | undefined,
|
|
53
|
-
stringRedactor?: StringRedactor | null,
|
|
54
|
-
): LogRecordProcessor[] {
|
|
55
|
-
const url = config?.url || process.env.POSTHOG_LOGS_URL;
|
|
56
|
-
if (!url) return [];
|
|
57
|
-
|
|
58
|
-
const sdkLogs = safeRequire<{
|
|
59
|
-
BatchLogRecordProcessor: new (exporter: unknown) => LogRecordProcessor;
|
|
60
|
-
}>('@opentelemetry/sdk-logs');
|
|
61
|
-
|
|
62
|
-
const exporterModule = safeRequire<{
|
|
63
|
-
OTLPLogExporter: new (config: { url: string }) => unknown;
|
|
64
|
-
}>('@opentelemetry/exporter-logs-otlp-http');
|
|
65
|
-
|
|
66
|
-
if (!sdkLogs || !exporterModule) return [];
|
|
67
|
-
|
|
68
|
-
const exporter = new exporterModule.OTLPLogExporter({ url });
|
|
69
|
-
let processor: LogRecordProcessor = new sdkLogs.BatchLogRecordProcessor(
|
|
70
|
-
exporter,
|
|
71
|
-
);
|
|
72
|
-
if (stringRedactor) {
|
|
73
|
-
processor = new RedactingLogRecordProcessor(processor, stringRedactor);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return [processor];
|
|
77
|
-
}
|