version: "3.7" networks: my_network: driver: bridge ipam: config: - subnet: 10.10.0.0/16 gateway: 10.10.0.1 services: dnsmasq: container_name: dnsmasq restart: always build: context: ../dns dockerfile: Dockerfile volumes: - ../dns/dnsmasq.conf:/etc/dnsmasq.conf - ../dns/hosts.prepper:/etc/hosts.prepper ports: - "5300:53/udp" cap_add: - NET_ADMIN networks: my_network: ipv4_address: 10.10.1.1 prometheus: image: prom/prometheus container_name: prometheus volumes: - ./prometheus/prometheus.yaml:/etc/prometheus/prometheus.yaml command: - "--config.file=/etc/prometheus/prometheus.yaml" ports: - "9090:9090" networks: - my_network grafana: image: grafana/grafana container_name: grafana ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_PASSWORD=admin networks: - my_network data-prepper: restart: unless-stopped dns: 10.10.1.1 container_name: data-prepper build: args: DATA_PREPPER_VERSION: "2.0.0-SNAPSHOT" context: ../../.. dockerfile: examples/dev/trace-analytics-sample-app/Dockerfile working_dir: /usr/share/data-prepper/ command: sh data-prepper-wait-for-opensearch-and-start.sh volumes: - ./resources/data-prepper-wait-for-opensearch-and-start.sh:/usr/share/data-prepper/data-prepper-wait-for-opensearch-and-start.sh - ./resources/pipelines.yaml:/usr/share/data-prepper/pipelines/pipelines.yaml - ./resources/data-prepper-config.yaml:/usr/share/data-prepper/config/data-prepper-config.yaml - ../../../shared-config/log4j2.properties:/usr/share/data-prepper/config/log4j.properties - ../../demo/root-ca.pem:/usr/share/data-prepper/root-ca.pem - ../../demo/test_keystore.p12:/usr/share/data-prepper/test_keystore.p12 - ../../demo/demo-data-prepper.crt:/usr/share/data-prepper/demo-data-prepper.crt - ../../demo/demo-data-prepper.key:/usr/share/data-prepper/demo-data-prepper.key ports: - "4900:4900" # DataPrepperServer port - "21890:21890" # OTelTraceSource port networks: my_network: ipv4_address: 10.10.1.2 depends_on: - opensearch opensearch: container_name: node-0.example.com image: opensearchproject/opensearch:2 ports: - "9200:9200" - "9600:9600" environment: - discovery.type=single-node networks: - my_network opensearch-dashboard: container_name: opensearch-dashboard image: opensearchproject/opensearch-dashboards:2 ports: - 5601:5601 expose: - "5601" environment: OPENSEARCH_URL: https://node-0.example.com:9200 OPENSEARCH_HOSTS: https://node-0.example.com:9200 networks: - my_network otel-collector: restart: unless-stopped dns: 10.10.1.1 image: otel/opentelemetry-collector:0.24.0 command: ["--config=/etc/otel-collector-config.yml"] volumes: - ./opentelemetry-collector/otel-collector-config.yml:/etc/otel-collector-config.yml - ../../demo/demo-data-prepper.crt:/etc/demo-data-prepper.crt ports: - "55680:55680" depends_on: - data-prepper networks: - my_network mysql: restart: unless-stopped image: mysql:latest ports: - "3306:3306" environment: - MYSQL_ALLOW_EMPTY_PASSWORD=yes networks: - my_network sample-app: restart: unless-stopped build: context: ../../trace-analytics-sample-app/sample-app dockerfile: Dockerfile ports: - "8082:8082" # inventory - "8083:8083" # database - "8084:8084" # payment - "8085:8085" # auth - "8086:8086" # recommendation - "8087:8087" # analytics-service - "8088:8088" # order - "8089:8089" # client-dashboard environment: - OTEL_EXPORTER=otlp - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:55680 - OTEL_RESOURCE_ATTRIBUTES=service.name=analytics-service - OTLP=otel-collector - MYSQL_HOST=mysql - MYSQL_PORT=3306 - WAIT_HOSTS=otel-collector:55680, mysql:3306 depends_on: - otel-collector - mysql networks: - my_network