deploy/platform/docker/docker-compose.elasticsearch-monitor.yaml (74 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.
#
# @feature: elasticsearch; set up prometheus_elasticsearch_exporter and OpenTelemetry collector
version: '2.1'
services:
elasticsearch:
image: ${ES_IMAGE}:${ES_IMAGE_TAG}
networks: [ sw ]
ports:
- "9200:9200"
healthcheck:
test: [ "CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health" ]
interval: 30s
timeout: 10s
retries: 3
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
es-exporter:
image: quay.io/prometheuscommunity/elasticsearch-exporter:v1.5.0
expose:
- 9114
networks:
- sw
depends_on:
elasticsearch:
condition: service_healthy
command:
- '--log.format=logfmt'
- '--log.level=info'
- '--es.uri=http://elasticsearch:9200'
- '--es.all'
- '--es.indices'
- '--es.indices_settings'
- '--es.indices_mappings'
- '--es.shards'
- '--es.snapshots'
- '--es.timeout=30s'
- '--web.telemetry-path=/metrics'
healthcheck:
interval: 5s
timeout: 60s
retries: 120
test: ["CMD", "sh", "-c", "nc -vz localhost 9114"]
otel-collector:
image: ${OTEL_COLLECTOR_IMAGE}:${OTEL_COLLECTOR_IMAGE_TAG}
networks:
- sw
command: [ "--config=/etc/otel-collector-config.yaml" ]
volumes:
- ./config/otel-collector-config-elasticsearch.yaml:/etc/otel-collector-config.yaml
expose:
- 55678
depends_on:
oap:
condition: service_healthy
es-mock:
image: curlimages/curl:latest
networks:
- sw
depends_on:
elasticsearch:
condition: service_healthy
es-exporter:
condition: service_healthy
oap:
condition: service_healthy
command: "sh /etc/es-e2e-data-mock.sh"
volumes:
- ./scripts/es-e2e-data-mock.sh:/etc/es-e2e-data-mock.sh
networks:
sw: