@xylabs/telemetry-exporter 5.0.80 → 5.0.81

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/README.md CHANGED
@@ -46,16 +46,16 @@ Base functionality used throughout XY Labs TypeScript/JavaScript libraries
46
46
  ### Constructor
47
47
 
48
48
  ```ts
49
- new XyConsoleSpanExporter(logLevel, logger): XyConsoleSpanExporter;
49
+ new XyConsoleSpanExporter(logLevel?, logger?): XyConsoleSpanExporter;
50
50
  ```
51
51
 
52
52
  ### Parameters
53
53
 
54
- #### logLevel
54
+ #### logLevel?
55
55
 
56
56
  `number` = `0`
57
57
 
58
- #### logger
58
+ #### logger?
59
59
 
60
60
  `Logger` = `console`
61
61
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/telemetry-exporter",
3
- "version": "5.0.80",
3
+ "version": "5.0.81",
4
4
  "description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
5
5
  "keywords": [
6
6
  "hex",
@@ -29,31 +29,32 @@
29
29
  "exports": {
30
30
  ".": {
31
31
  "types": "./dist/neutral/index.d.ts",
32
- "source": "./src/index.ts",
33
32
  "default": "./dist/neutral/index.mjs"
34
33
  },
35
34
  "./package.json": "./package.json"
36
35
  },
37
36
  "module": "./dist/neutral/index.mjs",
38
- "source": "./src/index.ts",
39
37
  "types": "./dist/neutral/index.d.ts",
40
38
  "files": [
41
39
  "dist",
42
- "src",
43
40
  "!**/*.bench.*",
44
41
  "!**/*.spec.*",
45
42
  "!**/*.test.*"
46
43
  ],
47
44
  "dependencies": {
48
- "@opentelemetry/api": "^1.9.0",
49
- "@opentelemetry/sdk-trace-base": "^2.5.0",
50
- "@xylabs/logger": "~5.0.80",
45
+ "@opentelemetry/sdk-trace-base": "^2.6.0",
46
+ "@xylabs/logger": "~5.0.81",
51
47
  "chalk": "~5.6.2"
52
48
  },
53
49
  "devDependencies": {
54
- "@xylabs/ts-scripts-yarn3": "~7.3.2",
55
- "@xylabs/tsconfig": "~7.3.2",
56
- "typescript": "~5.9.3"
50
+ "@opentelemetry/api": "^1.9.0",
51
+ "@xylabs/ts-scripts-yarn3": "~7.4.11",
52
+ "@xylabs/tsconfig": "~7.4.11",
53
+ "typescript": "~5.9.3",
54
+ "vitest": "^4.0.18"
55
+ },
56
+ "peerDependencies": {
57
+ "@opentelemetry/api": "^1"
57
58
  },
58
59
  "engines": {
59
60
  "node": ">=18"
@@ -1,70 +0,0 @@
1
- import type { ReadableSpan } from '@opentelemetry/sdk-trace-base'
2
- import { ConsoleSpanExporter } from '@opentelemetry/sdk-trace-base'
3
- import type { Logger } from '@xylabs/logger'
4
- import chalk from 'chalk'
5
-
6
- export function spanDurationInMillis(span: ReadableSpan) {
7
- return span.duration[0] * 1000 + span.duration[1] / 1e6
8
- }
9
-
10
- export class XyConsoleSpanExporter extends ConsoleSpanExporter {
11
- static readonly durationToLogLevel = [
12
- 0,
13
- 1,
14
- 10,
15
- 100,
16
- 1000,
17
- ]
18
-
19
- static readonly logLevelToChalkColor = [
20
- chalk.grey,
21
- chalk.white,
22
- chalk.green,
23
- chalk.yellow,
24
- chalk.red,
25
- ]
26
-
27
- logger: Logger
28
- private _logLevel: number
29
-
30
- constructor(logLevel = 0, logger: Logger = console) {
31
- super()
32
- this._logLevel = logLevel
33
- this.logger = logger
34
- }
35
-
36
- get logLevel() {
37
- return this._logLevel
38
- }
39
-
40
- override export(spans: ReadableSpan[]): void {
41
- for (const span of spans) {
42
- const spanLevel = this.spanLevel(span)
43
- if (spanLevel < this.logLevel) {
44
- continue
45
- }
46
- const duration = spanDurationInMillis(span)
47
- this.logger.log(chalk.grey([
48
- `Span [${span.name}]`,
49
- this.logColor(spanLevel)(`${duration}ms`),
50
- `TraceId: ${span.spanContext().traceId}`,
51
- ].join(', ')))
52
- }
53
- }
54
-
55
- logColor(level: number) {
56
- return XyConsoleSpanExporter.logLevelToChalkColor[level] ?? chalk.magenta
57
- }
58
-
59
- spanLevel(span: ReadableSpan) {
60
- let logLevel = 0
61
- const duration = spanDurationInMillis(span)
62
- for (let x = XyConsoleSpanExporter.durationToLogLevel.length - 1; x >= 0; x--) {
63
- if (duration > XyConsoleSpanExporter.durationToLogLevel[x]) {
64
- logLevel = x
65
- break
66
- }
67
- }
68
- return logLevel
69
- }
70
- }
package/src/index.ts DELETED
@@ -1 +0,0 @@
1
- export * from './XyConsoleSpanExporter.ts'