@eqxjs/nest-opentelemetry 3.0.9-beta.1 → 3.0.9-beta.2
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 +226 -0
- package/dist/extend/socket-io.span.js +2 -2
- package/dist/register.js +8 -0
- package/dist/register.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils.d.ts +4 -0
- package/dist/utils.js +4 -1
- package/dist/utils.js.map +1 -1
- package/package.json +15 -6
- package/tsconfig.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# @eqxjs/nest-opentelemetry
|
|
2
|
+
|
|
3
|
+
OpenTelemetry auto-instrumentation for NestJS applications. Wraps `@opentelemetry/sdk-node` with a pre-configured set of instrumentations, exporters, and resource detectors — all driven by environment variables.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Zero-code instrumentation** — register once and all supported libraries are auto-instrumented
|
|
8
|
+
- **Multiple exporters** — OTLP (traces, metrics, logs) and Azure Monitor Application Insights
|
|
9
|
+
- **Custom Kafka span enrichment** — supports KafkaJS, `eqxjs-kafkajs`, and Confluent Kafka with M1/M2/M3 message protocol parsing
|
|
10
|
+
- **Custom Socket.IO span enrichment** — captures socket ID, key, and M1 protocol attributes
|
|
11
|
+
- **Cloud resource detection** — automatic detection for AWS, Azure, GCP, Alibaba, container, and more
|
|
12
|
+
- **Graceful shutdown** — listens for `SIGTERM` and flushes telemetry before exit
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install @eqxjs/nest-opentelemetry
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
Register the SDK **before** your application loads by passing `--require` to Node.js:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
node --require ./node_modules/@eqxjs/nest-opentelemetry/dist/register.js dist/main.js
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Or in your `package.json` start script:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"scripts": {
|
|
33
|
+
"start": "node --require ./node_modules/@eqxjs/nest-opentelemetry/dist/register.js dist/main.js"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Programmatic Usage
|
|
39
|
+
|
|
40
|
+
You can also import individual helpers from the package:
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
import {
|
|
44
|
+
getNodeAutoInstrumentations,
|
|
45
|
+
getResourceDetectors,
|
|
46
|
+
InstrumentationConfigMap,
|
|
47
|
+
} from '@eqxjs/nest-opentelemetry';
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Use `getNodeAutoInstrumentations(config?)` to build the instrumentation list with your own `NodeSDK` setup, and `getResourceDetectors()` to apply the environment-driven resource detector list.
|
|
51
|
+
|
|
52
|
+
## Environment Variables
|
|
53
|
+
|
|
54
|
+
### Exporters
|
|
55
|
+
|
|
56
|
+
| Variable | Description |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `TRACES_URL` | OTLP endpoint for traces (default: `http://localhost:4318/v1/traces`) |
|
|
59
|
+
| `METRICS_URL` | OTLP endpoint for metrics (default: `http://localhost:4318/v1/metrics`) |
|
|
60
|
+
| `LOGGER_URL` | OTLP endpoint for logs (default: `http://localhost:4318/v1/logs`) |
|
|
61
|
+
| `APPLICATIONINSIGHTS_CONNECTION_STRING_TRACE` | Azure Monitor connection string for traces (takes priority over `TRACES_URL`) |
|
|
62
|
+
| `APPLICATIONINSIGHTS_CONNECTION_STRING_METRIC` | Azure Monitor connection string for metrics (takes priority over `METRICS_URL`) |
|
|
63
|
+
| `APPLICATIONINSIGHTS_CONNECTION_STRING_LOG` | Azure Monitor connection string for logs (takes priority over `LOGGER_URL`) |
|
|
64
|
+
| `METRIC_EXPORT_INTERVAL` | Metrics export interval in milliseconds (default: `60000`) |
|
|
65
|
+
|
|
66
|
+
### Instrumentation
|
|
67
|
+
|
|
68
|
+
| Variable | Description |
|
|
69
|
+
|---|---|
|
|
70
|
+
| `OTEL_HTTP_HEADER` | Comma-separated list of HTTP header names to capture as span attributes on both request and response |
|
|
71
|
+
| `OTEL_NODE_ENABLED_INSTRUMENTATIONS` | Comma-separated list of instrumentation suffixes to enable. When unset, all instrumentations are enabled. Example: `http,grpc,pg` |
|
|
72
|
+
|
|
73
|
+
### Resource Detectors
|
|
74
|
+
|
|
75
|
+
| Variable | Description |
|
|
76
|
+
|---|---|
|
|
77
|
+
| `OTEL_NODE_RESOURCE_DETECTORS` | Comma-separated list of resource detectors. Defaults to `all`. Use `none` to disable all. |
|
|
78
|
+
|
|
79
|
+
Available detector values:
|
|
80
|
+
|
|
81
|
+
| Value | Detects |
|
|
82
|
+
|---|---|
|
|
83
|
+
| `all` | Enables every detector below |
|
|
84
|
+
| `none` | Disables all detectors |
|
|
85
|
+
| `container` | Container ID |
|
|
86
|
+
| `env` | `OTEL_RESOURCE_ATTRIBUTES` environment variable |
|
|
87
|
+
| `host` | Hostname |
|
|
88
|
+
| `os` | OS name and version |
|
|
89
|
+
| `process` | Process PID, runtime name, and version |
|
|
90
|
+
| `serviceinstance` | Random service instance ID |
|
|
91
|
+
| `alibaba` | Alibaba Cloud ECS metadata |
|
|
92
|
+
| `aws` | AWS EC2 / ECS / EKS / Beanstalk / Lambda metadata |
|
|
93
|
+
| `azure` | Azure App Service / Functions / VM metadata |
|
|
94
|
+
| `gcp` | Google Cloud Platform metadata |
|
|
95
|
+
|
|
96
|
+
### Deployment Attributes (applied to Kafka / Socket.IO spans)
|
|
97
|
+
|
|
98
|
+
| Variable | Span attribute set |
|
|
99
|
+
|---|---|
|
|
100
|
+
| `CLOUD_ZONE` | `cloud.zone` |
|
|
101
|
+
| `DEPLOYMENT_ENV` | `deployment.environment` |
|
|
102
|
+
| `DEPLOYMENT_NAMESPACE` | `k8s.namespace.name` |
|
|
103
|
+
|
|
104
|
+
## Supported Instrumentations
|
|
105
|
+
|
|
106
|
+
| Library | Package |
|
|
107
|
+
|---|---|
|
|
108
|
+
| HTTP / HTTPS | `@opentelemetry/instrumentation-http` |
|
|
109
|
+
| gRPC | `@opentelemetry/instrumentation-grpc` |
|
|
110
|
+
| Express | `@opentelemetry/instrumentation-express` |
|
|
111
|
+
| Fastify | `@fastify/otel` |
|
|
112
|
+
| Koa | `@opentelemetry/instrumentation-koa` |
|
|
113
|
+
| Hapi | `@opentelemetry/instrumentation-hapi` |
|
|
114
|
+
| NestJS core | `@opentelemetry/instrumentation-nestjs-core` |
|
|
115
|
+
| Socket.IO | `@opentelemetry/instrumentation-socket.io` |
|
|
116
|
+
| GraphQL | `@opentelemetry/instrumentation-graphql` |
|
|
117
|
+
| KafkaJS | `opentelemetry-instrumentation-kafkajs` |
|
|
118
|
+
| EqxJS KafkaJS | `opentelemetry-instrumentation-eqxjs-kafkajs` |
|
|
119
|
+
| Confluent Kafka | `opentelemetry-instrumentation-confluent-kafka` |
|
|
120
|
+
| AMQP (RabbitMQ) | `@opentelemetry/instrumentation-amqplib` |
|
|
121
|
+
| MongoDB | `@opentelemetry/instrumentation-mongodb` + `opentelemetry-instrumentation-mongodb2` |
|
|
122
|
+
| Mongoose | `@opentelemetry/instrumentation-mongoose` |
|
|
123
|
+
| PostgreSQL | `@opentelemetry/instrumentation-pg` |
|
|
124
|
+
| MySQL / MySQL2 | `@opentelemetry/instrumentation-mysql`, `@opentelemetry/instrumentation-mysql2` |
|
|
125
|
+
| Redis v2 / v4 | `@opentelemetry/instrumentation-redis`, `@opentelemetry/instrumentation-redis-4` |
|
|
126
|
+
| IORedis | `@opentelemetry/instrumentation-ioredis`, `opentelemetry-instrumentation-eqxjs-ioredis` |
|
|
127
|
+
| Cassandra | `@opentelemetry/instrumentation-cassandra-driver` |
|
|
128
|
+
| Memcached | `@opentelemetry/instrumentation-memcached` |
|
|
129
|
+
| Knex | `@opentelemetry/instrumentation-knex` |
|
|
130
|
+
| AWS SDK | `@opentelemetry/instrumentation-aws-sdk` |
|
|
131
|
+
| AWS Lambda | `@opentelemetry/instrumentation-aws-lambda` |
|
|
132
|
+
| DNS | `@opentelemetry/instrumentation-dns` |
|
|
133
|
+
| Net | `@opentelemetry/instrumentation-net` |
|
|
134
|
+
| FS | `@opentelemetry/instrumentation-fs` |
|
|
135
|
+
| Pino | `@opentelemetry/instrumentation-pino` |
|
|
136
|
+
| Winston | `@opentelemetry/instrumentation-winston` |
|
|
137
|
+
| Bunyan | `@opentelemetry/instrumentation-bunyan` |
|
|
138
|
+
| DataLoader | `@opentelemetry/instrumentation-dataloader` |
|
|
139
|
+
| Generic Pool | `@opentelemetry/instrumentation-generic-pool` |
|
|
140
|
+
| LRU Memoizer | `@opentelemetry/instrumentation-lru-memoizer` |
|
|
141
|
+
| Connect | `@opentelemetry/instrumentation-connect` |
|
|
142
|
+
| Restify | `@opentelemetry/instrumentation-restify` |
|
|
143
|
+
| Router | `@opentelemetry/instrumentation-router` |
|
|
144
|
+
| Tedious (MSSQL) | `@opentelemetry/instrumentation-tedious` |
|
|
145
|
+
| Cucumber | `@opentelemetry/instrumentation-cucumber` |
|
|
146
|
+
|
|
147
|
+
## Message Protocol Span Enrichment
|
|
148
|
+
|
|
149
|
+
Kafka producer/consumer hooks and Socket.IO hooks parse message payloads and add structured span attributes based on the detected message format.
|
|
150
|
+
|
|
151
|
+
### M1 Protocol
|
|
152
|
+
|
|
153
|
+
Messages with a `protocol` field are parsed as M1 and produce the following attributes in addition to all M2 attributes:
|
|
154
|
+
|
|
155
|
+
| Attribute | Source field |
|
|
156
|
+
|---|---|
|
|
157
|
+
| `M1.protocol.version` | `protocol.version` |
|
|
158
|
+
| `M1.protocol.command` | `protocol.command` |
|
|
159
|
+
| `M1.protocol.sub_command` | `protocol.subCommand` |
|
|
160
|
+
| `M1.protocol.invoke` | `protocol.invoke` |
|
|
161
|
+
| `M1.protocol.topic` | `protocol.topic` |
|
|
162
|
+
|
|
163
|
+
### M2 Protocol
|
|
164
|
+
|
|
165
|
+
Messages with a `header` field are parsed as M2:
|
|
166
|
+
|
|
167
|
+
| Attribute | Source field |
|
|
168
|
+
|---|---|
|
|
169
|
+
| `enduser.id` | `header.identity.user` |
|
|
170
|
+
| `M2.header.version` | `header.version` |
|
|
171
|
+
| `M2.header.org_service` | `header.orgService` |
|
|
172
|
+
| `M2.header.from` | `header.from` |
|
|
173
|
+
| `M2.header.channel` | `header.channel` |
|
|
174
|
+
| `M2.header.broker` | `header.broker` |
|
|
175
|
+
| `M2.header.agent` | `header.agent` |
|
|
176
|
+
| `M2.header.useCase` | `header.useCase` |
|
|
177
|
+
| `M2.header.use_case_step` | `header.useCaseStep` |
|
|
178
|
+
| `M2.header.use_case_age` | `header.useCaseAge` |
|
|
179
|
+
| `M2.header.function_name` | `header.functionName` |
|
|
180
|
+
| `M2.header.session` | `header.session` |
|
|
181
|
+
| `M2.header.transaction` | `header.transaction` |
|
|
182
|
+
|
|
183
|
+
### M3 Protocol
|
|
184
|
+
|
|
185
|
+
Messages with a `service` field are parsed as M3:
|
|
186
|
+
|
|
187
|
+
| Attribute | Source field |
|
|
188
|
+
|---|---|
|
|
189
|
+
| `enduser.id` | `service.identity.user` |
|
|
190
|
+
| `M3.service.version` | `service.version` |
|
|
191
|
+
| `M3.service.org_service` | `service.orgService` |
|
|
192
|
+
| `M3.service.from` | `service.from` |
|
|
193
|
+
| `M3.service.channel` | `service.channel` |
|
|
194
|
+
| `M3.service.broker` | `service.broker` |
|
|
195
|
+
| `M3.service.agent` | `service.agent` |
|
|
196
|
+
| `M3.service.useCase` | `service.useCase` |
|
|
197
|
+
| `M3.service.use_case_step` | `service.useCaseStep` |
|
|
198
|
+
| `M3.service.use_case_age` | `service.useCaseAge` |
|
|
199
|
+
| `M3.service.function_name` | `service.functionName` |
|
|
200
|
+
| `M3.service.session` | `service.session` |
|
|
201
|
+
| `M3.service.transaction` | `service.transaction` |
|
|
202
|
+
|
|
203
|
+
### Kafka Span Attributes
|
|
204
|
+
|
|
205
|
+
All Kafka spans (producer and consumer) include:
|
|
206
|
+
|
|
207
|
+
| Attribute | Description |
|
|
208
|
+
|---|---|
|
|
209
|
+
| `kafka.direction` | `produce` or `consume` |
|
|
210
|
+
| `kafka.topic` | Topic name |
|
|
211
|
+
| `kafka.key` | Message key |
|
|
212
|
+
| `kafka.partition` | Message partition |
|
|
213
|
+
| `kafka.offset` | Message offset |
|
|
214
|
+
| `kafka.header.<name>` | Each message header value |
|
|
215
|
+
|
|
216
|
+
## Build
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
npm run build
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Output is emitted to `./dist`.
|
|
223
|
+
|
|
224
|
+
## License
|
|
225
|
+
|
|
226
|
+
ISC
|
|
@@ -5,7 +5,7 @@ exports.socketEmitHook = socketEmitHook;
|
|
|
5
5
|
const m1_common_1 = require("./common/m1.common");
|
|
6
6
|
function socketOnHook(span, hookInfo) {
|
|
7
7
|
var _a, _b, _c, _d;
|
|
8
|
-
if (!hookInfo
|
|
8
|
+
if (!hookInfo || ((_a = hookInfo.payload) === null || _a === void 0 ? void 0 : _a.length) <= 0) {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
11
|
if (typeof hookInfo.payload[0] === "object") {
|
|
@@ -25,7 +25,7 @@ function socketOnHook(span, hookInfo) {
|
|
|
25
25
|
}
|
|
26
26
|
function socketEmitHook(span, hookInfo) {
|
|
27
27
|
var _a, _b, _c, _d;
|
|
28
|
-
if (!hookInfo
|
|
28
|
+
if (!hookInfo || ((_a = hookInfo.payload) === null || _a === void 0 ? void 0 : _a.length) <= 0) {
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
if (typeof hookInfo.payload[0] === "object") {
|
package/dist/register.js
CHANGED
|
@@ -91,6 +91,14 @@ const sdk = new opentelemetry.NodeSDK({
|
|
|
91
91
|
producerHook: kafka_span_1.producerHook,
|
|
92
92
|
consumerHook: kafka_span_1.consumerHook,
|
|
93
93
|
},
|
|
94
|
+
"@opentelemetry/instrumentation-eqxjs-kafkajs": {
|
|
95
|
+
producerHook: kafka_span_1.producerHook,
|
|
96
|
+
consumerHook: kafka_span_1.consumerHook,
|
|
97
|
+
},
|
|
98
|
+
"@opentelemetry/instrumentation-confluent-kafka": {
|
|
99
|
+
producerHook: kafka_span_1.producerHook,
|
|
100
|
+
consumerHook: kafka_span_1.consumerHook,
|
|
101
|
+
},
|
|
94
102
|
"@opentelemetry/instrumentation-mongodb": {
|
|
95
103
|
enhancedDatabaseReporting: true,
|
|
96
104
|
},
|
package/dist/register.js.map
CHANGED
|
@@ -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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"}
|