@brizz/sdk 0.1.0-alpha.6
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/LICENSE +27 -0
- package/README.md +76 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/config.d.ts +17 -0
- package/dist/internal/config.d.ts.map +1 -0
- package/dist/internal/config.js +90 -0
- package/dist/internal/config.js.map +1 -0
- package/dist/internal/instrumentation/auto-init.d.ts +3 -0
- package/dist/internal/instrumentation/auto-init.d.ts.map +1 -0
- package/dist/internal/instrumentation/auto-init.js +82 -0
- package/dist/internal/instrumentation/auto-init.js.map +1 -0
- package/dist/internal/instrumentation/index.d.ts +2 -0
- package/dist/internal/instrumentation/index.d.ts.map +1 -0
- package/dist/internal/instrumentation/index.js +2 -0
- package/dist/internal/instrumentation/index.js.map +1 -0
- package/dist/internal/instrumentation/registry.d.ts +29 -0
- package/dist/internal/instrumentation/registry.d.ts.map +1 -0
- package/dist/internal/instrumentation/registry.js +88 -0
- package/dist/internal/instrumentation/registry.js.map +1 -0
- package/dist/internal/log/index.d.ts +2 -0
- package/dist/internal/log/index.d.ts.map +1 -0
- package/dist/internal/log/index.js +2 -0
- package/dist/internal/log/index.js.map +1 -0
- package/dist/internal/log/logging.d.ts +21 -0
- package/dist/internal/log/logging.d.ts.map +1 -0
- package/dist/internal/log/logging.js +149 -0
- package/dist/internal/log/logging.js.map +1 -0
- package/dist/internal/logger.d.ts +23 -0
- package/dist/internal/logger.d.ts.map +1 -0
- package/dist/internal/logger.js +155 -0
- package/dist/internal/logger.js.map +1 -0
- package/dist/internal/masking/index.d.ts +4 -0
- package/dist/internal/masking/index.d.ts.map +1 -0
- package/dist/internal/masking/index.js +3 -0
- package/dist/internal/masking/index.js.map +1 -0
- package/dist/internal/masking/patterns.d.ts +3 -0
- package/dist/internal/masking/patterns.d.ts.map +1 -0
- package/dist/internal/masking/patterns.js +375 -0
- package/dist/internal/masking/patterns.js.map +1 -0
- package/dist/internal/masking/types.d.ts +33 -0
- package/dist/internal/masking/types.d.ts.map +1 -0
- package/dist/internal/masking/types.js +2 -0
- package/dist/internal/masking/types.js.map +1 -0
- package/dist/internal/masking/utils.d.ts +6 -0
- package/dist/internal/masking/utils.d.ts.map +1 -0
- package/dist/internal/masking/utils.js +226 -0
- package/dist/internal/masking/utils.js.map +1 -0
- package/dist/internal/metric/index.d.ts +2 -0
- package/dist/internal/metric/index.d.ts.map +1 -0
- package/dist/internal/metric/index.js +2 -0
- package/dist/internal/metric/index.js.map +1 -0
- package/dist/internal/metric/metrics.d.ts +18 -0
- package/dist/internal/metric/metrics.d.ts.map +1 -0
- package/dist/internal/metric/metrics.js +82 -0
- package/dist/internal/metric/metrics.js.map +1 -0
- package/dist/internal/sdk.d.ts +36 -0
- package/dist/internal/sdk.d.ts.map +1 -0
- package/dist/internal/sdk.js +155 -0
- package/dist/internal/sdk.js.map +1 -0
- package/dist/internal/trace/index.d.ts +3 -0
- package/dist/internal/trace/index.d.ts.map +1 -0
- package/dist/internal/trace/index.js +3 -0
- package/dist/internal/trace/index.js.map +1 -0
- package/dist/internal/trace/processors/log-masked.d.ts +16 -0
- package/dist/internal/trace/processors/log-masked.d.ts.map +1 -0
- package/dist/internal/trace/processors/log-masked.js +75 -0
- package/dist/internal/trace/processors/log-masked.js.map +1 -0
- package/dist/internal/trace/processors/span-masked.d.ts +16 -0
- package/dist/internal/trace/processors/span-masked.d.ts.map +1 -0
- package/dist/internal/trace/processors/span-masked.js +81 -0
- package/dist/internal/trace/processors/span-masked.js.map +1 -0
- package/dist/internal/trace/tracing.d.ts +18 -0
- package/dist/internal/trace/tracing.d.ts.map +1 -0
- package/dist/internal/trace/tracing.js +97 -0
- package/dist/internal/trace/tracing.js.map +1 -0
- package/package.json +130 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
BrizzAI, Inc. Proprietary Software License
|
|
2
|
+
Copyright (c) 2025 BrizzAI, Inc. All rights reserved.
|
|
3
|
+
|
|
4
|
+
1. Grant of License
|
|
5
|
+
BrizzAI, Inc. ("Licensor") grants you ("Licensee") a limited, non-exclusive, non-transferable, and revocable license to use this software solely for internal evaluation and development purposes, subject to the restrictions below.
|
|
6
|
+
|
|
7
|
+
2. Restrictions
|
|
8
|
+
- You may not distribute, sublicense, sell, lease, or modify this software without express written permission from BrizzAI, Inc.
|
|
9
|
+
- You may not reverse-engineer, decompile, or disassemble any part of the software.
|
|
10
|
+
- You may not use this software for any commercial or production purposes without a separate commercial license agreement.
|
|
11
|
+
|
|
12
|
+
3. Ownership & Intellectual Property
|
|
13
|
+
- This software, including all modifications and derivative works, remains the exclusive property of BrizzAI, Inc.
|
|
14
|
+
- No rights or ownership are transferred to the Licensee.
|
|
15
|
+
|
|
16
|
+
4. Termination
|
|
17
|
+
- This license is automatically terminated if you violate any of these terms.
|
|
18
|
+
- Upon termination, you must immediately cease using and delete all copies of the software.
|
|
19
|
+
|
|
20
|
+
5. Disclaimer & Liability
|
|
21
|
+
- This software is provided "as is," without any warranties, express or implied.
|
|
22
|
+
- BrizzAI, Inc. is not liable for any damages arising from the use or inability to use the software.
|
|
23
|
+
|
|
24
|
+
6. Governing Law
|
|
25
|
+
- This license is governed by and construed in accordance with the laws of the State of Delaware, without regard to its conflict of law principles.
|
|
26
|
+
|
|
27
|
+
For inquiries about commercial use or licensing, contact: legal@brizz.ai
|
package/README.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Brizz SDK
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@brizz/sdk)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
|
|
7
|
+
Brizz observability SDK for AI applications.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @brizz/sdk
|
|
13
|
+
# or
|
|
14
|
+
yarn add @brizz/sdk
|
|
15
|
+
# or
|
|
16
|
+
pnpm add @brizz/sdk
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { Brizz, emitEvent } from '@brizz/sdk';
|
|
23
|
+
|
|
24
|
+
// Initialize
|
|
25
|
+
Brizz.initialize({
|
|
26
|
+
apiKey: 'your-brizzai-api-key',
|
|
27
|
+
appName: 'my-app',
|
|
28
|
+
});
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
> **Important**: Initialize Brizz before importing any libraries you want to instrument (e.g.,
|
|
32
|
+
> OpenAI). If using `dotenv`, use `import "dotenv/config"` before importing `@brizz/sdk`.
|
|
33
|
+
|
|
34
|
+
## PII Masking
|
|
35
|
+
|
|
36
|
+
Automatically protects sensitive data in traces:
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
// Configure masking rules
|
|
40
|
+
Brizz.initialize({
|
|
41
|
+
apiKey: 'your-api-key',
|
|
42
|
+
masking: {
|
|
43
|
+
spanMasking: {
|
|
44
|
+
rules: [
|
|
45
|
+
{
|
|
46
|
+
attributePattern: 'gen_ai\\.(prompt|completion)',
|
|
47
|
+
mode: 'partial', // 'partial' or 'full'
|
|
48
|
+
patterns: ['sk-[a-zA-Z0-9]{32}'], // Custom regex patterns
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Built-in patterns**: emails, phone numbers, SSNs, credit cards, API keys, crypto addresses, and
|
|
57
|
+
more.
|
|
58
|
+
|
|
59
|
+
## Event Examples
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
emitEvent('user.signup', { user_id: '123', plan: 'pro' });
|
|
63
|
+
emitEvent('user.payment', { amount: 99, currency: 'USD' });
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Environment Variables
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
BRIZZ_API_KEY=your-api-key # Required
|
|
70
|
+
BRIZZ_BASE_URL=https://api.brizz.ai # Optional
|
|
71
|
+
BRIZZ_APP_NAME=my-app # Optional
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## License
|
|
75
|
+
|
|
76
|
+
MIT - see [LICENSE](LICENSE) file.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import './internal/instrumentation/auto-init';
|
|
2
|
+
export { Brizz, type IBrizzInitializeOptions } from './internal/sdk';
|
|
3
|
+
export { type IInstrumentModules } from './internal/instrumentation';
|
|
4
|
+
export { emitEvent } from './internal/log';
|
|
5
|
+
export { getSpanExporter, getSpanProcessor } from './internal/trace';
|
|
6
|
+
export { getMetricsExporter, getMetricsReader } from './internal/metric';
|
|
7
|
+
export type { IMaskingConfig, ISpanMaskingConfig, ILogMaskingConfig, IEventMaskingConfig, IEventMaskingRule, MaskingMode, IAttributesMaskingRule, } from './internal/masking/index';
|
|
8
|
+
export { DEFAULT_PII_PATTERNS } from './internal/masking/patterns';
|
|
9
|
+
export { maskValue, maskAttributes } from './internal/masking/utils';
|
|
10
|
+
export { LogLevel, logger, setLogLevel, getLogLevel } from './internal/logger';
|
|
11
|
+
export type { ILogger } from './internal/logger';
|
|
12
|
+
export { SeverityNumber } from '@opentelemetry/api-logs';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,sCAAsC,CAAC;AAG9C,OAAO,EAAE,KAAK,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/E,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import './internal/instrumentation/auto-init';
|
|
2
|
+
export { Brizz } from './internal/sdk';
|
|
3
|
+
export { emitEvent } from './internal/log';
|
|
4
|
+
export { getSpanExporter, getSpanProcessor } from './internal/trace';
|
|
5
|
+
export { getMetricsExporter, getMetricsReader } from './internal/metric';
|
|
6
|
+
export { DEFAULT_PII_PATTERNS } from './internal/masking/patterns';
|
|
7
|
+
export { maskValue, maskAttributes } from './internal/masking/utils';
|
|
8
|
+
export { LogLevel, logger, setLogLevel, getLogLevel } from './internal/logger';
|
|
9
|
+
export { SeverityNumber } from '@opentelemetry/api-logs';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,sCAAsC,CAAC;AAG9C,OAAO,EAAE,KAAK,EAAgC,MAAM,gBAAgB,CAAC;AAMrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAazE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAI/E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NodeSDK } from '@opentelemetry/sdk-node';
|
|
2
|
+
import type { IBrizzInitializeOptions } from '../index';
|
|
3
|
+
import { LogLevel } from './logger';
|
|
4
|
+
import type { IMaskingConfig } from './masking';
|
|
5
|
+
export interface IResolvedBrizzConfig extends Omit<IBrizzInitializeOptions, 'masking'> {
|
|
6
|
+
appName: string;
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
headers: Record<string, string>;
|
|
9
|
+
disableBatch: boolean;
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
logLevel: LogLevel;
|
|
12
|
+
nodeSDK?: NodeSDK | null;
|
|
13
|
+
masking?: IMaskingConfig;
|
|
14
|
+
}
|
|
15
|
+
export declare function resolveConfig(options: IBrizzInitializeOptions): IResolvedBrizzConfig;
|
|
16
|
+
export declare function processEnvironmentConfig(options: IBrizzInitializeOptions): IResolvedBrizzConfig;
|
|
17
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/internal/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAAU,QAAQ,EAA8B,MAAM,UAAU,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,oBAAoB,CA8FpF;AAGD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,uBAAuB,GAAG,oBAAoB,CAE/F"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { logger, LogLevel, parseLogLevel, setLogLevel } from './logger';
|
|
2
|
+
export function resolveConfig(options) {
|
|
3
|
+
const envLogLevel = process.env['BRIZZ_LOG_LEVEL'] || options.logLevel?.toString() || 'info';
|
|
4
|
+
let resolvedLogLevel;
|
|
5
|
+
if (envLogLevel) {
|
|
6
|
+
resolvedLogLevel = parseLogLevel(envLogLevel);
|
|
7
|
+
}
|
|
8
|
+
else if (typeof options.logLevel === 'string') {
|
|
9
|
+
resolvedLogLevel = parseLogLevel(options.logLevel);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
resolvedLogLevel = options.logLevel || LogLevel.NONE;
|
|
13
|
+
}
|
|
14
|
+
setLogLevel(resolvedLogLevel);
|
|
15
|
+
let maskingStatus;
|
|
16
|
+
if (options.masking === true) {
|
|
17
|
+
maskingStatus = 'enabled';
|
|
18
|
+
}
|
|
19
|
+
else if (options.masking === false) {
|
|
20
|
+
maskingStatus = 'disabled';
|
|
21
|
+
}
|
|
22
|
+
else if (typeof options.masking === 'object') {
|
|
23
|
+
maskingStatus = 'custom';
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
maskingStatus = 'default-disabled';
|
|
27
|
+
}
|
|
28
|
+
logger.debug('Starting configuration resolution', {
|
|
29
|
+
appName: options.appName,
|
|
30
|
+
baseUrl: options.baseUrl,
|
|
31
|
+
hasApiKey: !!options.apiKey,
|
|
32
|
+
disableBatch: options.disableBatch,
|
|
33
|
+
logLevel: resolvedLogLevel,
|
|
34
|
+
headersCount: Object.keys(options.headers || {}).length,
|
|
35
|
+
masking: maskingStatus,
|
|
36
|
+
});
|
|
37
|
+
let resolvedMasking;
|
|
38
|
+
if (options.masking === true) {
|
|
39
|
+
resolvedMasking = {
|
|
40
|
+
spanMasking: {},
|
|
41
|
+
eventMasking: {},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
else if (options.masking && typeof options.masking === 'object') {
|
|
45
|
+
resolvedMasking = options.masking;
|
|
46
|
+
}
|
|
47
|
+
const resolvedConfig = {
|
|
48
|
+
...options,
|
|
49
|
+
appName: process.env['BRIZZ_APP_NAME'] || options.appName || 'unknown-app',
|
|
50
|
+
baseUrl: process.env['BRIZZ_BASE_URL'] || options.baseUrl || 'https://telemetry.brizz.dev',
|
|
51
|
+
headers: { ...options.headers },
|
|
52
|
+
apiKey: process.env['BRIZZ_API_KEY'] || options.apiKey,
|
|
53
|
+
disableBatch: process.env['BRIZZ_DISABLE_BATCH'] === 'true' || !!options.disableBatch,
|
|
54
|
+
logLevel: resolvedLogLevel,
|
|
55
|
+
masking: resolvedMasking,
|
|
56
|
+
};
|
|
57
|
+
if (resolvedConfig.apiKey) {
|
|
58
|
+
resolvedConfig.headers['Authorization'] = `Bearer ${resolvedConfig.apiKey}`;
|
|
59
|
+
}
|
|
60
|
+
if (process.env['BRIZZ_HEADERS']) {
|
|
61
|
+
try {
|
|
62
|
+
const envHeaders = JSON.parse(process.env['BRIZZ_HEADERS']);
|
|
63
|
+
Object.assign(resolvedConfig.headers, envHeaders);
|
|
64
|
+
logger.debug('Added headers from environment variable', {
|
|
65
|
+
headers: Object.keys(envHeaders),
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
logger.error('Failed to parse BRIZZ_HEADERS environment variable', { error });
|
|
70
|
+
throw new Error('Invalid JSON in BRIZZ_HEADERS environment variable');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
logger.debug('Configuration resolved with environment variables', {
|
|
74
|
+
appName: resolvedConfig.appName,
|
|
75
|
+
baseUrl: resolvedConfig.baseUrl,
|
|
76
|
+
hasApiKey: !!resolvedConfig.apiKey,
|
|
77
|
+
disableBatch: resolvedConfig.disableBatch,
|
|
78
|
+
envOverrides: {
|
|
79
|
+
hasEnvApiKey: !!process.env['BRIZZ_API_KEY'],
|
|
80
|
+
hasEnvBaseUrl: !!process.env['BRIZZ_BASE_URL'],
|
|
81
|
+
hasEnvBatch: !!process.env['BRIZZ_DISABLE_BATCH'],
|
|
82
|
+
hasEnvHeaders: !!process.env['BRIZZ_HEADERS'],
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
return resolvedConfig;
|
|
86
|
+
}
|
|
87
|
+
export function processEnvironmentConfig(options) {
|
|
88
|
+
return resolveConfig(options);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/internal/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAcxE,MAAM,UAAU,aAAa,CAAC,OAAgC;IAE5D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,MAAM,CAAC;IAC7F,IAAI,gBAA0B,CAAC;IAC/B,IAAI,WAAW,EAAE,CAAC;QAChB,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChD,gBAAgB,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,gBAAgB,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAG9B,IAAI,aAAqB,CAAC;IAC1B,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7B,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACrC,aAAa,GAAG,UAAU,CAAC;IAC7B,CAAC;SAAM,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/C,aAAa,GAAG,QAAQ,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,aAAa,GAAG,kBAAkB,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;QAChD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;QAC3B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,QAAQ,EAAE,gBAAgB;QAC1B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM;QACvD,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IAGH,IAAI,eAA2C,CAAC;IAChD,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAE7B,eAAe,GAAG;YAChB,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAElE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IACpC,CAAC;IAID,MAAM,cAAc,GAAyB;QAC3C,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,OAAO,IAAI,aAAa;QAC1E,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,OAAO,IAAI,6BAA6B;QAC1F,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;QAC/B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,MAAM;QACtD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY;QACrF,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,cAAc,CAAC,MAAM,EAAE,CAAC;IAC9E,CAAC;IAGD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAA2B,CAAC;YACtF,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE;gBACtD,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;aACjC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE;QAChE,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM;QAClC,YAAY,EAAE,cAAc,CAAC,YAAY;QACzC,YAAY,EAAE;YACZ,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC5C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC9C,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACjD,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;SAC9C;KACF,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACxB,CAAC;AAGD,MAAM,UAAU,wBAAwB,CAAC,OAAgC;IACvE,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-init.d.ts","sourceRoot":"","sources":["../../../src/internal/instrumentation/auto-init.ts"],"names":[],"mappings":"AAyBA,QAAA,IAAI,0BAA0B,SAAQ,CAAC;AAoGvC,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
|
|
2
|
+
import { registerInstrumentations } from '@opentelemetry/instrumentation';
|
|
3
|
+
import { AnthropicInstrumentation } from '@traceloop/instrumentation-anthropic';
|
|
4
|
+
import { BedrockInstrumentation } from '@traceloop/instrumentation-bedrock';
|
|
5
|
+
import { ChromaDBInstrumentation } from '@traceloop/instrumentation-chromadb';
|
|
6
|
+
import { CohereInstrumentation } from '@traceloop/instrumentation-cohere';
|
|
7
|
+
import { LangChainInstrumentation } from '@traceloop/instrumentation-langchain';
|
|
8
|
+
import { LlamaIndexInstrumentation } from '@traceloop/instrumentation-llamaindex';
|
|
9
|
+
import { OpenAIInstrumentation } from '@traceloop/instrumentation-openai';
|
|
10
|
+
import { PineconeInstrumentation } from '@traceloop/instrumentation-pinecone';
|
|
11
|
+
import { QdrantInstrumentation } from '@traceloop/instrumentation-qdrant';
|
|
12
|
+
import { TogetherInstrumentation } from '@traceloop/instrumentation-together';
|
|
13
|
+
import { VertexAIInstrumentation } from '@traceloop/instrumentation-vertexai';
|
|
14
|
+
let autoInstrumentationsLoaded = false;
|
|
15
|
+
function loadNodeAutoInstrumentations() {
|
|
16
|
+
try {
|
|
17
|
+
const nodeInstrumentations = getNodeAutoInstrumentations();
|
|
18
|
+
registerInstrumentations({ instrumentations: nodeInstrumentations });
|
|
19
|
+
return nodeInstrumentations;
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error(`[Brizz] Failed to load Node.js auto-instrumentations: ${String(error)}`);
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function loadGenAIInstrumentations() {
|
|
27
|
+
const { logger } = require('../logger');
|
|
28
|
+
const instrumentations = [];
|
|
29
|
+
const exceptionLogger = (error) => {
|
|
30
|
+
logger.error(`Exception in instrumentation: ${String(error)}`);
|
|
31
|
+
};
|
|
32
|
+
const genAIInstrumentationClasses = [
|
|
33
|
+
{ class: OpenAIInstrumentation, name: 'OpenAI' },
|
|
34
|
+
{ class: AnthropicInstrumentation, name: 'Anthropic' },
|
|
35
|
+
{ class: CohereInstrumentation, name: 'Cohere' },
|
|
36
|
+
{ class: VertexAIInstrumentation, name: 'Vertex AI' },
|
|
37
|
+
{ class: BedrockInstrumentation, name: 'Bedrock' },
|
|
38
|
+
{ class: PineconeInstrumentation, name: 'Pinecone' },
|
|
39
|
+
{ class: LangChainInstrumentation, name: 'LangChain' },
|
|
40
|
+
{ class: LlamaIndexInstrumentation, name: 'LlamaIndex' },
|
|
41
|
+
{ class: ChromaDBInstrumentation, name: 'ChromaDB' },
|
|
42
|
+
{ class: QdrantInstrumentation, name: 'Qdrant' },
|
|
43
|
+
{ class: TogetherInstrumentation, name: 'Together' },
|
|
44
|
+
];
|
|
45
|
+
for (const config of genAIInstrumentationClasses) {
|
|
46
|
+
try {
|
|
47
|
+
const instrumentation = new config.class({ exceptionLogger });
|
|
48
|
+
instrumentations.push(instrumentation);
|
|
49
|
+
logger.debug(`Auto-loaded ${config.name} instrumentation`);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
logger.error(`Failed to auto-load ${config.name} instrumentation: ${String(error)}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
registerInstrumentations({ instrumentations });
|
|
57
|
+
logger.info(`Auto-registered ${instrumentations.length} GenAI instrumentations`);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
logger.error(`Failed to register GenAI instrumentations: ${String(error)}`);
|
|
61
|
+
}
|
|
62
|
+
return instrumentations;
|
|
63
|
+
}
|
|
64
|
+
function autoInitializeInstrumentations() {
|
|
65
|
+
if (autoInstrumentationsLoaded) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
const nodeInstrumentations = loadNodeAutoInstrumentations();
|
|
70
|
+
const genAIInstrumentations = loadGenAIInstrumentations();
|
|
71
|
+
autoInstrumentationsLoaded = true;
|
|
72
|
+
const { logger } = require('../logger');
|
|
73
|
+
logger.info(`Auto-initialization complete: ${nodeInstrumentations.length} node + ${genAIInstrumentations.length} GenAI instrumentations`);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
console.error(`[Brizz] Auto-initialization failed: ${String(error)}`);
|
|
77
|
+
autoInstrumentationsLoaded = false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
autoInitializeInstrumentations();
|
|
81
|
+
export { autoInstrumentationsLoaded };
|
|
82
|
+
//# sourceMappingURL=auto-init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-init.js","sourceRoot":"","sources":["../../../src/internal/instrumentation/auto-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/instrumentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/instrumentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA2B,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Instrumentation } from '@opentelemetry/instrumentation';
|
|
2
|
+
export interface IInstrumentModules {
|
|
3
|
+
openAI?: unknown;
|
|
4
|
+
anthropic?: unknown;
|
|
5
|
+
cohere?: unknown;
|
|
6
|
+
google_vertexai?: unknown;
|
|
7
|
+
google_aiplatform?: unknown;
|
|
8
|
+
bedrock?: unknown;
|
|
9
|
+
pinecone?: unknown;
|
|
10
|
+
langchain?: {
|
|
11
|
+
chains?: unknown;
|
|
12
|
+
agents?: unknown;
|
|
13
|
+
tools?: unknown;
|
|
14
|
+
};
|
|
15
|
+
llamaindex?: unknown;
|
|
16
|
+
chromadb?: unknown;
|
|
17
|
+
qdrant?: unknown;
|
|
18
|
+
together?: unknown;
|
|
19
|
+
}
|
|
20
|
+
export declare class InstrumentationRegistry {
|
|
21
|
+
private static instance;
|
|
22
|
+
private manualModules;
|
|
23
|
+
static getInstance(): InstrumentationRegistry;
|
|
24
|
+
setManualModules(modules: IInstrumentModules): void;
|
|
25
|
+
private loadInstrumentation;
|
|
26
|
+
getManualInstrumentations(): Instrumentation[];
|
|
27
|
+
private loadManualInstrumentations;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/internal/instrumentation/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAkBtE,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAQD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,aAAa,CAAmC;WAE1C,WAAW,IAAI,uBAAuB;IAU7C,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAQ1D,OAAO,CAAC,mBAAmB;IA4BpB,yBAAyB,IAAI,eAAe,EAAE;IAqBrD,OAAO,CAAC,0BAA0B;CAyCnC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { AnthropicInstrumentation } from '@traceloop/instrumentation-anthropic';
|
|
2
|
+
import { BedrockInstrumentation } from '@traceloop/instrumentation-bedrock';
|
|
3
|
+
import { ChromaDBInstrumentation } from '@traceloop/instrumentation-chromadb';
|
|
4
|
+
import { CohereInstrumentation } from '@traceloop/instrumentation-cohere';
|
|
5
|
+
import { LangChainInstrumentation } from '@traceloop/instrumentation-langchain';
|
|
6
|
+
import { LlamaIndexInstrumentation } from '@traceloop/instrumentation-llamaindex';
|
|
7
|
+
import { OpenAIInstrumentation } from '@traceloop/instrumentation-openai';
|
|
8
|
+
import { PineconeInstrumentation } from '@traceloop/instrumentation-pinecone';
|
|
9
|
+
import { QdrantInstrumentation } from '@traceloop/instrumentation-qdrant';
|
|
10
|
+
import { TogetherInstrumentation } from '@traceloop/instrumentation-together';
|
|
11
|
+
import { VertexAIInstrumentation } from '@traceloop/instrumentation-vertexai';
|
|
12
|
+
import { logger } from '../logger';
|
|
13
|
+
export class InstrumentationRegistry {
|
|
14
|
+
static instance;
|
|
15
|
+
manualModules = null;
|
|
16
|
+
static getInstance() {
|
|
17
|
+
if (!InstrumentationRegistry.instance) {
|
|
18
|
+
InstrumentationRegistry.instance = new InstrumentationRegistry();
|
|
19
|
+
}
|
|
20
|
+
return InstrumentationRegistry.instance;
|
|
21
|
+
}
|
|
22
|
+
setManualModules(modules) {
|
|
23
|
+
this.manualModules = modules;
|
|
24
|
+
logger.info('Manual instrumentation modules configured for Next.js/Webpack compatibility');
|
|
25
|
+
}
|
|
26
|
+
loadInstrumentation(InstrumentationClass, name, manualModule, exceptionLogger) {
|
|
27
|
+
try {
|
|
28
|
+
const inst = new InstrumentationClass({
|
|
29
|
+
exceptionLogger: exceptionLogger ||
|
|
30
|
+
((error) => logger.error(`Exception in instrumentation: ${String(error)}`)),
|
|
31
|
+
});
|
|
32
|
+
if (manualModule) {
|
|
33
|
+
inst.manuallyInstrument(manualModule);
|
|
34
|
+
logger.debug(`Manual instrumentation enabled for ${name}`);
|
|
35
|
+
}
|
|
36
|
+
return inst;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
logger.error(`Failed to load ${name} instrumentation: ${String(error)}`);
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
getManualInstrumentations() {
|
|
44
|
+
if (!this.manualModules || Object.keys(this.manualModules).length === 0) {
|
|
45
|
+
logger.debug('No manual instrumentation modules configured');
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
const instrumentations = [];
|
|
49
|
+
const exceptionLogger = (error) => {
|
|
50
|
+
logger.error(`Exception in manual instrumentation: ${String(error)}`);
|
|
51
|
+
};
|
|
52
|
+
this.loadManualInstrumentations(instrumentations, exceptionLogger);
|
|
53
|
+
logger.info(`Loaded ${instrumentations.length} manual instrumentations`);
|
|
54
|
+
return instrumentations;
|
|
55
|
+
}
|
|
56
|
+
loadManualInstrumentations(instrumentations, exceptionLogger) {
|
|
57
|
+
const instrumentationConfigs = [
|
|
58
|
+
{ class: OpenAIInstrumentation, name: 'OpenAI', module: this.manualModules?.openAI },
|
|
59
|
+
{ class: AnthropicInstrumentation, name: 'Anthropic', module: this.manualModules?.anthropic },
|
|
60
|
+
{ class: CohereInstrumentation, name: 'Cohere', module: this.manualModules?.cohere },
|
|
61
|
+
{
|
|
62
|
+
class: VertexAIInstrumentation,
|
|
63
|
+
name: 'Vertex AI',
|
|
64
|
+
module: this.manualModules?.google_vertexai,
|
|
65
|
+
},
|
|
66
|
+
{ class: BedrockInstrumentation, name: 'Bedrock', module: this.manualModules?.bedrock },
|
|
67
|
+
{ class: PineconeInstrumentation, name: 'Pinecone', module: this.manualModules?.pinecone },
|
|
68
|
+
{ class: LangChainInstrumentation, name: 'LangChain', module: this.manualModules?.langchain },
|
|
69
|
+
{
|
|
70
|
+
class: LlamaIndexInstrumentation,
|
|
71
|
+
name: 'LlamaIndex',
|
|
72
|
+
module: this.manualModules?.llamaindex,
|
|
73
|
+
},
|
|
74
|
+
{ class: ChromaDBInstrumentation, name: 'ChromaDB', module: this.manualModules?.chromadb },
|
|
75
|
+
{ class: QdrantInstrumentation, name: 'Qdrant', module: this.manualModules?.qdrant },
|
|
76
|
+
{ class: TogetherInstrumentation, name: 'Together', module: this.manualModules?.together },
|
|
77
|
+
];
|
|
78
|
+
for (const config of instrumentationConfigs) {
|
|
79
|
+
if (config.module) {
|
|
80
|
+
const instrumentation = this.loadInstrumentation(config.class, config.name, config.module, exceptionLogger);
|
|
81
|
+
if (instrumentation) {
|
|
82
|
+
instrumentations.push(instrumentation);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/internal/instrumentation/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/log/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/log/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { LogBody } from '@opentelemetry/api-logs';
|
|
2
|
+
import { SeverityNumber } from '@opentelemetry/api-logs';
|
|
3
|
+
import { LoggerProvider } from '@opentelemetry/sdk-logs';
|
|
4
|
+
import type { IResolvedBrizzConfig } from '../config';
|
|
5
|
+
export declare class LoggingModule {
|
|
6
|
+
private static instance;
|
|
7
|
+
private logExporter;
|
|
8
|
+
private logProcessor;
|
|
9
|
+
private loggerProvider;
|
|
10
|
+
static getInstance(): LoggingModule;
|
|
11
|
+
setup(config: IResolvedBrizzConfig): void;
|
|
12
|
+
private initLogExporter;
|
|
13
|
+
private initLogProcessor;
|
|
14
|
+
private initLoggerProvider;
|
|
15
|
+
emitEvent(name: string, attributes?: Record<string, string | number | boolean>, body?: LogBody, severityNumber?: SeverityNumber): void;
|
|
16
|
+
isInitialized(): boolean;
|
|
17
|
+
getLoggerProvider(): LoggerProvider | null;
|
|
18
|
+
shutdown(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export declare function emitEvent(name: string, attributes?: Record<string, string | number | boolean>, body?: LogBody, severityNumber?: SeverityNumber): void;
|
|
21
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../../src/internal/log/logging.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EACL,cAAc,EAGf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAOtD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IACrD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,cAAc,CAA+B;IAErD,MAAM,CAAC,WAAW,IAAI,aAAa;IAUnC,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAqBzC,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,kBAAkB;IA8B1B,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACtD,IAAI,CAAC,EAAE,OAAO,EACd,cAAc,GAAE,cAAoC,GACnD,IAAI;IAoDP,aAAa,IAAI,OAAO;IAOxB,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAOpC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBhC;AAMD,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACtD,IAAI,CAAC,EAAE,OAAO,EACd,cAAc,GAAE,cAAoC,GACnD,IAAI,CAEN"}
|