@bsb/observable-opentelemetry 9.1.2 → 9.6.12

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
@@ -5,7 +5,7 @@ OpenTelemetry observable plugin for BSB with full OTLP export support for traces
5
5
  ## Key Features
6
6
 
7
7
  - Full OpenTelemetry integration for traces, metrics, and logs
8
- - OTLP export over HTTP and gRPC protocols
8
+ - OTLP export over HTTP
9
9
  - Customizable resource attributes for service metadata
10
10
  - Configurable sampling to control trace collection rates
11
11
  - Efficient batch processing for data export
@@ -50,7 +50,7 @@ plugins:
50
50
  | `serviceName` | Name of your service | - |
51
51
  | `serviceVersion` | Version of your service | - |
52
52
  | `endpoint` | OTLP collector endpoint URL | `http://localhost:4318` |
53
- | `export.protocol` | Export protocol: `http` or `grpc` | `http` |
53
+ | `export.protocol` | Export protocol setting; current exporter implementation uses `http` | `http` |
54
54
  | `export.interval` | Export interval in milliseconds | `5000` |
55
55
  | `export.maxBatchSize` | Maximum batch size for exports | `512` |
56
56
  | `enabled` | Toggle traces, metrics, and logs individually | All enabled |
@@ -26,65 +26,65 @@
26
26
  */
27
27
  import { BSBObservable, BSBObservableConstructor, BSBError } from "@bsb/base";
28
28
  import { DTrace, LogMeta } from "@bsb/base";
29
- import * as av from "@anyvali/js";
29
+ import * as av from "anyvali";
30
30
  /**
31
31
  * Configuration schema for OpenTelemetry plugin
32
32
  */
33
33
  export declare const OpenTelemetryConfigSchema: av.ObjectSchema<{
34
- serviceName: av.OptionalSchema<av.StringSchema>;
34
+ serviceName: av.StringSchema;
35
35
  serviceVersion: av.OptionalSchema<av.StringSchema>;
36
- endpoint: av.OptionalSchema<av.StringSchema>;
36
+ endpoint: av.StringSchema;
37
37
  export: av.ObjectSchema<{
38
- protocol: av.OptionalSchema<av.EnumSchema<string[]>>;
39
- interval: av.OptionalSchema<av.Int32Schema>;
40
- maxBatchSize: av.OptionalSchema<av.Int32Schema>;
38
+ protocol: av.EnumSchema<string[]>;
39
+ interval: av.Int32Schema;
40
+ maxBatchSize: av.Int32Schema;
41
41
  }>;
42
42
  enabled: av.ObjectSchema<{
43
- traces: av.OptionalSchema<av.BoolSchema>;
44
- metrics: av.OptionalSchema<av.BoolSchema>;
45
- logs: av.OptionalSchema<av.BoolSchema>;
43
+ traces: av.BoolSchema;
44
+ metrics: av.BoolSchema;
45
+ logs: av.BoolSchema;
46
46
  }>;
47
- resourceAttributes: av.OptionalSchema<av.RecordSchema<av.StringSchema>>;
48
- samplingRate: av.OptionalSchema<av.NumberSchema>;
47
+ resourceAttributes: av.RecordSchema<av.StringSchema>;
48
+ samplingRate: av.NumberSchema;
49
49
  }>;
50
50
  export type OpenTelemetryConfig = av.Infer<typeof OpenTelemetryConfigSchema>;
