Ours RP Prometheus / Grafana Monitor
本目录提供本地开发监控栈,用于采集 rpki_artifact_metrics 暴露的 ours RP soak 指标。
前置条件
- Docker + Docker Compose v2;
- 宿主机已启动
rpki_artifact_metrics,并监听 Docker 网桥可访问的地址,例如0.0.0.0:9556; - Prometheus 容器通过
host.docker.internal:9556访问宿主 sidecar。
Linux Docker 下 compose 已配置:
extra_hosts:
- host.docker.internal:host-gateway
启动
cd rpki_2/rpki/monitor
docker compose up -d
默认镜像使用官方 Docker Hub 镜像:
prom/prometheus:v2.55.1
grafana/grafana:11.3.1
如需切到其它镜像源:
PROMETHEUS_IMAGE=<mirror>/prom/prometheus:v2.55.1 \
GRAFANA_IMAGE=<mirror>/grafana/grafana:11.3.1 \
docker compose up -d
默认端口:
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000
- Grafana 默认账号密码:
admin/admin
如端口冲突:
PROMETHEUS_PORT=19090 GRAFANA_PORT=13000 docker compose up -d
停止
cd rpki_2/rpki/monitor
docker compose down
保留数据 volume。若要清理数据:
docker compose down -v
典型本地联调命令
先启动 APNIC soak 和 metrics sidecar,例如:
# soak .env 关键配置
MAX_RUNS=-1
RIRS=apnic
RETAIN_RUNS=5
INTERVAL_SECS=0
# metrics sidecar
rpki_artifact_metrics \
--run-root /path/to/portable-soak \
--listen 0.0.0.0:9556 \
--poll-secs 5 \
--instance local-apnic-continuous
再启动监控栈:
cd rpki_2/rpki/monitor
docker compose up -d
验证
Prometheus target:
curl -s 'http://localhost:9090/api/v1/targets' | python3 -m json.tool
Prometheus query:
curl -G 'http://localhost:9090/api/v1/query' \
--data-urlencode 'query=up{job="ours-rp-artifact-metrics"}'
curl -G 'http://localhost:9090/api/v1/query' \
--data-urlencode 'query=ours_rp_run_completed_total{status="success"}'
Grafana health:
curl -s http://localhost:3000/api/health | python3 -m json.tool
Grafana dashboard:
主要指标
ours_rp_metrics_service_upours_rp_run_completed_totalours_rp_run_duration_secondsours_rp_run_max_rss_bytesours_rp_vrpsours_rp_vapsours_rp_publication_pointsours_rp_repo_sync_phase_countours_rp_large_publication_points{object_count_gt="10|50|100|..."}ours_rp_cir_objectsours_rp_ccr_state_items