deploy/platform/docker/docker-compose.cluster.yaml (65 lines of code) (raw):

# 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: elasticsearch: extends: file: docker-compose.single-node.yaml service: elasticsearch zookeeper: image: zookeeper:3.5 expose: - 2181 networks: [ sw ] healthcheck: test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/2181" ] interval: 5s timeout: 60s retries: 120 oap-init: # @feature: cluster; set up an init container to initialize the storage templates and indices image: ${SW_OAP_IMAGE}:${SW_OAP_IMAGE_TAG} networks: [ sw ] environment: SW_STORAGE: elasticsearch SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200 JAVA_OPTS: "-Dmode=init" # @feature: cluster; set the init container to "init" mode to initialize the storage templates and indices depends_on: elasticsearch: condition: service_healthy oap1: &oap image: ${SW_OAP_IMAGE}:${SW_OAP_IMAGE_TAG} networks: [ sw ] environment: SW_CLUSTER: zookeeper # @feature: cluster; set up a cluster coordinator SW_CLUSTER_ZK_HOST_PORT: zookeeper:2181 # @feature: cluster; set up the cluster coordinator address SW_HEALTH_CHECKER: default # @feature: health-check; SW_OTEL_RECEIVER: default # @feature: vm; enable the OC receiver that receives the VM metrics SW_OTEL_RECEIVER_ENABLED_OTEL_RULES: vm,mysql/*,postgresql/*,apisix,elasticsearch/*,rabbitmq/*,mongodb/* # @feature: vm; enable the OC rules that analyse the VM metrics SW_STORAGE: elasticsearch SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200 SW_TELEMETRY: prometheus # @feature: so11y; expose the metrics of self o11y through prometheus SW_PROMETHEUS_FETCHER: default # @feature: so11y; fetch the metrics of self o11y through prometheus JAVA_OPTS: "-Dmode=no-init -Xms2048m -Xmx2048m" # @feature: cluster; start the cluster nodes in no-init mode SW_METER_ANALYZER_ACTIVE_FILES: datasource,threadpool,satellite,spring-sleuth,go-runtime healthcheck: test: [ "CMD-SHELL", "/skywalking/bin/swctl ch" ] interval: 30s timeout: 10s retries: 3 depends_on: oap-init: condition: service_completed_successfully # @feature: cluster; wait for init container to complete zookeeper: condition: service_healthy oap: <<: *oap ui: image: ${SW_UI_IMAGE}:${SW_UI_IMAGE_TAG} networks: [ sw ] ports: - "9999:8080" depends_on: oap: condition: service_healthy environment: SW_OAP_ADDRESS: http://oap:12800,http://oap1:12800 networks: sw: