@eqxjs/nest-opentelemetry 1.1.2 → 1.1.3

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.
@@ -1,2 +1,2 @@
1
- import { Span } from '@opentelemetry/api';
1
+ import { Span } from "@opentelemetry/api";
2
2
  export declare function setSpanHookGeneric(span: Span): void;
@@ -1,3 +1,3 @@
1
- import { Span } from '@opentelemetry/api';
1
+ import { Span } from "@opentelemetry/api";
2
2
  import { DataM1I } from "../dto/m1.dto";
3
3
  export declare function setSpanToM1(span: Span, m1Message: DataM1I): void;
@@ -1,3 +1,3 @@
1
- import { Span } from '@opentelemetry/api';
1
+ import { Span } from "@opentelemetry/api";
2
2
  import { DataM2I } from "../dto/m2.dto";
3
3
  export declare function setSpanToM2(span: Span, m2Message: DataM2I): void;
@@ -1,3 +1,3 @@
1
- import { Span } from '@opentelemetry/api';
1
+ import { Span } from "@opentelemetry/api";
2
2
  import { DataM3I } from "../dto/m3.dto";
3
3
  export declare function setSpanToM3(span: Span, m3Message: DataM3I): void;
@@ -1,3 +1,3 @@
1
- import { Span } from '@opentelemetry/api';
1
+ import { Span } from "@opentelemetry/api";
2
2
  export declare function producerHook(span: Span, topic: string, message: any): void;
3
3
  export declare function consumerHook(span: Span, topic: string, message: any): void;
@@ -1,3 +1,3 @@
1
- import { Span } from '@opentelemetry/api';
1
+ import { Span } from "@opentelemetry/api";
2
2
  import { SocketIoHookInfo } from "@opentelemetry/instrumentation-socket.io";
3
3
  export declare function socketOnHook(span: Span, hookInfo: SocketIoHookInfo): void;
