Skip to content

Commit

Permalink
This is v2a
Browse files Browse the repository at this point in the history
  • Loading branch information
dfinas committed May 12, 2022
1 parent 26ea2d4 commit 0e6ab82
Show file tree
Hide file tree
Showing 10 changed files with 224 additions and 8 deletions.
30 changes: 24 additions & 6 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ services:
- "4002:27017"
restart: always

db-fixture:
image: db-fixture
build: ./db-fixture
container_name: db-fixture
depends_on:
- db
# db-fixture:
# image: db-fixture
# build: ./db-fixture
# container_name: db-fixture
# depends_on:
# - db

service:
image: service
Expand All @@ -30,6 +30,8 @@ services:
- PORT=80
- DBHOST=mongodb://db:27017
- NODE_ENV=development
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
- OTEL_RESOURCE_ATTRIBUTES=service.name=service
depends_on:
- db
restart: always
Expand All @@ -48,6 +50,8 @@ services:
environment:
- PORT=80
- NODE_ENV=development
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
- OTEL_RESOURCE_ATTRIBUTES=service.name=web
depends_on:
- service
restart: always
Expand All @@ -65,3 +69,17 @@ services:
# - ./load-generator/src:/src/
# depends_on:
# - web

## TELEMETRY CONTAINERS
otel-collector:
image: otel/opentelemetry-collector-contrib:0.47.0
container_name: otel-collector
ports:
# This is default port for listening to GRPC protocol
- 4317:4317
# This is default port for listening to HTTP protocol
- 4318:4318
# This is default port for zpages debugging
- 55679:55679
volumes:
- ./otel-collector/conf:/etc/otelcol-contrib/
33 changes: 33 additions & 0 deletions otel-collector/conf/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
extensions:
# This extension is used to provide a debugging zpages traces_endpoint
# see https://github.com/open-telemetry/opentelemetry-collector/blob/main/extension/zpagesextension/README.md for more details
zpages:
endpoint: 0.0.0.0:55679

receivers:
# Default receiver to collect trace and metrics received from grpc and http protocols
# Default is port 4317 for grpc and 4318 for http
otlp:
protocols:
grpc:
http:

processors:
# Recommended processor to proceed sending of traces or metrics in batch mode (requires less resources)
batch:

exporters:
# Debugging exporter directly to system log
logging:
loglevel: debug

service:
pipelines:
# Simple trace pipeline that will send all traces received from otlp protocol to the logs in batch mode
traces:
receivers: [otlp]
processors: [batch]
exporters: [logging]

# Activate the extension that will allow us to debug this configuration from the collector web interface on port 55679 by default
extensions: [zpages]
14 changes: 14 additions & 0 deletions otel-collector/src/tracing.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/* tracing.js */

// Require dependencies
const opentelemetry = require("@opentelemetry/sdk-node");
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
const { getNodeAutoInstrumentations } = require("@opentelemetry/auto-instrumentations-node");

const sdk = new opentelemetry.NodeSDK({
traceExporter: new OTLPTraceExporter({}),
// traceExporter: new OTLPTraceExporter({url: 'http://otel-collector:4318/v1/traces'}),
instrumentations: [getNodeAutoInstrumentations()]
});

sdk.start()
37 changes: 37 additions & 0 deletions otel-collector/test/small_data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"resourceSpans": [
{
"resource": {
"attributes": [
{
"key": "service.name",
"value": {
"stringValue": "curl-test-otel-pipeline"
}
}
]
},
"instrumentationLibrarySpans": [
{
"spans": [
{
"traceId": "71699b6fe85982c7c8995ea3d9c95ef4",
"spanId": "3c191d03fa8be077",
"name": "test-span",
"kind": 1,
"droppedAttributesCount": 0,
"events": [],
"droppedEventsCount": 0,
"status": {
"code": 1
}
}
],
"instrumentationLibrary": {
"name": "local-curl-example"
}
}
]
}
]
}
51 changes: 51 additions & 0 deletions service/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"dependencies": {
"@opentelemetry/api": "^1.0.4",
"@opentelemetry/auto-instrumentations-node": "^0.28.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.28.0",
"@opentelemetry/sdk-node": "^0.28.0",
"express": "^4.16.4",
"mongodb": "^3.1.4"
Expand Down
7 changes: 6 additions & 1 deletion service/src/tracing.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
/* tracing.js */

// Require dependencies
const opentelemetry = require("@opentelemetry/sdk-node");
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
const { getNodeAutoInstrumentations } = require("@opentelemetry/auto-instrumentations-node");

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

Expand Down
51 changes: 51 additions & 0 deletions web/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"dependencies": {
"@opentelemetry/api": "^1.0.4",
"@opentelemetry/auto-instrumentations-node": "^0.28.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.28.0",
"@opentelemetry/sdk-node": "^0.28.0",
"axios": "^0.18.0",
"express": "^4.16.4"
Expand Down
7 changes: 6 additions & 1 deletion web/src/tracing.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
/* tracing.js */

// Require dependencies
const opentelemetry = require("@opentelemetry/sdk-node");
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
const { getNodeAutoInstrumentations } = require("@opentelemetry/auto-instrumentations-node");

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

Expand Down

0 comments on commit 0e6ab82

Please sign in to comment.