网络指标

配置 OBI 以观察点对点网络指标。

OpenTelemetry eBPF 仪器可以配置为提供不同端点之间的网络指标。例如,在物理节点、容器、Kubernetes Pod、服务等之间。

入门

要开始使用 OBI 网络指标,请参考 快速入门设置文档,对于高级配置,请参考 配置文档

网络指标

OBI 提供两种网络指标系列

流指标:从应用程序的角度捕获不同端点之间发送和接收的字节数。

  • obi.network.flow.bytes,如果通过 OpenTelemetry 导出。
  • obi_network_flow_bytes_total,如果通过 Prometheus 端点导出。
  • 要启用它,请将 network 选项添加到 OTEL_EBPF_METRICS_FEATURES 配置选项。

跨区域指标:从应用程序的角度捕获不同可用区之间发送和接收的字节数。

  • obi.network.inter.zone.bytes,如果通过 OpenTelemetry 导出。
  • obi_network_inter_zone_bytes_total,如果通过 Prometheus 端点导出。
  • 要启用它,请将 network 选项添加到 OTEL_EBPF_METRICS_FEATURES 配置选项。

指标属性

网络指标用以下属性标记

属性描述
obi.ip / obi_ip发出指标的 OBI 实例的本地 IP 地址
directioningress 表示传入流量,egress 表示传出流量
iface网络接口名称
src.address源 IP 地址(出口时为本地,入口时为远程)
src.port源端口(出口时为本地,入口时为远程)
src.cidr源 CIDR(如果已配置)
dst.address目标 IP 地址(出口时为远程,入口时为本地)
dst.port目标端口(出口时为远程,入口时为本地)
dst.cidr目标 CIDR(如果已配置)
transport传输协议:tcpudp
k8s.src.namespace / k8s_src_namespace源命名空间名称
k8s.src.name / k8s_src_name源 Pod 名称
k8s.src.type / k8s_src_type源工作负载类型:podreplicasetdeploymentstatefulsetdaemonsetjobcronjobnode
k8s.src.owner.name / k8s_src_owner_name源工作负载所有者名称
k8s.src.owner.type / k8s_src_owner_type源工作负载所有者类型:replicasetdeploymentstatefulsetdaemonsetjobcronjobnode
k8s.src.node.ip / k8s_src_node_ip源节点 IP 地址
k8s.src.node.name / k8s_src_node_name源节点名称
k8s.dst.namespace / k8s_dst_namespace目标命名空间名称
k8s.dst.name / k8s_dst_name目标 Pod 名称
k8s.dst.type / k8s_dst_type目标工作负载类型:podreplicasetdeploymentstatefulsetdaemonsetjobcronjobnode
k8s.dst.owner.name / k8s_dst_owner_name目标工作负载所有者名称
k8s.dst.owner.type / k8s_dst_owner_type目标工作负载所有者类型:replicasetdeploymentstatefulsetdaemonsetjobcronjobnode
k8s.dst.node.ip / k8s_dst_node_ip目标节点 IP 地址
k8s.dst.node.name / k8s_dst_node_name目标节点名称
k8s.cluster.name / k8s_cluster_nameKubernetes 集群的名称。OBI 可以自动检测到 Google Cloud、Microsoft Azure 和 Amazon Web Services。对于其他提供商,请设置 OTEL_EBPF_KUBE_CLUSTER_NAME 属性

指标归约

对于高基数归约,网络指标在进程级别进行预聚合,以减少发送到指标后端的指标数量。

默认情况下,所有指标都按以下属性进行聚合

  • direction
  • transport
  • src.address
  • dst.address
  • src.port
  • dst.port

您可以在 OBI 配置中指定允许的属性,以按这些属性聚合指标。

例如,要按源和目标 Kubernetes 所有者(而不是默认的单个 Pod 名称)聚合网络指标,您可以使用以下配置

network:
  allowed_attributes:
    - k8s.src.owner.name
    - k8s.dst.owner.name
    - k8s.src.owner.type
    - k8s.dst.owner.type

然后,等效的 Prometheus 指标将是

obi_network_flow_bytes:
  k8s_src_owner_name="frontend"
  k8s_src_owner_type="deployment"
  k8s_dst_owner_name="backend"
  k8s_dst_owner_type="deployment"

上一个示例将按源和目标 Kubernetes 所有者名称和类型聚合 obi.network.flow.bytes 值,而不是单独的 Pod 名称。

基于CIDR的指标

您可以配置 OBI 以按 CIDR 范围分解指标。这对于跟踪到特定网络范围的流量非常有用,例如云提供商 IP 范围,或内部/外部流量。

cidrs YAML 子部分中的 network(或 OTEL_EBPF_NETWORK_CIDRS 环境变量)接受 CIDR 范围列表及其名称。例如

network:
  cidrs:
    - cidr: 10.0.0.0/8
      name: 'cluster-internal'
    - cidr: 192.168.0.0/16
      name: 'private'
    - cidr: 172.16.0.0/12
      name: 'container-internal'

然后,等效的 Prometheus 指标将是

obi_network_flow_bytes:
  src_cidr="cluster-internal"
  dst_cidr="private"

测量跨可用区流量

如何测量不同云可用区之间的网络流量

OBI 网络指标快速入门

使用 OpenTelemetry eBPF 仪器生成网络指标的快速入门指南

OBI 网络指标配置选项

了解 OBI 网络指标的可用配置选项