-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose-hypertrace.yml
More file actions
95 lines (90 loc) · 2.88 KB
/
docker-compose-hypertrace.yml
File metadata and controls
95 lines (90 loc) · 2.88 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
## Copied from https://github.com/hypertrace/hypertrace/blob/main/docker/docker-compose.yml
version: "2.4"
services:
# This container includes the UI and APIs it needs for storage queries.
hypertrace:
image: hypertrace/hypertrace:main
container_name: hypertrace
environment:
- MONGO_HOST=mongo
- ZK_CONNECT_STR=zookeeper:2181/hypertrace-views
ports:
- 2020:2020
healthcheck:
start_period: 20s
depends_on:
mongo:
condition: service_healthy
kafka-zookeeper:
condition: service_healthy
pinot:
condition: service_started
# Ingestion pipeline
# Collects spans in different trace formats like Jaeger, Zipkin, etc
hypertrace-collector:
image: hypertrace/hypertrace-oc-collector
container_name: hypertrace-collector
command: ["--config=/config/collector-config.yaml"]
ports:
- 9411:9411 # Zipkin HTTP
networks:
default:
# Allows sample apps to connect with platform-specific hostnames
aliases:
- zipkin
depends_on:
kafka-zookeeper:
condition: service_healthy
# all-in-one ingestion pipeline for hypertrace
hypertrace-ingester:
image: hypertrace/hypertrace-ingester
container_name: hypertrace-ingester
environment:
- KAFKA_BOOTSTRAP_SERVERS=kafka:9092
- DEFAULT_TENANT_ID=__default
- SPAN_GROUPBY_SESSION_WINDOW_INTERVAL=2
- REPLICATION_FACTOR=1
- ENTITY_SERVICE_HOST_CONFIG=hypertrace
- ENTITY_SERVICE_PORT_CONFIG=9001
- NUM_STREAM_THREADS=1
- PRE_CREATE_TOPICS=true
- PRODUCER_VALUE_SERDE=org.hypertrace.core.kafkastreams.framework.serdes.GenericAvroSerde
volumes:
- ../docker/configs/log4j2.properties:/app/resources/log4j2.properties:ro
depends_on:
kafka-zookeeper:
condition: service_healthy
hypertrace:
# service_started, not service_healthy as pinot and deps can take longer than 60s to start
condition: service_started
# Third-party data services:
# Kafka is used for streaming functionality.
# ZooKeeper is required by Kafka and Pinot
kafka-zookeeper:
image: hypertrace/kafka-zookeeper:main
container_name: kafka-zookeeper
networks:
default:
# prevents apps from having to use the hostname kafka-zookeeper
aliases:
- kafka
- zookeeper
# Stores entities like API, service and backend
mongo:
image: hypertrace/mongodb:main
container_name: mongo
# Stores spans and traces and provides aggregation functions
pinot:
image: hypertrace/pinot-servicemanager:main
container_name: pinot
environment:
- LOG_LEVEL=error
networks:
default:
# Usually, Pinot is distributed, and clients connect to the controller
aliases:
- pinot-controller
cpu_shares: 2048
depends_on:
kafka-zookeeper:
condition: service_healthy