# Managed by Ansible (roles/observability). Do not edit by hand. services: loki: image: {{ observability_loki_image }} container_name: loki restart: unless-stopped user: "0:0" command: -config.file=/etc/loki/loki-config.yml ports: - "3100:3100" volumes: - ./loki/loki-config.yml:/etc/loki/loki-config.yml:ro - ./loki/data:/loki healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:3100/ready || exit 1"] interval: 15s timeout: 5s retries: 10 prometheus: image: {{ observability_prometheus_image }} container_name: prometheus restart: unless-stopped command: - --config.file=/etc/prometheus/prometheus.yml - --storage.tsdb.path=/prometheus - --storage.tsdb.retention.time={{ observability_prometheus_retention }} - --web.enable-remote-write-receiver - --web.enable-lifecycle ports: - "9090:9090" volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro - ./prometheus/data:/prometheus healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:9090/-/ready || exit 1"] interval: 15s timeout: 5s retries: 10 grafana: image: {{ observability_grafana_image }} container_name: grafana restart: unless-stopped depends_on: loki: condition: service_healthy prometheus: condition: service_healthy ports: - "3000:3000" environment: GF_SECURITY_ADMIN_USER: "{{ observability_grafana_admin_user }}" GF_SECURITY_ADMIN_PASSWORD: "{{ observability_grafana_admin_password }}" GF_USERS_ALLOW_SIGN_UP: "false" GF_SERVER_ROOT_URL: "{{ observability_grafana_public_url }}" GF_SERVER_DOMAIN: "{{ observability_grafana_domain }}" volumes: - ./grafana/data:/var/lib/grafana - ./grafana/provisioning:/etc/grafana/provisioning:ro