Skip to content

Commit 945efe4

Browse files
author
Connell, Joseph
committed
More native implementation of the OTel Node SDK
1 parent 0686db5 commit 945efe4

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

deploy/docker/Dockerfile

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,6 @@ WORKDIR /lowcoder/node-service/app/
7878
RUN yarn --immutable
7979
RUN yarn build
8080

81-
# --- ADDED: Install OpenTelemetry dependencies for Node.js service ---
82-
RUN yarn add \
83-
@opentelemetry/api \
84-
@opentelemetry/auto-instrumentations-node
85-
8681
# Copy startup script
8782
COPY deploy/docker/node-service/entrypoint.sh /lowcoder/node-service/entrypoint.sh
8883
COPY deploy/docker/node-service/init.sh /lowcoder/node-service/init.sh
@@ -114,9 +109,6 @@ RUN apt-get update \
114109

115110
COPY --from=build-node-service /lowcoder/node-service /lowcoder/node-service
116111

117-
#Enable OpenTelemetry node agent
118-
ENV NODE_OPTIONS="--require @opentelemetry/auto-instrumentations-node/register"
119-
120112
EXPOSE 6060
121113
CMD [ "/bin/sh", "/lowcoder/node-service/entrypoint.sh" ]
122114

deploy/docker/node-service/entrypoint.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ export USER_ID=${LOWCODER_PUID:=9001}
66
export GROUP_ID=${LOWCODER_PGID:=9001}
77
export API_HOST="${LOWCODER_API_SERVICE_URL:=http://localhost:8080}"
88

9+
#Require OpenTelemetry
10+
export NODE_OPTIONS="-r /lowcoder/node-service/app/otel.config.js"
11+
912
# Run init script
1013
echo "Initializing node-service..."
1114
/lowcoder/node-service/init.sh

server/node-service/otel.config.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const { NodeSDK } = require('@opentelemetry/sdk-node');
2+
const { ConsoleSpanExporter } = require('@opentelemetry/sdk-trace-node');
3+
const {
4+
getNodeAutoInstrumentations,
5+
} = require('@opentelemetry/auto-instrumentations-node');
6+
const {
7+
PeriodicExportingMetricReader,
8+
ConsoleMetricExporter,
9+
} = require('@opentelemetry/sdk-metrics');
10+
11+
const sdk = new NodeSDK({
12+
traceExporter: new ConsoleSpanExporter(),
13+
metricReader: new PeriodicExportingMetricReader({
14+
exporter: new ConsoleMetricExporter(),
15+
}),
16+
instrumentations: [getNodeAutoInstrumentations()],
17+
});
18+
19+
sdk.start();

0 commit comments

Comments
 (0)