测量跨可用区流量
如何测量不同 Cloud 可用区域之间的网络流量
注意
此功能目前仅在 Kubernetes 集群中可用。
Cloud 可用区域之间的流量可能会产生额外费用。OBI 能够通过两种方式来测量它:一种是为常规网络指标添加 src.zone 和 dst.zone 属性,另一种是提供单独的 obi.network.inter.zone.bytes (OTel) / obi_network_inter_zone_bytes_total (Prometheus) 指标。
为常规网络指标添加 src.zone 和 dst.zone 属性
源和目标可用区域属性在 OBI 中默认是禁用的。要启用它,请在 OBI YAML 配置中将其显式添加到包含的网络属性列表中。
attributes:
select:
obi_network_flow_bytes:
include:
- k8s.src.owner.name
- k8s.src.namespace
- k8s.dst.owner.name
- k8s.dst.namespace
- k8s.cluster.name
- src.zone
- dst.zone
此配置使每个 obi_network_flow_bytes_total 指标在具有不同 src_zone 和 dst_zone 属性时,都能显示区域间流量。
如果您需要对区域间流量测量进行更高粒度的分析(例如,源/目标 Pod 或节点),添加区域属性会影响指标的基数,即使是同一可用区域内的流量。
使用 obi.network.inter.zone 指标
为区域间流量使用单独的指标可以降低收集此数据时对指标基数的影响,因为 src.zone 和 dst.zone 属性不会添加到常规网络指标中。
要启用 obi.network.inter.zone 指标,请将 network_inter_zone 选项添加到 OTEL_EBPF_METRICS_FEATURES 配置选项或其等效的 YAML 选项中。例如,如果 OBI 配置为通过 OpenTelemetry 导出指标
metrics:
features:
- network
- network_inter_zone
用于测量区域间流量的 PromQL 查询
假设 network 和 network_inter_zone 指标系列都已启用,您可以使用以下 PromQL 查询来测量区域间流量:
总体区域间流量吞吐量
sum(rate(obi_network_inter_zone_bytes_total[$__rate_interval]))
按源和目标区域汇总的区域间流量吞吐量
sum(rate(obi_network_inter_zone_bytes_total[$__rate_interval])) by(src_zone,dst_zone)
总体同一区域流量吞吐量
sum(rate(obi_network_flow_bytes_total[$__rate_interval]))
- sum(rate(obi_network_inter_zone_bytes_total[$__rate_interval]))
区域间流量占总流量的百分比
100 * sum(rate(obi_network_inter_zone_bytes_total[$__rate_interval]))
/ sum(rate(obi_network_flow_bytes_total[$__rate_interval]))