blob: c3dc306bd9d5cb45d33e1c377b520fa7d4aee329 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
version: '2.1'
services:
oap:
extends:
file: ../../../script/docker-compose/base-compose.yml
service: oap
ports:
- 12800
entrypoint: ['sh', '-c', '/download-mysql.sh /skywalking/oap-libs && chmod 777 /skywalking/docker-entrypoint.sh && /skywalking/docker-entrypoint.sh']
networks:
- e2e
environment:
- TZ=Asia/Shanghai
- SW_STORAGE=mysql
- SW_DATA_SOURCE_USER=root
- SW_DATA_SOURCE_PASSWORD=password
- SW_JDBC_URL=jdbc:mysql://mysql:3306/swtest?allowMultiQueries=true
- SW_CORE_TOPN_REPORT_PERIOD=2
depends_on:
mysql:
condition: service_healthy
mysql:
image: mysql:8.0.13
networks:
- e2e
volumes:
- ../mysql-slowsql/log:/var/lib/mysql
- ../mysql-slowsql/my.cnf:/etc/my.cnf
environment:
- "MYSQL_ROOT_PASSWORD=password"
- "MYSQL_DATABASE=swtest"
ports:
- 3306
healthcheck:
test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/3306"]
interval: 5s
timeout: 60s
retries: 120
mysql_2: &mysql
image: mysql:8.0.13
networks:
- e2e
volumes:
- ../mysql-slowsql/my.cnf:/etc/my.cnf
environment:
- "MYSQL_ROOT_PASSWORD=password"
- "MYSQL_DATABASE=swtest"
ports:
- 3306
mysql_3:
<<: *mysql
mysql-load:
image: mysql:8.0.13
depends_on:
oap:
condition: service_healthy
networks:
- e2e
entrypoint: bash
volumes:
- ./mock.sql:/docker/mock.sql
command:
- -c
- "mysql -h mysql -uroot -ppassword < /docker/mock.sql"
mysql-load_2:
image: mysql:8.0.13
depends_on:
oap:
condition: service_healthy
networks:
- e2e
entrypoint: bash
volumes:
- ./mock.sql:/docker/mock.sql
command:
- -c
- "mysql -h mysql_2 -uroot -ppassword < /docker/mock.sql"
mysql-load_3:
image: mysql:8.0.13
depends_on:
oap:
condition: service_healthy
networks:
- e2e
entrypoint: bash
volumes:
- ./mock.sql:/docker/mock.sql
command:
- -c
- "mysql -h mysql_3 -uroot -ppassword < /docker/mock.sql"
fluentbit:
image: fluent/fluent-bit:1.9
environment:
- TZ=Asia/Shanghai
volumes:
- ../mysql-slowsql/log:/tmp/skywalking-logs
- ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
- ./fluent-bit-parser.conf:/fluent-bit/etc/fluent-bit-parser.conf
- ./fluent-bit-script.lua:/fluent-bit/etc/fluent-bit-script.lua
networks:
- e2e
depends_on:
- mysql
mysql-service:
image: prom/mysqld-exporter:v0.14.0
ports:
- 9104
environment:
- DATA_SOURCE_NAME=root:password@(mysql:3306)/
networks:
- e2e
depends_on:
- mysql
mysql-service_2:
image: prom/mysqld-exporter:v0.14.0
ports:
- 9104
environment:
- DATA_SOURCE_NAME=root:password@(mysql_2:3306)/
networks:
- e2e
depends_on:
- mysql_2
mysql-service_3:
image: prom/mysqld-exporter:v0.14.0
ports:
- 9104
environment:
- DATA_SOURCE_NAME=root:password@(mysql_3:3306)/
networks:
- e2e
depends_on:
- mysql_3
otel-collector:
image: otel/opentelemetry-collector:${OTEL_COLLECTOR_VERSION}
networks:
- e2e
command: [ "--config=/etc/otel-collector-config.yaml" ]
volumes:
- ../prometheus-mysql-exporter/otel-collector-config.yaml:/etc/otel-collector-config.yaml
expose:
- 55678
depends_on:
oap:
condition: service_healthy
networks:
e2e: