Вимірювання трафіку між зонами доступності хмари
Як виміряти мережевий трафік між різними зонами доступності хмари
Інструментування OpenTelemetry eBPF може бути налаштоване для надання мережевих метрик між різними кінцевими точками. Наприклад, між фізичними вузлами, контейнерами, подами Kubernetes, сервісами тощо.
Щоб почати використовувати мережеві метрики OBI, ознайомтеся з документацією швидкого налаштування, а для розширеної конфігурації ознайомтеся з документацією конфігурації.
OBI надає метрики потоку байтів і пакетів, а також міжзональну метрику байтів:
Метрики потоку: захоплюють байти, надіслані та отримані між різними точками доступу з точки зору програми.
obi.network.flow.bytes, якщо експортується через OpenTelemetry.obi_network_flow_bytes_total, якщо експортується через точку доступу Prometheus.network до OTEL_EBPF_METRICS_FEATURES configuration option.Метрики потоку пакетів: підраховують пакети, надіслані та отримані між точками доступу.
obi.network.flow.packets, якщо експортується через OpenTelemetry.obi_network_flow_packets_total, якщо експортується через точку доступу Prometheus.network_flow_packets до OTEL_EBPF_METRICS_FEATURES.Метрики між зонами: захоплюють байти, надіслані та отримані між різними зонами доступності з точки зору програми.
obi.network.inter.zone.bytes, якщо експортується через OpenTelemetry.obi_network_inter_zone_bytes_total, якщо експортується через точку доступу Prometheus.network_inter_zone до OTEL_EBPF_METRICS_FEATURES.Метрики захоплюються з точки зору хосту, тому вони включають накладні витрати стеку мережі (заголовки протоколів тощо).
За стандартом, для метрик потоку байтів звітуються лише такі атрибути: k8s.src.owner.name, k8s.src.namespace, k8s.dst.owner.name, k8s.dst.namespace та k8s.cluster.name.
Для метрики міжзональних байтів стандартними атрибутами є k8s.cluster.name, src.zone та dst.zone.
Мережеві метрики маркуються наступними атрибутами:
| Атрибут | Опис |
|---|---|
direction | ingress для вхідного трафіку, egress для вихідного трафіку |
dst.address | IP-адреса призначення (віддалена для виходу, локальна для входу) |
dst.cidr | CIDR призначення (якщо налаштовано) |
dst.name | Назва сервісу призначення (визначена за допомогою виявлення сервісів) |
dst.port | Порт призначення (віддалений для виходу, локальний для входу) |
dst.zone / dst_zone | Назва хмарної зони доступності призначення |
iface | Назва мережевого інтерфейсу |
k8s.cluster.name / k8s_cluster_name | Назва кластера Kubernetes. OBI перевіряє мітки вузлів, метадані інфраструктури OpenShift, Google Cloud, Microsoft Azure та Amazon Web Services. Щоб перевизначити виявлення, встановіть OTEL_EBPF_KUBE_CLUSTER_NAME. |
k8s.dst.name / k8s_dst_name | Назва podʼа призначення |
k8s.dst.namespace / k8s_dst_namespace | Назва простору імен призначення |
k8s.dst.node.ip / k8s_dst_node_ip | IP-адреса вузла призначення |
k8s.dst.node.name / k8s_dst_node_name | Імʼя вузла призначення |
k8s.dst.owner.name / k8s_dst_owner_name | Імʼя власника робочого навантаження призначення |
k8s.dst.owner.type / k8s_dst_owner_type | Тип власника робочого навантаження призначення: replicaset, deployment, statefulset, daemonset, job, cronjob, node |
k8s.dst.type / k8s_dst_type | Тип робочого навантаження призначення: pod, replicaset, deployment, statefulset, daemonset, job, cronjob, node |
k8s.src.name / k8s_src_name | Назва podʼа джерела |
k8s.src.namespace / k8s_src_namespace | Назва простору імен джерела |
k8s.src.node.ip / k8s_src_node_ip | IP-адреса вузла джерела |
k8s.src.node.name / k8s_src_node_name | Імʼя вузла джерела |
k8s.src.owner.name / k8s_src_owner_name | Імʼя власника робочого навантаження джерела |
k8s.src.owner.type / k8s_src_owner_type | Тип власника робочого навантаження джерела: replicaset, deployment, statefulset, daemonset, job, cronjob, node |
k8s.src.type / k8s_src_type | Тип робочого навантаження джерела: pod, replicaset, deployment, statefulset, daemonset, job, cronjob, node |
network.protocol.name / network_protocol_name | Назва мережевого протоколу (наприклад, http або https) |
network.type / network_type | Тип мережі (наприклад, ipv4 або ipv6) |
obi.ip / obi_ip | Локальна IP-адреса екземпляра OBI, який надіслав метрику |
service.name | Локальна назва сервісу, повʼязана з інструментованою точкою доступу |
service.namespace | Локальна назва простору імен сервісу, повʼязана з інструментованою точкою доступу |
service.peer.name | Назва віддаленого сервісу, повʼязана з кінцевою точкою призначення |
service.peer.namespace | Простір імен віддаленого сервісу, повʼязаний з кінцевою точкою призначення |
src.address | IP-адреса джерела (локальна для виходу, віддалена для входу) |
src.cidr | CIDR джерела (якщо налаштовано) |
src.name | Назва сервісу джерела (визначена за допомогою виявлення сервісів) |
src.port | Порт джерела (локальний для виходу, віддалений для входу) |
src.zone / src_zone | Назва хмарної зони доступності джерела |
transport | Транспортний протокол: tcp, udp |
Для зменшення високої кардинальності метрик мережі, вони попередньо агрегуються на рівні процесу, щоб зменшити кількість метрик, що надсилаються до бекенду метрик.
Стандартно усі метрики агрегуються за такими атрибутами:
directiontransportsrc.addressdst.addresssrc.portdst.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"
В цьому прикладі значення obi.network.flow.bytes буде агрегуватися за імʼям та типом власника Kubernetes джерела та призначення, замість імен окремих podʼів.
Ви можете налаштувати 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"
Як виміряти мережевий трафік між різними зонами доступності хмари
Посібник для швидкого старту, щоб отримати мережеві метрики з Інструментації OpenTelemetry eBPF
Дізнайтеся про параметри конфігурації, доступні для мережевих метрик OBI
Чи була ця сторінка корисною?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!