blob: 05e7b31ef8a0523053b4187aa8156bddbe43b936 [file]
# 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.
---
services:
otel-collector:
image: otel/opentelemetry-collector-contrib:0.155.0
labels:
org.apache.airflow.breeze: "true"
org.apache.airflow.breeze.worktree: "${BREEZE_WORKTREE_PATH:-}"
breeze.description: "Integration required for OTEL/opentelemetry hooks."
container_name: "breeze-otel-collector"
command: [--config=/etc/otel-collector-config.yml]
volumes:
- ./otel-collector-config.yml:/etc/otel-collector-config.yml
ports:
- "24318:4318" # OTLP http receiver
- "28889:8889" # Prometheus exporter metrics
prometheus:
labels:
org.apache.airflow.breeze: "true"
org.apache.airflow.breeze.worktree: "${BREEZE_WORKTREE_PATH:-}"
image: prom/prometheus:v3.5.4
container_name: "breeze-prometheus"
user: "0"
command:
- "--config.file=/etc/prometheus/prometheus.yml"
- "--enable-feature=native-histograms"
ports:
- "29090:9090"
volumes:
- ./prometheus-config.yml:/etc/prometheus/prometheus.yml
grafana:
labels:
org.apache.airflow.breeze: "true"
org.apache.airflow.breeze.worktree: "${BREEZE_WORKTREE_PATH:-}"
image: grafana/grafana:8.2.4
container_name: "breeze-grafana"
environment:
GF_AUTH_ANONYMOUS_ENABLED: true
GF_AUTH_ANONYMOUS_ORG_NAME: "Main Org."
GF_AUTH_ANONYMOUS_ORG_ROLE: "Admin"
GF_PATHS_PROVISIONING: /grafana/provisioning
ports:
- "23000:3000"
volumes:
- ./grafana/volume/data:/grafana
- ./grafana/volume/datasources:/grafana/datasources
- ./grafana/volume/dashboards:/grafana/dashboards
- ./grafana/volume/provisioning:/grafana/provisioning
jaeger:
labels:
org.apache.airflow.breeze: "true"
org.apache.airflow.breeze.worktree: "${BREEZE_WORKTREE_PATH:-}"
image: jaegertracing/all-in-one:1.57
container_name: "breeze-jaeger"
environment:
COLLECTOR_OTLP_ENABLED: true
COLLLECTOR_ZIPKIN_HOST_PORT: 9411
# Host ports are intentionally below 32768 to stay outside Linux's default
# ephemeral port range (32768-60999). Picking high ports inside that range
# causes intermittent CI failures when the kernel transiently grabs the
# same port for an outbound connection from another process on the runner.
ports:
- "26686:16686"
- "24317:4317"
- "27318:4318"
- "29422:9422"
airflow:
environment:
- INTEGRATION_OTEL=true
- OTEL_SERVICE_NAME=test
- OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
- OTEL_TRACES_EXPORTER=otlp_proto_http
- OTEL_METRICS_EXPORTER=otlp
- OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://breeze-otel-collector:4318/v1/traces
- OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://breeze-otel-collector:4318/v1/metrics
- OTEL_METRIC_EXPORT_INTERVAL=30000
- AIRFLOW__METRICS__OTEL_ON=True
- AIRFLOW__TRACES__OTEL_ON=True
- AIRFLOW__TRACES__OTEL_TASK_LOG_EVENT=True # todo: deprecate
depends_on:
- otel-collector
- prometheus
- grafana
- jaeger