# =============================================================================
# Prometheus Config Additions - P1/P2 改進
# =============================================================================
# 建立者: Claude Code (首席架構師)
# 日期: 2026-03-29 (台北時間)
# 用途: 新增 ArgoCD Metrics + TLS 證書監控
# 部署位置: 192.168.0.188 /etc/prometheus/prometheus.yml
# =============================================================================
#
# 部署方式:
# 1. SSH 到 192.168.0.188
# 2. 編輯 /etc/prometheus/prometheus.yml
# 3. 在 scrape_configs 區塊新增以下內容
# 4. 執行 systemctl reload prometheus
#
# =============================================================================

# ===== 新增 scrape_configs =====

# Database Exporters (2026-03-29 ADR-037 Wave B)
# 部署於 192.168.0.188 via docker-compose
- job_name: postgres
  honor_timestamps: true
  scrape_interval: 15s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  static_configs:
    - targets:
        - 192.168.0.188:9187  # PostgreSQL Exporter
      labels:
        instance: postgres-110
        db: awoooi

- job_name: redis
  honor_timestamps: true
  scrape_interval: 15s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  static_configs:
    - targets:
        - 192.168.0.188:9121  # Redis Exporter
      labels:
        instance: redis-110
        db: awoooi

# ArgoCD Metrics (需先部署 NodePort: k8s/argocd/argocd-metrics-nodeport.yaml)
# ✅ 2026-03-29 已部署並驗證
- job_name: argocd
  honor_timestamps: true
  scrape_interval: 30s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  static_configs:
    - targets:
        - 192.168.0.121:30883  # ArgoCD Server Metrics (Pod 在 mon1)
      labels:
        component: server
        instance: argocd-server

# TLS 證書監控 (使用 Blackbox Exporter)
- job_name: blackbox-https
  honor_timestamps: true
  scrape_interval: 60s
  scrape_timeout: 30s
  metrics_path: /probe
  params:
    module: [http_2xx_ssl]
  static_configs:
    - targets:
        - https://awoooi.wooo.work           # AWOOOI 主站
        - https://192.168.0.120:30443        # ArgoCD UI
  relabel_configs:
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: blackbox-exporter:9115

# ===== Blackbox Exporter 模組配置 =====
# 檔案: /etc/blackbox_exporter/blackbox.yml
# 新增模組:
#
# modules:
#   http_2xx_ssl:
#     prober: http
#     timeout: 10s
#     http:
#       valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]
#       valid_status_codes: []  # 預設 2xx
#       method: GET
#       tls_config:
#         insecure_skip_verify: false
#       fail_if_ssl: false
#       fail_if_not_ssl: true

# =============================================================================
# 驗證指令
# =============================================================================
#
# 1. 檢查 ArgoCD 指標:
#    curl -s http://192.168.0.120:30883/metrics | grep argocd_info
#
# 2. 檢查 TLS 證書過期時間:
#    curl -s "http://192.168.0.188:9090/api/v1/query?query=probe_ssl_earliest_cert_expiry" | jq
#
# 3. 驗證告警規則載入:
#    curl -s http://192.168.0.188:9090/api/v1/rules | jq '.data.groups[] | select(.name | contains("tls"))'
#
