{# Prometheus monitoring integration — single SPOT for all nginx vhosts. Included from basic.conf.j2, synapse.conf.j2, and any other custom vhost that participates in the monitoring stack. The outer guard emits this block only when: 1. The prometheus role is deployed on this host ('web-app-prometheus' in group_names), AND 2. Either this IS the prometheus vhost, OR the current app has prometheus declared as an enabled service dependency (is_docker_service_enabled). The service lookup cannot be used for the host-level check because web-app-prometheus is not a registered shared-service provider in the service registry. $app_id — Ansible role ID attached as Lua metrics label. $container_name — Docker container name for /healthz/live polling. Callers may set {% set container_name = "..." %} before this include to override the default (derived from the canonical service key via get_entity_name). healthz.conf.j2 — /healthz/live + /healthz/ready + /_live_probe location.conf.j2 — log_by_lua_block per-request metrics collection metricz.conf — /metricz scrape endpoint (prometheus domain only); no Jinja2 — lives in files/ not templates/ #} {% if lookup('prometheus_integration_active', application_id) %} set $app_id "{{ application_id }}"; {% if container_name is defined %} set $container_name "{{ container_name }}"; {% else %} {% set prometheus_service_key = application_id | get_entity_name %} set $container_name "{{ lookup('config', application_id, 'services.' + prometheus_service_key + '.name', '') }}"; {% endif %} {% include 'roles/web-app-prometheus/templates/nginx/healthz.conf.j2' %} {% include 'roles/web-app-prometheus/templates/nginx/location.conf.j2' %} {% if application_id == 'web-app-prometheus' %} {% include 'roles/web-app-prometheus/files/nginx/metricz.conf' %} {% endif %} {% endif %}