测量 Cloud 可用区之间的流量
注意
此功能目前仅在 Kubernetes 集群中可用。
Cloud 可用区之间的流量可能会产生额外费用。Beyla 可以通过将 src.zone
和 dst.zone
属性添加到常规网络指标中来测量它,或者通过提供一个单独的 beyla.network.inter.zone.bytes
(OTEL) / beyla_network_inter_zone_bytes_total
(Prometheus) 指标来测量。
将 src.zone
和 dst.zone
属性添加到常规网络指标中
源和目的地可用区属性在 Beyla 中默认是禁用的。要启用它,请在 Beyla YAML 配置中明确将其添加到包含的网络属性列表中
attributes:
select:
beyla_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
此配置使每个 beyla_network_flow_bytes_total
指标都具有不同的 src_zone
和 dst_zone
属性,从而使区内流量可见。
如果您需要对区内流量测量进行更精细的控制(例如,源/目的地 Pod 或节点),添加区域属性会影响指标的基数,即使对于同一可用区内的流量也是如此。
使用 beyla.network.inter.zone
指标
使用单独的区内流量指标可以减少收集此数据对指标基数的影响,因为 src.zone
和 dst.zone
属性不会添加到常规网络指标中。
要启用 beyla.network.inter.zone
指标,请将 network_inter_zone
选项添加到 BEYLA_OTEL_METRICS_FEATURES 或 BEYLA_PROMETHEUS_FEATURES 配置选项,或其等效的 YAML 选项中。例如,如果 Beyla 配置为通过 OpenTelemetry 导出指标
otel_metrics_export:
features:
- network
- network_inter_zone
用于测量区内流量的 PromQL 查询
假设 network
和 network_inter_zone
这两个指标族都已启用,您可以使用以下 PromQL 查询来测量区内流量
总区内流量吞吐量
sum(rate(beyla_network_inter_zone_bytes_total[$__rate_interval]))
按源和目的地可用区汇总的区内流量吞吐量
sum(rate(beyla_network_inter_zone_bytes_total[$__rate_interval])) by(src_zone,dst_zone)
总同可用区流量吞吐量
sum(rate(beyla_network_flow_bytes_total[$__rate_interval]))
- sum(rate(beyla_network_inter_zone_bytes_total[$__rate_interval]))
区内流量占总流量的百分比
100 * sum(rate(beyla_network_inter_zone_bytes_total[$__rate_interval]))
/ sum(rate(beyla_network_flow_bytes_total[$__rate_interval]))