51
51
  export declare const Config: import("@bsb/base").BSBPluginConfigClass<av.ObjectSchema<{
52
- serviceName: av.OptionalSchema<av.StringSchema>;
52
+ serviceName: av.StringSchema;
53
53
  serviceVersion: av.OptionalSchema<av.StringSchema>;
54
- endpoint: av.OptionalSchema<av.StringSchema>;
54
+ endpoint: av.StringSchema;
55
55
  export: av.ObjectSchema<{
56
- protocol: av.OptionalSchema<av.EnumSchema<string[]>>;
57
- interval: av.OptionalSchema<av.Int32Schema>;
58
- maxBatchSize: av.OptionalSchema<av.Int32Schema>;
56
+ protocol: av.EnumSchema<string[]>;
57
+ interval: av.Int32Schema;
58
+ maxBatchSize: av.Int32Schema;
59
59
  }>;
60
60
  enabled: av.ObjectSchema<{
61
- traces: av.OptionalSchema<av.BoolSchema>;
62
- metrics: av.OptionalSchema<av.BoolSchema>;
63
- logs: av.OptionalSchema<av.BoolSchema>;
61
+ traces: av.BoolSchema;
62
+ metrics: av.BoolSchema;
63
+ logs: av.BoolSchema;
64
64
  }>;
65
- resourceAttributes: av.OptionalSchema<av.RecordSchema<av.StringSchema>>;
66
- samplingRate: av.OptionalSchema<av.NumberSchema>;
65
+ resourceAttributes: av.RecordSchema<av.StringSchema>;
66
+ samplingRate: av.NumberSchema;
67
67
  }>>;
68
68
  /**
69
69
  * OpenTelemetry observable plugin with OTLP export
70
70
  */