@@ -7,14 +7,14 @@ function socketOnHook(span, hookInfo) {
7
7
  if (!hookInfo && ((_a = hookInfo.payload) === null || _a === void 0 ? void 0 : _a.length) <= 0) {
8
8
  return;
9
9
  }
10
- if (typeof hookInfo.payload[0] === 'object') {
10
+ if (typeof hookInfo.payload[0] === "object") {
11
11
  if (hookInfo.payload[0].id && ((_b = hookInfo.payload[0].handshake) === null || _b === void 0 ? void 0 : _b.headers)) {
12
12
  const socket = hookInfo === null || hookInfo === void 0 ? void 0 : hookInfo.payload[0];
13
13
  if (socket === null || socket === void 0 ? void 0 : socket.id) {
14
- span.setAttribute('socket.id', socket.id);
14
+ span.setAttribute("socket.id", socket.id);
15
15
  }
16
16
  if ((_c = socket === null || socket === void 0 ? void 0 : socket.handshake) === null || _c === void 0 ? void 0 : _c.headers.key) {
17
- span.setAttribute('socket.key', (_d = socket === null || socket === void 0 ? void 0 : socket.handshake) === null || _d === void 0 ? void 0 : _d.headers.key);
17
+ span.setAttribute("socket.key", (_d = socket === null || socket === void 0 ? void 0 : socket.handshake) === null || _d === void 0 ? void 0 : _d.headers.key);
18
18
  }
19
19
  }
20
20
  else if (hookInfo.payload[0].protocol) {
@@ -1 +1 @@
1
- {"version":3,"file":"socket-io.span.js","sourceRoot":"","sources":["../../src/extend/socket-io.span.ts"],"names":[],"mappings":";;;AAEA,kDAAiD;AAEjD,SAAgB,YAAY,CAAC,IAAU,EAAE,QAA0B;;IAC/D,IAAG,CAAC,QAAQ,IAAI,CAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,MAAM,KAAI,CAAC,EAAE,CAAC;QAC5C,OAAO;IACX,CAAC;IACD,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAI,MAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,0CAAE,OAAO,CAAA,EAAE,CAAC;YACnE,MAAM,MAAM,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,EAAE,CAAC;gBACb,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,0CAAE,OAAO,CAAC,GAAG,EAAE,CAAC;gBACjC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,0CAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;aAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAA,uBAAW,EAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;AACL,CAAC;AAjBD,oCAiBC"}
1
+ {"version":3,"file":"socket-io.span.js","sourceRoot":"","sources":["../../src/extend/socket-io.span.ts"],"names":[],"mappings":";;;AAEA,kDAAiD;AAEjD,SAAgB,YAAY,CAAC,IAAU,EAAE,QAA0B;;IACjE,IAAI,CAAC,QAAQ,IAAI,CAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,MAAM,KAAI,CAAC,EAAE,CAAC;QAC/C,OAAO;IACT,CAAC;IACD,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAI,MAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,0CAAE,OAAO,CAAA,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,EAAE,CAAC;gBACf,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,0CAAE,OAAO,CAAC,GAAG,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,0CAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAA,uBAAW,EAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAjBD,oCAiBC"}
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { getNodeAutoInstrumentations, getResourceDetectorsFromEnv as getResourceDetectors, InstrumentationConfigMap, } from './utils';
1
+ export { getNodeAutoInstrumentations, getResourceDetectorsFromEnv as getResourceDetectors, InstrumentationConfigMap, } from "./utils";
package/dist/register.js CHANGED
@@ -77,12 +77,12 @@ const sdk = new opentelemetry.NodeSDK({
77
77
  metricReader: metricExporter,
78
78
  logRecordProcessor: logExporter,
79
79
  instrumentations: (0, utils_1.getNodeAutoInstrumentations)({
80
- '@opentelemetry/instrumentation-socket.io': {
80
+ "@opentelemetry/instrumentation-socket.io": {
81
81
  onHook: socket_io_span_1.socketOnHook,
82
82
  emitHook: socket_io_span_1.socketOnHook,
83
- traceReserved: true
83
+ traceReserved: true,
84
84
  },
85
- '@opentelemetry/instrumentation-http': {
85
+ "@opentelemetry/instrumentation-http": {
86
86
  headersToSpanAttributes: {
87
87
  client: {
88
88
  requestHeaders: process.env.OTEL_HTTP_HEADER
@@ -90,7 +90,7 @@ const sdk = new opentelemetry.NodeSDK({
90
90
  : [],
91
91
  responseHeaders: process.env.OTEL_HTTP_HEADER
92
92
  ? process.env.OTEL_HTTP_HEADER.split(",")
93
- : []
93
+ : [],
94
94
  },
95
95
  server: {
96
96
  requestHeaders: process.env.OTEL_HTTP_HEADER
@@ -98,28 +98,28 @@ const sdk = new opentelemetry.NodeSDK({
98
98
  : [],
99
99
  responseHeaders: process.env.OTEL_HTTP_HEADER
100
100
  ? process.env.OTEL_HTTP_HEADER.split(",")
101
- : []
102
- }
103
- }
101
+ : [],
102
+ },
103
+ },
104
104
  },
105
- '@opentelemetry/instrumentation-kafkajs': {
105
+ "@opentelemetry/instrumentation-kafkajs": {
106
106
  producerHook: kafka_span_1.producerHook,
107
- consumerHook: kafka_span_1.consumerHook
108
- }
107
+ consumerHook: kafka_span_1.consumerHook,
108
+ },
109
109
  }),
110
110
  resourceDetectors: (0, utils_1.getResourceDetectorsFromEnv)(),
111
111
  });
112
112
  try {
113
113
  sdk.start();
114
- api_1.diag.info('OpenTelemetry automatic instrumentation started successfully');
114
+ api_1.diag.info("OpenTelemetry automatic instrumentation started successfully");
115
115
  }
116
116
  catch (error) {
117
- api_1.diag.error('Error initializing OpenTelemetry SDK. Your application is not instrumented and will not produce telemetry', error);
117
+ api_1.diag.error("Error initializing OpenTelemetry SDK. Your application is not instrumented and will not produce telemetry", error);
118
118
  }
119
- process.on('SIGTERM', () => {
119
+ process.on("SIGTERM", () => {
120
120
  sdk
121
121
  .shutdown()
122
- .then(() => api_1.diag.debug('OpenTelemetry SDK terminated'))
123
- .catch(error => api_1.diag.error('Error terminating OpenTelemetry SDK', error));
122
+ .then(() => api_1.diag.debug("OpenTelemetry SDK terminated"))
123
+ .catch((error) => api_1.diag.error("Error terminating OpenTelemetry SDK", error));
124
124
  });
125
125
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}