使用 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 暴露的指标。