Skip to content

Commit 2a92805

Browse files
authored
Merge pull request #17 from browserup/click-house-config
2 parents 35701a9 + 2e71731 commit 2a92805

27 files changed

+12568
-160
lines changed

lib/commands/stop.mjs

+2-2
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ export async function sendStopRunRequest(runId, apiToken) {
7777
try {
7878
log.debug(`Sending stop Run with id: ${runId} request`);
7979

80-
await WebConsoleClient.sendPathRequest({
81-
path: `load/runs/${runId}`,
80+
await WebConsoleClient.sendGetRequest({
81+
path: `load/runs/${runId}/stop`,
8282
qParams: {
8383
api_token: apiToken
8484
}

lib/config/env.properties

+5-14
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@ BROWSERUP_LOCKBOX_MASTER_KEY=439e901f30a3ce31836dbc81e67411e1f84f43491740ca0f91d
77
BROWSERUP_GRID_JAVA_API_HOST=grid-java-api
88
BROWSERUP_GRID_JAVA_API_PORT=23001
99

10-
BROWSERUP_MYSQL_HOST=mysql
11-
BROWSERUP_MYSQL_PORT=23002
12-
BROWSERUP_MYSQL_PASSWORD=just_testing
13-
BROWSERUP_MYSQL_USERNAME=browserup
14-
1510
BROWSERUP_S3_MINIO_HOST=minio
1611
BROWSERUP_S3_MINIO_PORT_1=23003
1712
BROWSERUP_S3_MINIO_PORT_2=23004
@@ -28,19 +23,12 @@ BROWSERUP_ZOOKEEPER_HOST=zookeeper
2823
BROWSERUP_ZOOKEEPER_CLIENT_PORT=23008
2924
BROWSERUP_ZOO_MAX_CLIENT_CNXNS=500
3025

31-
BROWSERUP_REDIS_HOST=redis
32-
BROWSERUP_REDIS_PORT=23009
26+
BROWSERUP_CLICKHOUSE_HOST=clickhouse
3327

3428
BROWSERUP_CHRONOGRAF_HOST=chronograf
3529
BROWSERUP_CHRONOGRAF_PORT=23010
3630

37-
BROWSERUP_INFLUX_DB_HOST=influxdb
38-
BROWSERUP_INFLUX_DB_PORT=23011
39-
BROWSERUP_INFLUX_DB_NAME=browserup
40-
BROWSERUP_INFLUX_DB_USER=browserup
41-
BROWSERUP_INFLUX_TEST_DB_HOST=influx-test-db
42-
BROWSERUP_INFLUX_TEST_DB_PORT=23011
43-
BROWSERUP_INFLUX_DB_PASSWORD=just_testing
31+
BROWSERUP_LOKI_HOST=loki
4432

4533
BROWSERUP_S3_MINIO_HOST_PORT_1=23012
4634

@@ -50,3 +38,6 @@ BROWSERUP_GRAFANA_PASSWORD=just_testing
5038

5139
BROWSERUP_PRIVATE_DNS_NAMESPACE_NAME=browserup-internal.com
5240
BROWSERUP_CLUSTER_PUBLIC_IP=localhost
41+
42+
BROWSERUP_NATS_URLS=nats://nats:4222
43+
BROWSERUP_NATS_SERVER_LIST=nats:4222

lib/docker_compose/docker-compose.yml

+79-116
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,14 @@ services:
66
backend-services:
77
image: busybox
88
depends_on:
9-
- chronograf
10-
- influxdb
11-
- mysql
129
- rabbitmq
13-
- redis
1410
- zookeeper
1511
- minio
1612
- grafana
1713

1814
backend-services-nodb:
1915
image: busybox
2016
depends_on:
21-
- chronograf
22-
- influxdb
2317
- rabbitmq
2418
- zookeeper
2519

@@ -61,12 +55,7 @@ services:
6155
- BROWSERUP_RABBITMQ_DEFAULT_PASS=${BROWSERUP_RABBITMQ_DEFAULT_PASS}
6256
- BROWSERUP_RABBITMQ_QUEUE_PORT=5672
6357
- BROWSERUP_ZOOKEEPER_HOST=${BROWSERUP_ZOOKEEPER_HOST}
64-
- BROWSERUP_ZOOKEEPER_CLIENT_PORT=2181
65-
- BROWSERUP_INFLUX_DB_HOST=${BROWSERUP_INFLUX_DB_HOST}
66-
- BROWSERUP_INFLUX_DB_PORT=8086
67-
- BROWSERUP_INFLUX_DB_NAME=browserup
68-
- BROWSERUP_INFLUX_DB_USER=browserup
69-
- BROWSERUP_INFLUX_DB_PASSWORD=${BROWSERUP_INFLUX_DB_PASSWORD}
58+
- BROWSERUP_ZOOKEEPER_CLIENT_PORT=9181
7059
- BROWSERUP_MINION_VUS=1
7160
- BROWSERUP_MAX_MINIONS_PER_EC2_INSTANCE=${BROWSERUP_MAX_MINIONS_PER_EC2_INSTANCE}
7261
- BROWSERUP_IS_CLOUD=false
@@ -88,8 +77,8 @@ services:
8877
- BROWSERUP_S3_MINIO_HOST_PORT_1=${BROWSERUP_S3_MINIO_PORT_1}
8978
- BROWSERUP_S3_MINIO_ARTIFACTS_BUCKET=${BROWSERUP_S3_MINIO_ARTIFACTS_BUCKET}
9079
- BROWSERUP_CLUSTER_NAME=${BROWSERUP_CLUSTER_NAME}
80+
- BROWSERUP_NATS_URLS=${BROWSERUP_NATS_URLS}
9181
depends_on:
92-
- influxdb
9382
- zookeeper
9483
- rabbitmq
9584
- fluentbit
@@ -119,12 +108,7 @@ services:
119108
- BROWSERUP_RABBITMQ_DEFAULT_PASS=${BROWSERUP_RABBITMQ_DEFAULT_PASS}
120109
- BROWSERUP_RABBITMQ_QUEUE_PORT=5672
121110
- BROWSERUP_ZOOKEEPER_HOST=${BROWSERUP_ZOOKEEPER_HOST}
122-
- BROWSERUP_ZOOKEEPER_CLIENT_PORT=2181
123-
- BROWSERUP_INFLUX_DB_HOST=${BROWSERUP_INFLUX_DB_HOST}
124-
- BROWSERUP_INFLUX_DB_PORT=8086
125-
- BROWSERUP_INFLUX_DB_NAME=browserup
126-
- BROWSERUP_INFLUX_DB_USER=browserup
127-
- BROWSERUP_INFLUX_DB_PASSWORD=${BROWSERUP_INFLUX_DB_PASSWORD}
111+
- BROWSERUP_ZOOKEEPER_CLIENT_PORT=9181
128112
- BROWSERUP_MINION_VUS=1
129113
- BROWSERUP_MINION_IMAGE_VERSION_TAG=${MINION_IMAGE_VERSION_TAG}
130114
- BROWSERUP_S3_MINIO_ACCESS_KEY_ID=${BROWSERUP_S3_MINIO_ACCESS_KEY_ID}
@@ -138,6 +122,33 @@ services:
138122
- BROWSERUP_CLUSTER_NAME=${BROWSERUP_CLUSTER_NAME}
139123
- BROWSERUP_USER_ARTIFACT_CACHE_PATH=/bu/artifactcache
140124
- BROWSERUP_USE_LOCAL_DOCKER_CACHED_IMAGE=${BROWSERUP_USE_LOCAL_DOCKER_CACHED_IMAGE}
125+
- BROWSERUP_NATS_URLS=${BROWSERUP_NATS_URLS}
126+
depends_on:
127+
- zookeeper
128+
- rabbitmq
129+
- grid-java-api
130+
- fluentbit
131+
- clickhouse
132+
logging:
133+
driver: "fluentd"
134+
options:
135+
fluentd-address: "localhost:24224"
136+
137+
grid-java-observer:
138+
container_name: browserup_grid-java-observer
139+
image: docker.io/browserup/observer:latest
140+
volumes:
141+
- /var/run/docker.sock:/var/run/docker.sock
142+
restart: on-failure
143+
environment:
144+
- BROWSERUP_RABBITMQ_HOST=${BROWSERUP_RABBITMQ_HOST}
145+
- BROWSERUP_RABBITMQ_DEFAULT_USER=browserup
146+
- BROWSERUP_RABBITMQ_DEFAULT_PASS=${BROWSERUP_RABBITMQ_DEFAULT_PASS}
147+
- BROWSERUP_RABBITMQ_QUEUE_PORT=5672
148+
- BROWSERUP_ZOOKEEPER_HOST=${BROWSERUP_ZOOKEEPER_HOST}
149+
- BROWSERUP_ZOOKEEPER_CLIENT_PORT=9181
150+
- BROWSERUP_IS_CLOUD=false
151+
- BROWSERUP_NATS_URLS=${BROWSERUP_NATS_URLS}
141152
depends_on:
142153
- zookeeper
143154
- rabbitmq
@@ -150,29 +161,21 @@ services:
150161

151162
webconsole:
152163
container_name: browserup_webconsole
153-
image: docker.io/browserup/webconsole:latest
164+
image: docker.io/browserup/webconsole:snapshot
154165
privileged: true
155166
security_opt:
156167
- "seccomp=unconfined"
157168
- "apparmor=unconfined"
158169
devices:
159170
- "/dev/fuse"
160171
ports:
161-
- "${BROWSERUP_WEBCONSOLE_PORT}:3000"
172+
- "${BROWSERUP_WEBCONSOLE_PORT}:3100"
162173
environment:
163174
- DOCKER_LOGS=true
164-
- BROWSERUP_MYSQL_HOST=${BROWSERUP_MYSQL_HOST}
165-
- BROWSERUP_MYSQL_USERNAME=browserup
166-
- BROWSERUP_MYSQL_PASSWORD=${BROWSERUP_MYSQL_PASSWORD}
167-
- BROWSERUP_MYSQL_PORT=3306
168-
- BROWSERUP_INFLUX_DB_HOST=${BROWSERUP_INFLUX_DB_HOST}
169-
- BROWSERUP_INFLUX_DB_PORT=8086
170-
- BROWSERUP_INFLUX_DB_NAME=browserup
171-
- BROWSERUP_INFLUX_DB_USER=browserup
172-
- BROWSERUP_INFLUX_DB_PASSWORD=${BROWSERUP_INFLUX_DB_PASSWORD}
175+
- BROWSERUP_CLICKHOUSE_HOST=${BROWSERUP_CLICKHOUSE_HOST}
173176
- BROWSERUP_GRID_SERVICE_URL=http://${BROWSERUP_GRID_JAVA_API_HOST}:8080/grid
177+
- BROWSERUP_LOKI_SERVICE_URL=http://${BROWSERUP_LOKI_HOST}:3100
174178
- BROWSERUP_IS_CLOUD=false
175-
- BROWSERUP_REDIS_URL=redis://${BROWSERUP_REDIS_HOST}:6379/1
176179
- BROWSERUP_S3_MINIO_ACCESS_KEY_ID=${BROWSERUP_S3_MINIO_ACCESS_KEY_ID}
177180
- BROWSERUP_S3_MINIO_SECRET_ACCESS_KEY=${BROWSERUP_S3_MINIO_SECRET_ACCESS_KEY}
178181
- BROWSERUP_S3_MINIO_ARTIFACTS_BUCKET=${BROWSERUP_S3_MINIO_ARTIFACTS_BUCKET}
@@ -186,86 +189,62 @@ services:
186189
- RAILS_LOG_TO_STDOUT=true
187190
- RAILS_SERVE_STATIC_FILES=true
188191
- BROWSERUP_S3_MINIO_HOST_PORT_1=${BROWSERUP_S3_MINIO_PORT_1}
192+
- RAILS_MASTER_KEY=6f893b421a180634146cd1eb5f58cc80
193+
- PORT=3000
194+
- BROWSERUP_WC_RUNNING_AS_SERVER=true
195+
- BROWSERUP_NATS_URLS=${BROWSERUP_NATS_URLS}
196+
- BROWSERUP_NATS_SERVER_LIST=${BROWSERUP_NATS_SERVER_LIST}
189197
depends_on:
190-
- mysql
191-
- influxdb
192198
- grid-java-api
193-
- redis
194199
- minio
195200
- fluentbit
196201
logging:
197202
driver: "fluentd"
198203
options:
199204
fluentd-address: "localhost:24224"
200-
volumes:
201-
- ./containers:/var/lib/containers
202205

203-
chronograf:
204-
image: chronograf:1.7.16
205-
ports:
206-
- "${BROWSERUP_CHRONOGRAF_PORT}:8888"
207-
depends_on:
208-
- influxdb
209-
- fluentbit
210-
logging:
211-
driver: "fluentd"
212-
options:
213-
fluentd-address: "localhost:24224"
214-
215-
influxdb:
216-
container_name: browserup_influxdb
217-
image: influxdb:1.8.10
206+
clickhouse:
207+
image: 'clickhouse/clickhouse-server:25.1'
208+
container_name: clickhouse
209+
hostname: clickhouse
218210
volumes:
219-
- influxdb-volume:/var/lib/influxdb
220-
ports:
221-
- "${BROWSERUP_INFLUX_DB_PORT}:8086"
222-
environment:
223-
- INFLUXDB_DB=browserup
224-
- INFLUX_DB_USER=browserup
225-
- INFLUX_DB_PASSWORD=${BROWSERUP_INFLUX_DB_PASSWORD}
226-
- INFLUXDB_LOGGING_LEVEL=debug
227-
- INFLUXDB_DATA_MAX_SERIES_PER_DATABASE=0
228-
- INFLUXDB_DATA_MAX_VALUES_PER_TAG=0
229-
- INFLUXDB_HTTP_LOG_ENABLED=false
211+
- ./resources/click-house/config.xml:/etc/clickhouse-server/config.d/config.xml
212+
- ./resources/click-house/users.xml:/etc/clickhouse-server/users.d/users.xml
213+
- ./resources/click-house/schemas/errors.proto:/var/lib/clickhouse/format_schemas/errors.proto
214+
- ./resources/click-house/schemas/run_infos.proto:/var/lib/clickhouse/format_schemas/run_infos.proto
215+
- ./resources/click-house/schemas/steps.proto:/var/lib/clickhouse/format_schemas/steps.proto
216+
- ./resources/click-house/schemas/system_stats.proto:/var/lib/clickhouse/format_schemas/system_stats.proto
217+
- ./resources/click-house/schemas/urls.proto:/var/lib/clickhouse/format_schemas/urls.proto
218+
- ./resources/click-house/schemas/verifications.proto:/var/lib/clickhouse/format_schemas/verifications.proto
219+
- ./resources/click-house/schemas/vu_logs.proto:/var/lib/clickhouse/format_schemas/vu_logs.proto
220+
- ./resources/click-house/schemas/vu_statuses.proto:/var/lib/clickhouse/format_schemas/vu_statuses.proto
230221
depends_on:
222+
- zookeeper
223+
- nats
231224
- fluentbit
232225
logging:
233226
driver: "fluentd"
234227
options:
235228
fluentd-address: "localhost:24224"
236229

237-
mysql:
238-
container_name: browserup_mysql
239-
image: mysql:8.0.31-oracle
240-
command: mysqld --default-authentication-plugin=mysql_native_password
230+
zookeeper:
231+
image: 'clickhouse/clickhouse-keeper:24.4'
232+
container_name: zookeeper
233+
hostname: zookeeper
241234
volumes:
242-
- mysql-volume:/var/lib/mysql
243-
- ./resources/init.sql:/docker-entrypoint-initdb.d/z-create-test-db.sql
244-
ports:
245-
- "${BROWSERUP_MYSQL_PORT}:3306"
246-
environment:
247-
- MYSQL_RANDOM_ROOT_PASSWORD=yes
248-
- MYSQL_DATABASE=browserup_development
249-
- MYSQL_USER=browserup
250-
- MYSQL_PASSWORD=${BROWSERUP_MYSQL_PASSWORD}
235+
- ./resources/click-house/keeper-config.xml:/etc/clickhouse-keeper/keeper_config.xml
251236
depends_on:
252237
- fluentbit
253238
logging:
254239
driver: "fluentd"
255240
options:
256241
fluentd-address: "localhost:24224"
257242

258-
redis:
259-
container_name: browserup_redis
260-
image: redis:6.2.5
261-
ports:
262-
- "${BROWSERUP_REDIS_PORT}:6379"
263-
depends_on:
264-
- fluentbit
265-
logging:
266-
driver: "fluentd"
267-
options:
268-
fluentd-address: "localhost:24224"
243+
nats:
244+
image: nats
245+
volumes:
246+
- ./resources/nats/nats-server.conf:/etc/nats/nats-server.conf
247+
command: "--cluster_name NATS --cluster nats://0.0.0.0:6222 --http_port 8222 -c /etc/nats/nats-server.conf"
269248

270249
rabbitmq:
271250
container_name: browserup_rabbitmq
@@ -291,28 +270,6 @@ services:
291270
options:
292271
fluentd-address: "localhost:24224"
293272

294-
zookeeper:
295-
container_name: browserup_zookeeper
296-
image: zookeeper:3.8.1
297-
volumes:
298-
- ./resources/zoo.cfg:/conf/zoo.cfg
299-
- zookeeper-data-volume:/data
300-
- zookeeper-datalog-volume:/datalog
301-
ports:
302-
- "${BROWSERUP_ZOOKEEPER_CLIENT_PORT}:2181"
303-
environment:
304-
- ZOO_TICK_TIME=300000 # Helpful for debugging
305-
- ZOO_CFG_EXTRA=warn
306-
- ZOO_MAX_CLIENT_CNXNS=${BROWSERUP_ZOO_MAX_CLIENT_CNXNS}
307-
depends_on:
308-
- fluentbit
309-
- loki
310-
- grafana
311-
logging:
312-
driver: "fluentd"
313-
options:
314-
fluentd-address: "localhost:24224"
315-
316273
minio:
317274
container_name: browserup_minio
318275
image: quay.io/minio/minio:RELEASE.2022-01-08T03-11-54Z
@@ -336,17 +293,13 @@ services:
336293

337294
# router
338295
fluentbit:
339-
image: fluent/fluent-bit:2.1.10
296+
image: fluent/fluent-bit:3.0.3
340297
depends_on:
341298
- loki
342299
environment:
343300
- LOG_PATH=/tmp
344-
ports:
345-
- "24224:24224"
346-
- "24224:24224/udp"
347-
- "2020:2020"
348301
volumes:
349-
- ./resources/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
302+
- ./resources/fluent-bit:/fluent-bit/etc
350303

351304
# storage
352305
loki:
@@ -371,6 +324,18 @@ services:
371324
- ./resources/grafana-default-dashboard.json:/etc/grafana/provisioning/dashboards/grafana-default-dashboard.json
372325
- ./resources/grafana-zookeeper-dashboard.json:/etc/grafana/provisioning/dashboards/grafana-zookeeper-dashboard.json
373326
- ./resources/grafana-grid-services-dashboard.json:/etc/grafana/provisioning/dashboards/grafana-grid-services-dashboard.json
327+
- ./resources/grafana-cadvisor-dashboard.json:/etc/grafana/provisioning/dashboards/grafana-cadvisor-dashboard.json
328+
- ./resources/grafana-clickhouse-dashboard.json:/etc/grafana/provisioning/dashboards/grafana-clickhouse-dashboard.json
329+
330+
cadvisor:
331+
image: gcr.io/cadvisor/cadvisor
332+
container_name: cadvisor
333+
volumes:
334+
- /:/rootfs:ro
335+
- /var/run:/var/run:ro
336+
- /sys:/sys:ro
337+
- /var/lib/docker/:/var/lib/docker:ro
338+
- /dev/disk:/dev/disk/:ro
374339

375340
prometheus:
376341
image: prom/prometheus:v2.44.0
@@ -380,8 +345,6 @@ services:
380345
- "${PROMETHEUS_PORT}:9090"
381346

382347
volumes:
383-
influxdb-volume:
384-
mysql-volume:
385348
rabbitmq-volume:
386349
zookeeper-data-volume:
387350
zookeeper-datalog-volume:

0 commit comments

Comments
 (0)