使用 Prometheus 抓取 kube-router 指标
本文档的范围是描述如何设置注解以便让Prometheus 用Kubernetes SD对kube-router pods进行发现和指标收集有关安装 Prometheus 的帮助,请参阅其 docs
指标选项:
--metrics-path string Prometheus 指标的服务路径 ( 默认: /metrics )
--metrics-port uint16 <0-65535> Prometheus 指标使用的端口 ( 默认: 0, disabled )
要启用 kube-router 指标,请使用 --metrics-port
启动 kube-router,并提供一个大于 0 的端口。
度量指标通常以与每项服务同步周期相同的速率导出。
除非另有指定,否则默认值为
- iptables-sync-period - `1 min``
- ipvs-sync-period - `1 min``
- routes-sync-period - `1 min``
通过在Prometheus 配置中启用 Kubernetes SD(<kubernetes_sd_conf>),并添加所需的注解,Prometheus 就能自动发现和刮取 kube-router 指标
版本说明
kube-router v0.2.4 版对指标进行了全面修改,将部分指标改为直方图,还添加了其他指标。请确保您使用的是最新的仪表盘版本,版本 => v0.2.4
kube-router 0.1.0-rc2 及更高版本支持运行时配置,以控制在何处公开指标。如果您使用的是旧版本,指标路径和端口会锁定为 /metrics
和 `8080
可用指标
如果启用了指标,则只有正在运行的服务才会公开其度量指标
以下指标由 kube-router 公开,前缀为 kube_router_
run-router = true
- controller_bgp_peers
实例的 BGP 对等体数量 - controller_bgp_advertisements_received
自 kube-router 启动以来收到的 BGP 广告总数 - controller_bgp_advertisements_sent
自 kube-router 启动以来发送的 BGP 广告总数 - controller_bgp_internal_peers_sync_time
完成 BGP 内部对等同步循环所需的时间 - controller_routes_sync_time
控制器同步路由所用时间
run-firewall=true
- controller_iptables_sync_time
完成 iptables 同步循环所需的时间 - controller_policy_chains_sync_time
控制器同步策略链所用时间
run-service-proxy = true
- controller_ipvs_services_sync_time
完成 ipvs 同步循环所需的时间 - controller_ipvs_services
实例中的 ipvs 服务数量 - controller_ipvs_metrics_export_time
为 IPVS 服务运行指标导出所需的时间 - service_total_connections
服务创建后的总连接数 - service_packets_in
服务收到的 n/o 数据包总数 - service_packets_out
服务发送的 n/o 数据包总数 - service_bytes_in
服务接收的字节总数 - service_bytes_out
服务发送的总字节数 - service_pps_in
每秒接收的数据包数 - service_pps_out
每秒发出的数据包 - service_cps
每秒建立的连接数 - service_bps_in
每秒传入字节数 - service_bps_out
每秒发出的字节数
获得每个服务的 CPS 分组列表的Prometheus 查询长的这样,如
sum(kube_router_service_cps) by (svc_namespace, service_name)
Grafana 控制面板
本仓库中的栗子
Grafana仪表盘
使用的是json文件中kube-router 暴露的指标。