@@ -9,7 +9,7 @@ services:
99 - /etc/localtime:/etc/localtime:ro
1010 - ./opentelemetry-javaagent.jar:/app/opentelemetry-javaagent.jar
1111 working_dir : /app
12- command : [ "java", "-jar", "coin-0.0.1-SNAPSHOT.jar", "--spring.profiles.active=dev,mariadb-local,actuator,apm" ]
12+ command : [ "java", "-jar", "coin-0.0.1-SNAPSHOT.jar", "--spring.profiles.active=dev,it, mariadb-local,actuator,apm" ]
1313 ports :
1414 - " 8080:8080"
1515 env_file :
@@ -18,14 +18,16 @@ services:
1818 - TZ=Asia/Seoul
1919 - OTEL_SERVICE_NAME=my-spring-app
2020 - OTEL_TRACES_EXPORTER=otlp
21- - OTEL_EXPORTER_OTLP_ENDPOINT=http://jaeger :4318
21+ - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector :4318
2222 - OTEL_LOGS_EXPORTER=none
2323 - OTEL_METRICS_EXPORTER=none
2424 - OTEL_INSTRUMENTATION_METHODS_ENABLED=true
25- - JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005, - javaagent:/app/opentelemetry-javaagent.jar
25+ - JAVA_TOOL_OPTIONS=-javaagent:/app/opentelemetry-javaagent.jar
2626 depends_on :
2727 mariadb :
2828 condition : service_healthy
29+ otel-collector :
30+ condition : service_started
2931 networks :
3032 - app-network
3133 - monitoring-net
@@ -60,12 +62,31 @@ services:
6062 command :
6163 - ' --config.file=/etc/prometheus/prometheus.yml'
6264 - ' --storage.tsdb.retention.time=30d'
65+ - ' --web.enable-remote-write-receiver'
6366 ports :
6467 - " 9090:9090"
6568 networks :
6669 - monitoring-net
6770 restart : unless-stopped
6871
72+ influxdb :
73+ image : influxdb:2.7
74+ container_name : influxdb
75+ ports :
76+ - " 8086:8086"
77+ volumes :
78+ - influxdb_data:/var/lib/influxdb2
79+ environment :
80+ - DOCKER_INFLUXDB_INIT_MODE=setup
81+ - DOCKER_INFLUXDB_INIT_USERNAME=k6-user # 임의의 사용자/비밀번호
82+ - DOCKER_INFLUXDB_INIT_PASSWORD=k6-password
83+ - DOCKER_INFLUXDB_INIT_ORG=k6-org
84+ - DOCKER_INFLUXDB_INIT_BUCKET=k6-bucket
85+ - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=vJvTx5b8vjgH7mu-M-BsEvdy5_COovexAjyniVhMF1yPzvsp2g8kp62opqXVMq6ICAq2tLJxxD6ifXPBZ9YVmA==
86+ networks :
87+ - monitoring-net
88+ restart : unless-stopped
89+
6990 grafana :
7091 image : grafana/grafana:11.0.0
7192 container_name : grafana
@@ -80,22 +101,53 @@ services:
80101 depends_on :
81102 - prometheus
82103 - jaeger
104+ - influxdb
83105
84106 jaeger :
85107 image : jaegertracing/all-in-one:latest
86108 container_name : jaeger
109+ user : " ${UID}:${GID}"
110+ environment :
111+ - SPAN_STORAGE_TYPE=badger
112+ - BADGER_EPHEMERAL=false
113+ - BADGER_DIRECTORY_VALUE=/tmp/jaeger/data
114+ - BADGER_DIRECTORY_KEY=/tmp/jaeger/keys
115+ - COLLECTOR_OTLP_ENABLED=true
116+ - COLLECTOR_OTLP_GRPC_HOST_PORT=0.0.0.0:4317
117+ - COLLECTOR_OTLP_HTTP_HOST_PORT=0.0.0.0:4318
118+ volumes :
119+ - jaeger_data:/tmp/jaeger
87120 ports :
88- - " 16686:16686"
121+ - " 16686:16686" # UI
122+ - " 4319:4317"
123+ - " 4320:4318"
124+ networks :
125+ - monitoring-net
126+
127+
128+ otel-collector :
129+ image : otel/opentelemetry-collector-contrib:latest
130+ command : ["--config=/etc/otel-collector-config.yml"]
131+ volumes :
132+ - ./otel/otel-collector-config.yml:/etc/otel-collector-config.yml
133+ ports :
134+ - " 8889:8889"
89135 - " 4317:4317"
90136 - " 4318:4318"
137+ - " 13133:13133"
91138 networks :
92139 - monitoring-net
140+ depends_on :
141+ jaeger :
142+ condition : service_started
93143
94144volumes :
95145 prometheus_data : {}
96146 grafana_data : {}
97147 mariadb_data :
98148 driver : local
149+ influxdb_data : {}
150+ jaeger_data : {}
99151
100152networks :
101153 app-network :
@@ -104,3 +156,8 @@ networks:
104156 monitoring-net :
105157 name : monitoring-net
106158 driver : bridge
159+
160+
161+ # export K6_INFLUXDB_ORGANIZATION=k6-org
162+ # - export K6_INFLUXDB_BUCKET=k6-bucket
163+ # ./k6 run --out xk6-influxdb=http://localhost:8086 /Users/jangbongjun/coin/src/test/resources/k6/chart-stomp-test.js
0 commit comments