global: scrape_interval: {{ prometheus_scrape_interval }} evaluation_interval: {{ prometheus_evaluation_interval }} alerting: alertmanagers: - static_configs: - targets: - {{ alertmanager_host }}:{{ alertmanager_port }} rule_files: - "alert_rules.yml" scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node-exporter' static_configs: - targets: {{ prometheus_targets | to_json }} - job_name: 'alertmanager' static_configs: - targets: ['{{ alertmanager_host }}:{{ alertmanager_port }}'] - job_name: 'haproxy' static_configs: - targets: ['titania.incus:8404'] metrics_path: '/metrics' - job_name: 'gitea' static_configs: - targets: ['oberon.incus:22084'] metrics_path: '/metrics' authorization: type: Bearer credentials: '{{ vault_gitea_metrics_token }}' - job_name: 'casdoor' static_configs: - targets: ['{{ casdoor_metrics_host }}:{{ casdoor_metrics_port }}'] metrics_path: '/api/metrics' params: accessKey: ['{{ casdoor_prometheus_access_key }}'] accessSecret: ['{{ casdoor_prometheus_access_secret }}'] - job_name: 'daedalus' static_configs: - targets: ['{{ daedalus_metrics_host }}:{{ daedalus_metrics_port }}'] metrics_path: '/metrics' scrape_interval: 15s # Mnemosyne — single /metrics endpoint on the app container serves both # django-prometheus HTTP/Celery metrics and the MCP server's tool-call # counters (the mcp_server.metrics module registers into the same # prometheus_client process registry on the Django side). The mcp # container itself does not expose /metrics; run 'em on the WSGI side. - job_name: 'mnemosyne' static_configs: - targets: ['{{ mnemosyne_metrics_host }}:{{ mnemosyne_metrics_port }}'] metrics_path: '/metrics' scrape_interval: 15s # Red Panda Approved Prometheus Configuration