Skip to content

Commit cf137da

Browse files
authored
👷 #219: Setup local telemetry stack with Jaeger, Grafana, VictoriaMetrics and OTEL Collector (#225)
1 parent bc5d95f commit cf137da

File tree

3 files changed

+105
-1
lines changed

3 files changed

+105
-1
lines changed

Makefile

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ COMMIT ?= $(shell git describe --dirty --long --always --abbrev=15)
44
BUILD_DATE ?= $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
55
VERSION ?= "latest"
66

7-
LDFLAGS_COMMON := "-s -w -X $(VERSION_PACKAGE).commitSha=$(COMMIT) -X $(VERSION_PACKAGE).Version=$(VERSION) -X $(VERSION_PACKAGE).buildDate=$(BUILD_DATE)"
7+
LDFLAGS_COMMON := "-X $(VERSION_PACKAGE).commitSha=$(COMMIT) -X $(VERSION_PACKAGE).Version=$(VERSION) -X $(VERSION_PACKAGE).buildDate=$(BUILD_DATE)"
88

99
.PHONY: help
1010

@@ -51,3 +51,11 @@ test: ## Run tests
5151

5252
docs-api: install-checkers ## Generate OpenAPI API docs
5353
@$(CHECKER_BIN)/swag init
54+
55+
telemetry-up: ## Start observability services needed to receive Glides signals
56+
@docker-compose --profile telemetry up --wait
57+
@echo "Jaeger UI: http://localhost:16686/"
58+
@echo "Grafana UI: http://localhost:3000/"
59+
60+
telemetry-down: ## Shutdown observability services needed to receive Glides signals
61+
@docker-compose --profile telemetry down

compose.yaml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
version: "3.7"
2+
services:
3+
otel-collector:
4+
profiles:
5+
- telemetry
6+
image: otel/opentelemetry-collector-contrib-dev:latest
7+
command: ["--config=/etc/otel-col-config.yaml", "${OTELCOL_ARGS}"]
8+
volumes:
9+
- ./tools/otel-col-config.yaml:/etc/otel-col-config.yaml
10+
ports:
11+
- "1888:1888" # pprof extension
12+
- "8888" # Prometheus metrics exposed by the collector
13+
- "8889:8889" # Prometheus exporter metrics
14+
- "13133:13133" # health_check extension
15+
- "4317:4317" # OTLP gRPC receiver
16+
- "55679" # zpages extension
17+
depends_on:
18+
- jaeger-all-in-one
19+
20+
jaeger-all-in-one:
21+
profiles:
22+
- telemetry
23+
image: jaegertracing/all-in-one:latest
24+
environment:
25+
- COLLECTOR_OTLP_ENABLED=true
26+
ports:
27+
- "16686:16686"
28+
- "14268"
29+
- "14250:14250"
30+
- "6831:6831"
31+
32+
victoriametrics:
33+
profiles:
34+
- telemetry
35+
container_name: victoriametrics
36+
image: victoriametrics/victoria-metrics
37+
ports:
38+
- "8428:8428"
39+
- "8089:8089"
40+
- "8089:8089/udp"
41+
- "2003:2003"
42+
- "2003:2003/udp"
43+
- "4242:4242"
44+
command:
45+
- '--storageDataPath=/storage'
46+
- '--graphiteListenAddr=:2003'
47+
- '--opentsdbListenAddr=:4242'
48+
- '--httpListenAddr=:8428'
49+
- '--influxListenAddr=:8089'
50+
restart: always
51+
52+
grafana:
53+
profiles:
54+
- telemetry
55+
image: grafana/grafana:latest
56+
environment:
57+
- GF_AUTH_ANONYMOUS_ENABLED=true
58+
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
59+
- GF_AUTH_DISABLE_LOGIN_FORM=true
60+
ports:
61+
- "3000:3000"

tools/otel-col-config.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
receivers:
2+
otlp:
3+
protocols:
4+
grpc:
5+
6+
exporters:
7+
prometheusremotewrite:
8+
endpoint: "http://victoriametrics:8428/api/v1/write"
9+
10+
otlp:
11+
endpoint: jaeger-all-in-one:4317
12+
tls:
13+
insecure: true
14+
15+
processors:
16+
batch:
17+
18+
extensions:
19+
health_check:
20+
pprof:
21+
endpoint: :1888
22+
zpages:
23+
endpoint: :55679
24+
25+
service:
26+
extensions: [ pprof, zpages, health_check ]
27+
pipelines:
28+
traces:
29+
receivers: [ otlp ]
30+
processors: [ batch ]
31+
exporters: [ otlp ]
32+
metrics:
33+
receivers: [ otlp ]
34+
processors: [ batch ]
35+
exporters: [ prometheusremotewrite ]

0 commit comments

Comments
 (0)