Параметри конфігурації OBI Network Metrics

Дізнайтеся про параметри конфігурації, доступні для мережевих метрик OBI

Мережеві метрики налаштовуються в підрозділі network файлу YAML-конфігурації OBI або за допомогою набору змінних середовища з префіксом OTEL_EBPF_NETWORK_.

Приклад YAML:

network:
  enable: true
  cidrs:
    - 10.10.0.0/24
    - 10.0.0.0/8
    - 10.30.0.0/16
attributes:
  kubernetes:
    enable: true
  select:
    obi_network_flow_bytes:
      include:
        - k8s.src.owner.name
        - k8s.src.namespace
        - k8s.dst.owner.name
        - k8s.dst.namespace
        - src.cidr
        - dst.cidr
otel_metrics_export:
  endpoint: http://localhost:4318

На додачу до розділу network YAML, конфігурація OBI вимагає наявності точки доступу для експорту мережевих метрик (в попередньому прикладі, otel_metrics_export, але вона також приймає точки доступу Prometheus).

Властивості конфігурації мережевих метрик

Щоб увімкнути мережеві метрики, додайте одну з наступних опцій features до розділу першого рівня metrics section:

  • network увімкне метрику obi_network_flow_bytes: кількість байтів між двома кінцевими точками вашого кластера
  • network_inter_zone увімкне метрику obi_network_inter_zone_bytes: кількість байтів між різними зонами доступності у вашому хмарному кластері
YAMLЗмінна середовищаТипСтандартно
sourceOTEL_EBPF_NETWORK_SOURCEstringsocket_filter

Вказує на функцію ядра Linux, яка використовується для отримання мережевих подій, про які повідомляє OBI.

Доступні параметри: tc та socket_filter.

Коли tc використовується як джерело подій, OBI використовує фільтри входу та виходу Linux Traffic Control для захоплення мережевих подій у режимі прямої дії. Цей режим джерела подій припускає, що жодні інші програми eBPF не підключаються до того ж інтерфейсу Linux Traffic Control у режимі прямої дії. Наприклад, Cilium Kubernetes CNI використовує той же підхід, тому, якщо у вас встановлено Cilium CNI у вашому кластері Kubernetes, налаштуйте OBI для захоплення мережевих подій за допомогою режиму socket_filter.

Коли socket_filter використовується як джерело подій, OBI встановлює фільтр сокетів eBPF Linux для захоплення мережевих подій. Цей режим не конфліктує з Cilium CNI або іншими програмами eBPF, які використовують фільтри виходу та входу Linux Traffic Control.

YAMLЗмінна середовищаТипСтандартно
cidrsOTEL_EBPF_NETWORK_CIDRS[]string(empty)

Перелік CIDR, який буде встановлено як атрибути src.cidr та dst.cidr з відповідним записом, що відповідає src.address та dst.address.

Атрибут як функція IP-адрес джерела та призначення. Якщо IP-адреса не відповідає жодній адресі тут, атрибути не будуть встановлені. Якщо IP-адреса відповідає кільком визначенням CIDR, потік буде прикрашений найвужчим CIDR. В результаті ви можете безпечно додати запис 0.0.0.0/0, щоб згрупувати весь трафік, який не відповідає жодному з інших CIDR.

Якщо ви встановите цю властивість через змінну середовища, кожен запис повинен бути розділений комою, наприклад:

OTEL_EBPF_NETWORK_CIDRS=10.0.0.0/8,192.168.0.0/16
YAMLЗмінна середовищаТипСтандартно
agent_ipOTEL_EBPF_NETWORK_AGENT_IPstring(not set)

Дозволяє перевизначити атрибут obi.ip, що повідомляється в кожній метриці. Якщо не встановлено, OBI автоматично виявляє свою IP-адресу з вказаного мережевого інтерфейсу (див. наступну властивість).

YAMLЗмінна середовищаТипСтандартно
agent_ip_ifaceOTEL_EBPF_NETWORK_AGENT_IP_IFACEstringexternal

Вказує, який інтерфейс OBI повинен використовувати для вибору своєї IP-адреси, щоб встановити значення атрибута obi.ip. Прийнятні значення: external (стандартно), local або name:<імʼя інтерфейсу> (наприклад, name:eth0).

Якщо властивість конфігурації agent_ip встановлена, ця властивість не має ефекту.

YAMLЗмінна середовищаТипСтандартно
agent_ip_typeOTEL_EBPFstringany

Вказує, який тип IP-адреси (IPv4 або IPv6 або обидва) OBI повинен повідомляти в полі obi.ip кожного потоку. Прийнятні значення: any (стандартно), ipv4, ipv6. Якщо властивість конфігурації agent_ip встановлена, ця властивість не має ефекту.

