Repository navigation
Expand file tree
/
Copy pathdocker-compose-grpc-http2-mux.yml
More file actions
108 lines (101 loc) · 3.37 KB
/
Copy pathdocker-compose-grpc-http2-mux.yml
File metadata and controls
108 lines (101 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
version: "3.8"
services:
testclient:
build:
context: ../../..
dockerfile: internal/test/integration/components/go_grpc_server_mux/Dockerfile_pinger${TEST_SUFFIX}
image: hatest-testclient
environment:
TARGET_URL: ${TARGET_URL}
depends_on:
testserver:
condition: service_started
testserver:
build:
context: components/go_grpc_server_mux/
dockerfile: Dockerfile${TEST_SUFFIX}
image: hatest-server
ports:
- ${TARGET_PORTS}
depends_on:
otelcol:
condition: service_started
obi:
build:
context: ../../..
dockerfile: ./internal/test/integration/components/obi/Dockerfile
command:
- --config=/configs/obi-config-grpc-http2-mux.yml
volumes:
- ./configs/:/configs
- ./system/sys/kernel/security${SECURITY_CONFIG_SUFFIX}:/sys/kernel/security
- ../../../testoutput:/coverage
- ../../../testoutput/run-http2-mux:/var/run/obi
image: hatest-obi
privileged: true # in some environments (not GH Pull Requests) you can set it to false and then cap_add: [ SYS_ADMIN ]
pid: "host"
environment:
GOCOVERDIR: "/coverage"
OTEL_EBPF_TRACE_PRINTER: "text"
OTEL_EBPF_METRICS_INTERVAL: "1s"
OTEL_EBPF_BPF_BATCH_TIMEOUT: "10ms"
OTEL_EBPF_OTLP_TRACES_BATCH_TIMEOUT: "1ms"
OTEL_EBPF_LOG_LEVEL: "DEBUG"
OTEL_EBPF_BPF_DEBUG: "TRUE"
OTEL_EBPF_HOSTNAME: "obi"
depends_on:
testclient:
condition: service_started
# OpenTelemetry Collector — fans OBI's OTLP push out to jaeger (production
# path used by the test's trace assertions) and to weaver (semconv tap).
otelcol:
image: otel/opentelemetry-collector-contrib:0.163.1@sha256:1175b03003053962012f5a231f5567f66a3e8fdb960c7835c0e48f7aa1555806
container_name: otel-col
deploy:
resources:
limits:
memory: 125M
restart: unless-stopped
command: ["--config=/etc/otelcol-config/otelcol-config-weaver.yml"]
volumes:
- ./configs/:/etc/otelcol-config
ports:
- "4317" # OTLP over gRPC receiver
- "4318:4318" # OTLP over HTTP receiver
- "9464" # Prometheus exporter
- "8888" # metrics endpoint
depends_on:
jaeger:
condition: service_started
prometheus:
condition: service_started
weaver:
condition: service_healthy
weaver:
extends:
file: components/weaver/service.yml
service: weaver
volumes:
- ../../../schemas/obi:/obi-registry:ro
# Prometheus
prometheus:
image: quay.io/prometheus/prometheus:v3.15.0@sha256:efd719c99d83b060d9daefdcf00360461adf279f45ef5391f8d111892118753e
container_name: prometheus
command:
- --config.file=/etc/prometheus/prometheus-config-promscrape.yml
- --web.enable-lifecycle
- --web.route-prefix=/
volumes:
- ./configs/:/etc/prometheus
ports:
- "9090:9090"
jaeger:
image: jaegertracing/jaeger:2.22.0@sha256:836b967b5abcf1f7758066aa6b348619267a2f1459f72d472840570f9bd88a17
ports:
- "16686:16686" # Query frontend
- "4317" # OTEL GRPC traces collector (internal — otelcol talks to jaeger over the docker network)
- "4318" # OTEL HTTP traces collector (internal)
command:
- "--set=service.telemetry.logs.level=debug"
# curl http://localhost:16686/api/services
# curl http://localhost:16686/api/traces?service=testserver