Skip to content

Commit 0e6ab82

Browse files
committed
This is v2a
1 parent 26ea2d4 commit 0e6ab82

File tree

10 files changed

+224
-8
lines changed

10 files changed

+224
-8
lines changed

docker-compose.yml

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ services:
88
- "4002:27017"
99
restart: always
1010

11-
db-fixture:
12-
image: db-fixture
13-
build: ./db-fixture
14-
container_name: db-fixture
15-
depends_on:
16-
- db
11+
# db-fixture:
12+
# image: db-fixture
13+
# build: ./db-fixture
14+
# container_name: db-fixture
15+
# depends_on:
16+
# - db
1717

1818
service:
1919
image: service
@@ -30,6 +30,8 @@ services:
3030
- PORT=80
3131
- DBHOST=mongodb://db:27017
3232
- NODE_ENV=development
33+
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
34+
- OTEL_RESOURCE_ATTRIBUTES=service.name=service
3335
depends_on:
3436
- db
3537
restart: always
@@ -48,6 +50,8 @@ services:
4850
environment:
4951
- PORT=80
5052
- NODE_ENV=development
53+
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
54+
- OTEL_RESOURCE_ATTRIBUTES=service.name=web
5155
depends_on:
5256
- service
5357
restart: always
@@ -65,3 +69,17 @@ services:
6569
# - ./load-generator/src:/src/
6670
# depends_on:
6771
# - web
72+
73+
## TELEMETRY CONTAINERS
74+
otel-collector:
75+
image: otel/opentelemetry-collector-contrib:0.47.0
76+
container_name: otel-collector
77+
ports:
78+
# This is default port for listening to GRPC protocol
79+
- 4317:4317
80+
# This is default port for listening to HTTP protocol
81+
- 4318:4318
82+
# This is default port for zpages debugging
83+
- 55679:55679
84+
volumes:
85+
- ./otel-collector/conf:/etc/otelcol-contrib/

otel-collector/conf/config.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
extensions:
2+
# This extension is used to provide a debugging zpages traces_endpoint
3+
# see https://github.com/open-telemetry/opentelemetry-collector/blob/main/extension/zpagesextension/README.md for more details
4+
zpages:
5+
endpoint: 0.0.0.0:55679
6+
7+
receivers:
8+
# Default receiver to collect trace and metrics received from grpc and http protocols
9+
# Default is port 4317 for grpc and 4318 for http
10+
otlp:
11+
protocols:
12+
grpc:
13+
http:
14+
15+
processors:
16+
# Recommended processor to proceed sending of traces or metrics in batch mode (requires less resources)
17+
batch:
18+
19+
exporters:
20+
# Debugging exporter directly to system log
21+
logging:
22+
loglevel: debug
23+
24+
service:
25+
pipelines:
26+
# Simple trace pipeline that will send all traces received from otlp protocol to the logs in batch mode
27+
traces:
28+
receivers: [otlp]
29+
processors: [batch]
30+
exporters: [logging]
31+
32+
# Activate the extension that will allow us to debug this configuration from the collector web interface on port 55679 by default
33+
extensions: [zpages]

otel-collector/src/tracing.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/* tracing.js */
2+
3+
// Require dependencies
4+
const opentelemetry = require("@opentelemetry/sdk-node");
5+
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
6+
const { getNodeAutoInstrumentations } = require("@opentelemetry/auto-instrumentations-node");
7+
8+
const sdk = new opentelemetry.NodeSDK({
9+
traceExporter: new OTLPTraceExporter({}),
10+
// traceExporter: new OTLPTraceExporter({url: 'http://otel-collector:4318/v1/traces'}),
11+
instrumentations: [getNodeAutoInstrumentations()]
12+
});
13+
14+
sdk.start()
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"resourceSpans": [
3+
{
4+
"resource": {
5+
"attributes": [
6+
{
7+
"key": "service.name",
8+
"value": {
9+
"stringValue": "curl-test-otel-pipeline"
10+
}
11+
}
12+
]
13+
},
14+
"instrumentationLibrarySpans": [
15+
{
16+
"spans": [
17+
{
18+
"traceId": "71699b6fe85982c7c8995ea3d9c95ef4",
19+
"spanId": "3c191d03fa8be077",
20+
"name": "test-span",
21+
"kind": 1,
22+
"droppedAttributesCount": 0,
23+
"events": [],
24+
"droppedEventsCount": 0,
25+
"status": {
26+
"code": 1
27+
}
28+
}
29+
],
30+
"instrumentationLibrary": {
31+
"name": "local-curl-example"
32+
}
33+
}
34+
]
35+
}
36+
]
37+
}

service/package-lock.json

Lines changed: 51 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

service/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"dependencies": {
2222
"@opentelemetry/api": "^1.0.4",
2323
"@opentelemetry/auto-instrumentations-node": "^0.28.0",
24+
"@opentelemetry/exporter-trace-otlp-http": "^0.28.0",
2425
"@opentelemetry/sdk-node": "^0.28.0",
2526
"express": "^4.16.4",
2627
"mongodb": "^3.1.4"

service/src/tracing.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1+
/* tracing.js */
2+
3+
// Require dependencies
14
const opentelemetry = require("@opentelemetry/sdk-node");
5+
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
26
const { getNodeAutoInstrumentations } = require("@opentelemetry/auto-instrumentations-node");
37

48
const sdk = new opentelemetry.NodeSDK({
5-
traceExporter: new opentelemetry.tracing.ConsoleSpanExporter(),
9+
traceExporter: new OTLPTraceExporter({}),
10+
// traceExporter: new OTLPTraceExporter({url: 'http://otel-collector:4318/v1/traces'}),
611
instrumentations: [getNodeAutoInstrumentations()]
712
});
813

web/package-lock.json

Lines changed: 51 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"dependencies": {
2222
"@opentelemetry/api": "^1.0.4",
2323
"@opentelemetry/auto-instrumentations-node": "^0.28.0",
24+
"@opentelemetry/exporter-trace-otlp-http": "^0.28.0",
2425
"@opentelemetry/sdk-node": "^0.28.0",
2526
"axios": "^0.18.0",
2627
"express": "^4.16.4"

web/src/tracing.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1+
/* tracing.js */
2+
3+
// Require dependencies
14
const opentelemetry = require("@opentelemetry/sdk-node");
5+
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
26
const { getNodeAutoInstrumentations } = require("@opentelemetry/auto-instrumentations-node");
37

48
const sdk = new opentelemetry.NodeSDK({
5-
traceExporter: new opentelemetry.tracing.ConsoleSpanExporter(),
9+
traceExporter: new OTLPTraceExporter({}),
10+
// traceExporter: new OTLPTraceExporter({url: 'http://otel-collector:4318/v1/traces'}),
611
instrumentations: [getNodeAutoInstrumentations()]
712
});
813

0 commit comments

Comments
 (0)