# ============================================================================= # eBdesk SiCABE — Konfigurasi Prometheus (Fase 6: Observability) # ============================================================================= # Mengapa Prometheus ini ada: # Dashboard Grafana punya panel bertipe metrik (mis. minio_bucket_usage_object_total). # Datasource Grafana bertipe `prometheus` HARUS menunjuk SERVER Prometheus — versi # sebelumnya menunjuk `http://minio:9000` (API S3 MinIO) sehingga selalu # "400 Bad Request: error querying the Prometheus API". Prometheus ini yang # meng-scrape metrik, lalu Grafana membacanya. # # Target yang tersedia di stack ini: # - prometheus : self-scrape # - minio : metrik publik (MINIO_PROMETHEUS_AUTH_TYPE=public di compose) # - starrocks-fe : FE mengekspos /metrics pada port HTTP 8030 # # Sudah tersedia (M2/M3 observabilitas — lihat reviews/sicabe-19-observability-metrics-plan.md): # - airflow : Airflow 3 mengirim metrik lewat StatsD → statsd-exporter:9102 (job `airflow`) # - trino : JMX coordinator (RMI :9080) → sidecar trino-jmx-exporter:9404 (job `trino`) # - node : node_exporter di SETIAP host (:9100). node_exporter adalah PRA-SYARAT HOST # (di luar installer); daftar host dibaca dari `targets/node.yml` via file_sd # (digenerate dari cluster.yml bila ada — lihat lib/cluster/generate.py). # ============================================================================= global: scrape_interval: 30s evaluation_interval: 30s scrape_configs: - job_name: prometheus static_configs: - targets: ["localhost:9090"] # MinIO memecah metrik per endpoint — satu job per metrics_path. # /cluster : 197 metrik (server/cluster) # /bucket : 140 metrik — termasuk 'minio_bucket_usage_object_total' yang # dipakai panel "Storage Usage" di dashboard Grafana. Metrik itu # TIDAK ada di /cluster, sehingga tanpa job ini panel menampilkan # "No data" walaupun target-nya 'up'. - job_name: minio metrics_path: /minio/v2/metrics/cluster scheme: http static_configs: - targets: ["minio:9000"] - job_name: minio-bucket metrics_path: /minio/v2/metrics/bucket scheme: http static_configs: - targets: ["minio:9000"] - job_name: starrocks-fe metrics_path: /metrics scheme: http static_configs: - targets: ["starrocks-fe:8030"] # Airflow → StatsD → statsd-exporter (M2 observabilitas). # Metrik Airflow (dagrun duration, task duration, scheduler heartbeat) muncul di # :9102 setelah AIRFLOW__METRICS__STATSD_ON diaktifkan pada service Airflow. - job_name: airflow metrics_path: /metrics scheme: http static_configs: - targets: ["statsd-exporter:9102"] # Trino → JMX (RMI :9080) → sidecar trino-jmx-exporter:9404 (M3 observabilitas). # Metrik saturasi coordinator (running/queued/failed query) + JVM. - job_name: trino metrics_path: /metrics scheme: http static_configs: - targets: ["trino-jmx-exporter:9404"] # node_exporter di setiap host (:9100) — PRA-SYARAT HOST (bukan service compose). # Daftar host dibaca dari file ini dan bisa diubah TANPA restart Prometheus # (file_sd memantau perubahan berkas; refresh_interval hanya cadangan). # # - single-host : targets/node.yml default = "host.docker.internal:9100" # - multi-host : digenerate dari cluster.yml oleh `./install.sh --generate` # (semua host, alamat:9100, label host=) # # Label `host` dari berkas target dipromosikan ke semua seri; relabel di bawah # menyalinnya ke `instance` supaya panel menampilkan NAMA host, bukan alamat. - job_name: node metrics_path: /metrics scheme: http file_sd_configs: - files: ["/etc/prometheus/targets/node.yml"] refresh_interval: 30s relabel_configs: - source_labels: [host] target_label: instance