YAMLЗмінна середовищаТипСтандартно
interfacesOTEL_EBPF_NETWORK_INTERFACES[]string(empty)

Назви інтерфейсів, з яких збираються потоки. Якщо порожньо, OBI отримує всі інтерфейси в системі, за винятком тих, що вказані в excluded_interfaces (див. нижче). Якщо запис обгорнутий слешами (наприклад, /br-/), він перевіряється як регулярний вираз, в іншому випадку він перевіряється як рядок з урахуванням регістру.

Якщо ви встановите цю властивість через змінну середовища, кожен запис повинен бути розділений комою, наприклад:

OTEL_EBPF_NETWORK_INTERFACES=eth0,eth1,/^veth/
YAMLЗмінна середовищаТипСтандартно
exclude_interfacesOTEL_EBPF_NETWORK_EXCLUDE_INTERFACES[]stringlo

Назви інтерфейсів, які потрібно виключити з трасування мережевих потоків. Стандартно: lo (loop-back). Якщо запис обгорнутий слешами (наприклад, /br-/), він перевіряється як регулярний вираз, в іншому випадку він перевіряється як рядок з урахуванням регістру.

Якщо ви встановите цю властивість через змінну середовища, кожен запис повинен бути розділений комою, наприклад:

OTEL_EBPF_NETWORK_EXCLUDE_INTERFACES=lo,/^veth/
YAMLЗмінна середовищаТипСтандартно
protocolsOTEL_EBPF_NETWORK_PROTOCOLS[]string(empty)

Якщо встановлено, OBI відкидає будь-який мережевий потік, який повідомляє про протокол Інтернету, що не входить до цього списку.

Прийнятні значення визначені в перерахуванні Linux Стандартні добре визначені IP-протоколи, і можуть бути: TCP, UDP, IP, ICMP, IGMP, IPIP, EGP, PUP, IDP, TP, DCCP, IPV6, RSVP, GRE, ESP, AH, MTP, BEETPH, ENCAP, PIM, COMP, L2TP, SCTP, UDPLITE, MPLS, ETHERNET, RAW

YAMLЗмінна середовищаТипСтандартно
exclude_protocolsOTEL_EBPF_NETWORK_EXCLUDE_PROTOCOLS[]string(empty)

Якщо встановлено, OBI відкидає будь-який мережевий потік, який повідомляє про протокол Інтернету, що входить до цього списку.

Якщо список protocols/OTEL_EBPF_NETWORK_PROTOCOLS вже встановлений, ця властивість ігнорується.

Допустимі значення визначені в переліку Linux Стандартні добре визначені IP-протоколи, і можуть бути: TCP, UDP, IP, ICMP, IGMP, IPIP, EGP, PUP, IDP, TP, DCCP, IPV6, RSVP, GRE, ESP, AH, MTP, BEETPH, ENCAP, PIM, COMP, L2TP, SCTP, UDPLITE, MPLS, ETHERNET, RAW

YAMLЗмінна середовищаТипСтандартно
cache_max_flowsOTEL_EBPF_NETWORK_CACHE_MAX_FLOWSinteger5000

Визначає, скільки потоків може бути накопичено в кеші обліку перед скиданням для подальшого експорту. Стандартне значення — 5000. Зменште його, якщо ви бачите помилку “отримане повідомлення більше за максимальне” в журналах OBI.

YAMLЗмінна середовищаТипСтандартно
cache_active_timeoutOTEL_EBPF_NETWORK_CACHE_ACTIVE_TIMEOUTduration5s

Визначає максимальний час, протягом якого потоки зберігаються в кеші обліку перед скиданням для подальшого експорту.

YAMLЗмінна середовищаТипСтандартно
directionOTEL_EBPF_NETWORK_DIRECTIONstringboth

Дозволяє вибрати, які потоки відстежувати відповідно до їхнього напрямку в інтерфейсі, з якого вони захоплюються. Прийнятні значення: ingress, egress, або both (стандартно).

YAMLЗмінна середовищаТипСтандартно
samplingOTEL_EBPF_NETWORK_SAMPLINGinteger0 (disabled)

Частота, з якою пакети повинні бути вибірково захоплені та надіслані до цільового колектора. Наприклад, якщо встановлено 100, в середньому один з 100 пакетів надсилається до цільового колектора.

YAMLЗмінна середовищаТипСтандартно
print_flowsOTEL_EBPF_NETWORK_PRINT_FLOWSbooleanfalse

Якщо встановлено true, OBI виводить кожен мережевий потік на стандартний вихід. Зверніть увагу, що це може згенерувати велику кількість виходу.


Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (2a3c5648)