71
71
  export declare class Plugin extends BSBObservable<InstanceType<typeof Config>> {
72
72
  static Config: import("@bsb/base").BSBPluginConfigClass<av.ObjectSchema<{
73
- serviceName: av.OptionalSchema<av.StringSchema>;
73
+ serviceName: av.StringSchema;
74
74
  serviceVersion: av.OptionalSchema<av.StringSchema>;
75
- endpoint: av.OptionalSchema<av.StringSchema>;
75
+ endpoint: av.StringSchema;
76
76
  export: av.ObjectSchema<{
77
- protocol: av.OptionalSchema<av.EnumSchema<string[]>>;
78
- interval: av.OptionalSchema<av.Int32Schema>;
79
- maxBatchSize: av.OptionalSchema<av.Int32Schema>;
77
+ protocol: av.EnumSchema<string[]>;
78
+ interval: av.Int32Schema;
79
+ maxBatchSize: av.Int32Schema;
80
80
  }>;
81
81
  enabled: av.ObjectSchema<{
82
- traces: av.OptionalSchema<av.BoolSchema>;
83
- metrics: av.OptionalSchema<av.BoolSchema>;
84
- logs: av.OptionalSchema<av.BoolSchema>;
82
+ traces: av.BoolSchema;
83
+ metrics: av.BoolSchema;
84
+ logs: av.BoolSchema;
85
85
  }>;
86
- resourceAttributes: av.OptionalSchema<av.RecordSchema<av.StringSchema>>;
87
- samplingRate: av.OptionalSchema<av.NumberSchema>;
86
+ resourceAttributes: av.RecordSchema<av.StringSchema>;
87
+ samplingRate: av.NumberSchema;
88
88
  }>>;
89
89
  private logFormatter;
90
90
  private sdk;
@@ -118,8 +118,8 @@ export declare class Plugin extends BSBObservable<InstanceType<typeof Config>> {
118
118
  setGauge(timestamp: number, pluginName: string, name: string, value: number, labels?: Record<string, string>): void;
119
119
  createHistogram(timestamp: number, pluginName: string, name: string, description: string, help: string, boundaries?: number[], labels?: string[]): void;
120
120
  observeHistogram(timestamp: number, pluginName: string, name: string, value: number, labels?: Record<string, string>): void;
121
- spanStart(trace: DTrace, pluginName: string, spanName: string, parentSpanId: string | null, attributes?: Record<string, string | number | boolean>): void;
122
- spanEnd(trace: DTrace, pluginName: string, attributes?: Record<string, string | number | boolean>): void;
123
- spanError(trace: DTrace, pluginName: string, error: Error, attributes?: Record<string, string | number | boolean>): void;
121
+ spanStart(timestamp: number, trace: DTrace, pluginName: string, spanName: string, parentSpanId: string | null, attributes?: Record<string, string | number | boolean>): void;
122
+ spanEnd(timestamp: number, trace: DTrace, pluginName: string, attributes?: Record<string, string | number | boolean>): void;
123
+ spanError(timestamp: number, trace: DTrace, pluginName: string, error: Error, attributes?: Record<string, string | number | boolean>): void;
124
124
  dispose(): Promise<void>;
125
125
  }
@@ -25,9 +25,9 @@
25
25
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
26
26
  */
27
27
  import { BSBObservable, createConfigSchema, LogFormatter, BSBError } from "@bsb/base";
28
- import * as av from "@anyvali/js";
28
+ import * as av from "anyvali";
29
29
  import * as api from "@opentelemetry/api";
30
- import { Resource } from "@opentelemetry/resources";
30
+ import { resourceFromAttributes } from "@opentelemetry/resources";
31
31
  import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
32
32
  import { NodeSDK } from "@opentelemetry/sdk-node";
33
33
  import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
@@ -39,26 +39,25 @@ import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs
39
39
  * Configuration schema for OpenTelemetry plugin
40
40
  */
41
41
  export const OpenTelemetryConfigSchema = av.object({
42
- serviceName: av.optional(av.string()).default("bsb-service"),
43
- serviceVersion: av.optional(av.string()),
44
- endpoint: av.optional(av.string().format("url")).default("http://localhost:4318"),
42
+ serviceName: av.string().default("bsb-service").describe("Service name reported through OpenTelemetry resource attributes"),
43
+ serviceVersion: av.optional(av.string()).describe("Optional service version reported through OpenTelemetry resource attributes"),
44
+ endpoint: av.string().format("url").default("http://localhost:4318").describe("OTLP collector endpoint base URL"),
45
45
  export: av.object({
46
- protocol: av.optional(av.enum_(["http", "grpc"])).default("http"),
47
- interval: av.optional(av.int32().min(100)).default(5000),
48
- maxBatchSize: av.optional(av.int32().min(1)).default(512),
49
- }, { unknownKeys: "strip" }),
46
+ protocol: av.enum_(["http"]).default("http").describe("OTLP HTTP transport protocol setting"),
47
+ interval: av.int32().min(100).default(5000).describe("Metric export interval in milliseconds"),
48
+ maxBatchSize: av.int32().min(1).default(512).describe("Maximum number of telemetry items sent in one export batch"),
49
+ }).describe("OpenTelemetry export settings"),
50
50
  enabled: av.object({
51
- traces: av.optional(av.bool()).default(true),
52
- metrics: av.optional(av.bool()).default(true),
53
- logs: av.optional(av.bool()).default(true),
54
- }, { unknownKeys: "strip" }),
55
- resourceAttributes: av.optional(av.record(av.string())).default({}),
56
- samplingRate: av.optional(av.number().min(0).max(1)).default(1.0),
57
- }, { unknownKeys: "strip" });
51
+ traces: av.bool().default(true).describe("Whether trace export is enabled"),
52
+ metrics: av.bool().default(true).describe("Whether metric export is enabled"),
53
+ logs: av.bool().default(true).describe("Whether log export is enabled"),
54
+ }).describe("Telemetry signal enablement"),
55
+ resourceAttributes: av.record(av.string()).default({}).describe("Additional OpenTelemetry resource attributes attached to exported telemetry"),
56
+ samplingRate: av.number().min(0).max(1).default(1.0).describe("Trace sampling rate from 0.0 to 1.0"),
57
+ }).describe("OpenTelemetry observable plugin configuration");
58
58
  export const Config = createConfigSchema({
59
59
  name: 'observable-opentelemetry',
60
60
  description: 'OpenTelemetry integration for logs, metrics, and traces via OTLP',
61
- version: '9.0.0',
62
61
  image: './observable-opentelemetry.png',
63
62
  tags: ['opentelemetry', 'otlp', 'observability', 'logs', 'metrics', 'traces'],
64
63
  documentation: ['./docs/plugin.md'],
@@ -124,7 +123,7 @@ export class Plugin extends BSBObservable {
124
123
  }
125
124
  async init() {
126
125
  // Create resource with service information
127
- const resource = new Resource({
126
+ const resource = resourceFromAttributes({
128
127
  [ATTR_SERVICE_NAME]: this.config.serviceName,
129
128
  ...(this.config.serviceVersion && { [ATTR_SERVICE_VERSION]: this.config.serviceVersion }),
130
129
  ...this.config.resourceAttributes,
@@ -151,17 +150,23 @@ export class Plugin extends BSBObservable {
151
150
  }
152
151
  // Setup metrics separately
153
152
  if (this.config.enabled.metrics) {
154
- const meterProvider = new MeterProvider({ resource });
155
- meterProvider.addMetricReader(new PeriodicExportingMetricReader({
156
- exporter: metricExporter,
157
- exportIntervalMillis: this.config.export.interval,
158
- }));
153
+ const meterProvider = new MeterProvider({
154
+ resource,
155
+ readers: [
156
+ new PeriodicExportingMetricReader({
157
+ exporter: metricExporter,
158
+ exportIntervalMillis: this.config.export.interval,
159
+ }),
160
+ ],
161
+ });
159
162
  this.meter = meterProvider.getMeter(this.config.serviceName, this.config.serviceVersion);
160
163
  }
161
164
  // Setup logs separately
162
165
  if (this.config.enabled.logs) {
163
- this.loggerProvider = new LoggerProvider({ resource });
164
- this.loggerProvider.addLogRecordProcessor(new BatchLogRecordProcessor(logExporter));
166
+ this.loggerProvider = new LoggerProvider({
167
+ resource,
168
+ processors: [new BatchLogRecordProcessor(logExporter)],
169
+ });
165
170
  this.logger = this.loggerProvider.getLogger(this.config.serviceName, this.config.serviceVersion);
166
171
  }
167
172
  }
@@ -299,12 +304,13 @@ export class Plugin extends BSBObservable {
299
304
  }
300
305
  }
301
306
  // Tracing methods
302
- spanStart(trace, pluginName, spanName, parentSpanId, attributes) {
307
+ spanStart(timestamp, trace, pluginName, spanName, parentSpanId, attributes) {
303
308
  if (!this.tracer || this.isDisposed) {
304
309
  return;
305
310
  }
306
311
  const context = this.getTraceContext(trace);
307
312
  const span = this.tracer.startSpan(spanName, {
313
+ startTime: timestamp,
308
314
  attributes: {
309
315
  "bsb.plugin": pluginName,
310
316
  ...(parentSpanId ? { "bsb.parent_span_id": parentSpanId } : {}),
@@ -314,7 +320,7 @@ export class Plugin extends BSBObservable {
314
320
  const spanKey = `${trace.t}:${trace.s}`;
315
321
  this.spans.set(spanKey, span);
316
322
  }
317
- spanEnd(trace, pluginName, attributes) {
323
+ spanEnd(timestamp, trace, pluginName, attributes) {
318
324
  if (this.isDisposed) {
319
325
  return;
320
326
  }
@@ -324,18 +330,18 @@ export class Plugin extends BSBObservable {
324
330
  if (attributes) {
325
331
  span.setAttributes(attributes);
326
332
  }
327
- span.end();
333
+ span.end(timestamp);
328
334
  this.spans.delete(spanKey);
329
335
  }
330
336
  }
331
- spanError(trace, pluginName, error, attributes) {
337
+ spanError(timestamp, trace, pluginName, error, attributes) {
332
338
  if (this.isDisposed) {
333
339
  return;
334
340
  }
335
341
  const spanKey = `${trace.t}:${trace.s}`;
336
342
  const span = this.spans.get(spanKey);
337
343
  if (span) {
338
- span.recordException(error);
344
+ span.recordException(error, timestamp);
339
345
  span.setStatus({ code: api.SpanStatusCode.ERROR, message: error.message });
340
346
  if (attributes) {
341
347
  span.setAttributes(attributes);
@@ -1,7 +1,148 @@
1
1
  {
2
2
  "pluginName": "observable-opentelemetry",
3
- "version": "9.0.0",
4
3
  "events": {},
4
+ "version": "9.6.12",
5
+ "configSchema": {
6
+ "anyvaliVersion": "1.0",
7
+ "schemaVersion": "1.1",
8
+ "root": {
9
+ "kind": "object",
10
+ "properties": {
11
+ "serviceName": {
12
+ "kind": "string",
13
+ "default": "bsb-service",
14
+ "metadata": {
15
+ "description": "Service name reported through OpenTelemetry resource attributes"
16
+ }
17
+ },
18
+ "serviceVersion": {
19
+ "kind": "optional",
20
+ "inner": {
21
+ "kind": "string"
22
+ },
23
+ "metadata": {
24
+ "description": "Optional service version reported through OpenTelemetry resource attributes"
25
+ }
26
+ },
27
+ "endpoint": {
28
+ "kind": "string",
29
+ "format": "url",
30
+ "default": "http://localhost:4318",
31
+ "metadata": {
32
+ "description": "OTLP collector endpoint base URL"
33
+ }
34
+ },
35
+ "export": {
36
+ "kind": "object",
37
+ "properties": {
38
+ "protocol": {
39
+ "kind": "enum",
40
+ "values": [
41
+ "http"
42
+ ],
43
+ "default": "http",
44
+ "metadata": {
45
+ "description": "OTLP HTTP transport protocol setting"
46
+ }
47
+ },
48
+ "interval": {
49
+ "kind": "int32",
50
+ "min": 100,
51
+ "default": 5000,
52
+ "metadata": {
53
+ "description": "Metric export interval in milliseconds"
54
+ }
55
+ },
56
+ "maxBatchSize": {
57
+ "kind": "int32",
58
+ "min": 1,
59
+ "default": 512,
60
+ "metadata": {
61
+ "description": "Maximum number of telemetry items sent in one export batch"
62
+ }
63
+ }
64
+ },
65
+ "required": [
66
+ "protocol",
67
+ "interval",
68
+ "maxBatchSize"
69
+ ],
70
+ "unknownKeys": "strip",
71
+ "metadata": {
72
+ "description": "OpenTelemetry export settings"
73
+ }
74
+ },
75
+ "enabled": {
76
+ "kind": "object",
77
+ "properties": {
78
+ "traces": {
79
+ "kind": "bool",
80
+ "default": true,
81
+ "metadata": {
82
+ "description": "Whether trace export is enabled"
83
+ }
84
+ },
85
+ "metrics": {
86
+ "kind": "bool",
87
+ "default": true,
88
+ "metadata": {
89
+ "description": "Whether metric export is enabled"
90
+ }
91
+ },
92
+ "logs": {
93
+ "kind": "bool",
94
+ "default": true,
95
+ "metadata": {
96
+ "description": "Whether log export is enabled"
97
+ }
98
+ }
99
+ },
100
+ "required": [
101
+ "traces",
102
+ "metrics",
103
+ "logs"
104
+ ],
105
+ "unknownKeys": "strip",
106
+ "metadata": {
107
+ "description": "Telemetry signal enablement"
108
+ }
109
+ },
110
+ "resourceAttributes": {
111
+ "kind": "record",
112
+ "valueSchema": {
113
+ "kind": "string"
114
+ },
115
+ "default": {},
116
+ "metadata": {
117
+ "description": "Additional OpenTelemetry resource attributes attached to exported telemetry"
118
+ }
119
+ },
120
+ "samplingRate": {
121
+ "kind": "number",
122
+ "min": 0,
123
+ "max": 1,
124
+ "default": 1,
125
+ "metadata": {
126
+ "description": "Trace sampling rate from 0.0 to 1.0"
127
+ }
128
+ }
129
+ },
130
+ "required": [
131
+ "serviceName",
132
+ "endpoint",
133
+ "export",
134
+ "enabled",
135
+ "resourceAttributes",
136
+ "samplingRate"
137
+ ],
138
+ "unknownKeys": "strip",
139
+ "metadata": {
140
+ "description": "OpenTelemetry observable plugin configuration"
141
+ }
142
+ },
143
+ "definitions": {},
144
+ "extensions": {}
145
+ },
5
146
  "pluginType": "observable",
6
147
  "capabilities": {
7
148
  "logging": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "observable-opentelemetry",
3
3
  "name": "observable-opentelemetry",
4
- "version": "9.0.0",
4
+ "version": "9.6.12",
5
5
  "description": "OpenTelemetry integration for logs, metrics, and traces via OTLP",
6
6
  "category": "observable",
7
7
  "tags": [
@@ -16,5 +16,152 @@
16
16
  "./docs/plugin.md"
17
17
  ],
18
18
  "dependencies": [],
19
- "image": "./observable-opentelemetry.png"
19
+ "author": {
20
+ "name": "BetterCorp (PTY) Ltd",
21
+ "email": "ninja@bettercorp.dev",
22
+ "url": "https://bettercorp.dev/"
23
+ },
24
+ "license": "(AGPL-3.0-only OR Commercial)",
25
+ "image": "./observable-opentelemetry.png",
26
+ "configSchema": {
27
+ "anyvaliVersion": "1.0",
28
+ "schemaVersion": "1.1",
29
+ "root": {
30
+ "kind": "object",
31
+ "properties": {
32
+ "serviceName": {
33
+ "kind": "string",
34
+ "default": "bsb-service",
35
+ "metadata": {
36
+ "description": "Service name reported through OpenTelemetry resource attributes"
37
+ }
38
+ },
39
+ "serviceVersion": {
40
+ "kind": "optional",
41
+ "inner": {
42
+ "kind": "string"
43
+ },
44
+ "metadata": {
45
+ "description": "Optional service version reported through OpenTelemetry resource attributes"
46
+ }
47
+ },
48
+ "endpoint": {
49
+ "kind": "string",
50
+ "format": "url",
51
+ "default": "http://localhost:4318",
52
+ "metadata": {
53
+ "description": "OTLP collector endpoint base URL"
54
+ }
55
+ },
56
+ "export": {
57
+ "kind": "object",
58
+ "properties": {
59
+ "protocol": {
60
+ "kind": "enum",
61
+ "values": [
62
+ "http"
63
+ ],
64
+ "default": "http",
65
+ "metadata": {
66
+ "description": "OTLP HTTP transport protocol setting"
67
+ }
68
+ },
69
+ "interval": {
70
+ "kind": "int32",
71
+ "min": 100,
72
+ "default": 5000,
73
+ "metadata": {
74
+ "description": "Metric export interval in milliseconds"
75
+ }
76
+ },
77
+ "maxBatchSize": {
78
+ "kind": "int32",
79
+ "min": 1,
80
+ "default": 512,
81
+ "metadata": {
82
+ "description": "Maximum number of telemetry items sent in one export batch"
83
+ }
84
+ }
85
+ },
86
+ "required": [
87
+ "protocol",
88
+ "interval",
89
+ "maxBatchSize"
90
+ ],
91
+ "unknownKeys": "strip",
92
+ "metadata": {
93
+ "description": "OpenTelemetry export settings"
94
+ }
95
+ },
96
+ "enabled": {
97
+ "kind": "object",
98
+ "properties": {
99
+ "traces": {
100
+ "kind": "bool",
101
+ "default": true,
102
+ "metadata": {
103
+ "description": "Whether trace export is enabled"
104
+ }
105
+ },
106
+ "metrics": {
107
+ "kind": "bool",
108
+ "default": true,
109
+ "metadata": {
110
+ "description": "Whether metric export is enabled"
111
+ }
112
+ },
113
+ "logs": {
114
+ "kind": "bool",
115
+ "default": true,
116
+ "metadata": {
117
+ "description": "Whether log export is enabled"
118
+ }
119
+ }
120
+ },
121
+ "required": [
122
+ "traces",
123
+ "metrics",
124
+ "logs"
125
+ ],
126
+ "unknownKeys": "strip",
127
+ "metadata": {
128
+ "description": "Telemetry signal enablement"
129
+ }
130
+ },
131
+ "resourceAttributes": {
132
+ "kind": "record",
133
+ "valueSchema": {
134
+ "kind": "string"
135
+ },
136
+ "default": {},
137
+ "metadata": {
138
+ "description": "Additional OpenTelemetry resource attributes attached to exported telemetry"
139
+ }
140
+ },
141
+ "samplingRate": {
142
+ "kind": "number",
143
+ "min": 0,
144
+ "max": 1,
145
+ "default": 1,
146
+ "metadata": {
147
+ "description": "Trace sampling rate from 0.0 to 1.0"
148
+ }
149
+ }
150
+ },
151
+ "required": [
152
+ "serviceName",
153
+ "endpoint",
154
+ "export",
155
+ "enabled",
156
+ "resourceAttributes",
157
+ "samplingRate"
158
+ ],
159
+ "unknownKeys": "strip",
160
+ "metadata": {
161
+ "description": "OpenTelemetry observable plugin configuration"
162
+ }
163
+ },
164
+ "definitions": {},
165
+ "extensions": {}
166
+ }
20
167
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsb/observable-opentelemetry",
3
- "version": "9.1.2",
3
+ "version": "9.6.12",
4
4
  "type": "module",
5
5
  "license": "(AGPL-3.0-only OR Commercial)",
6
6
  "author": {
@@ -39,30 +39,30 @@
39
39
  "publish:client": "bsb client publish"
40
40
  },
41
41
  "peerDependencies": {
42
- "@bsb/base": "^9.0.0"
42
+ "@bsb/base": "^9.6.12"
43
43
  },
44
44
  "dependencies": {
45
- "@anyvali/js": "^0.2.0",
46
45
  "@opentelemetry/api": "^1.9.0",
47
- "@opentelemetry/api-logs": "^0.54.0",
48
- "@opentelemetry/sdk-node": "^0.54.0",
49
- "@opentelemetry/sdk-trace-base": "^1.28.0",
50
- "@opentelemetry/sdk-metrics": "^1.28.0",
51
- "@opentelemetry/exporter-trace-otlp-http": "^0.54.0",
52
- "@opentelemetry/exporter-metrics-otlp-http": "^0.54.0",
53
- "@opentelemetry/exporter-logs-otlp-http": "^0.54.0",
54
- "@opentelemetry/sdk-logs": "^0.54.0",
55
- "@opentelemetry/resources": "^1.28.0",
56
- "@opentelemetry/semantic-conventions": "^1.28.0"
46
+ "@opentelemetry/api-logs": "^0.219.0",
47
+ "@opentelemetry/exporter-logs-otlp-http": "^0.219.0",
48
+ "@opentelemetry/exporter-metrics-otlp-http": "^0.219.0",
49
+ "@opentelemetry/exporter-trace-otlp-http": "^0.219.0",
50
+ "@opentelemetry/resources": "^2.8.0",
51
+ "@opentelemetry/sdk-logs": "^0.219.0",
52
+ "@opentelemetry/sdk-metrics": "^2.8.0",
53
+ "@opentelemetry/sdk-node": "^0.219.0",
54
+ "@opentelemetry/sdk-trace-base": "^2.8.0",
55
+ "@opentelemetry/semantic-conventions": "^1.41.1",
56
+ "anyvali": "^1.0.6"
57
57
  },
58
58
  "devDependencies": {
59
- "@types/node": "^25.0.0",
60
- "typescript": "^5.9.0",
61
- "mocha": "^11.0.0",
62
- "@bsb/base": "^9.0.0"
59
+ "@bsb/base": "^9.6.12",
60
+ "@types/node": "^25.6.0",
61
+ "mocha": "^11.7.6",
62
+ "typescript": "^6.0.3"
63
63
  },
64
64
  "engines": {
65
- "node": ">=23.0.0",
65
+ "node": ">=24.0.0",
66
66
  "npm": ">=11.0.0"
67
67
  },
68
68
  "homepage": "https://io.bsbcode.dev/packages/nodejs/@bsb/observable-opentelemetry"