Установка агентов Proto Observability Platform
На этой странице:
- Описание
- Linux
- Windows
- Docker
- Kubernetes
- Работа агента через proxy
- Файлы конфигурации агента
- Проверка работы агента
- Логи агента
- Собираемые системные метрики по хостам
- Собираемые контейнерные метрики
Описание
ProtoOBP агент автоматически собирает метрики, трейсы и логи и отправляет полученные данные на ProtoOBP Backend сервер.
Сбор трейсов приложения осуществляется с помощью трейсеров, автоматически инструментируя код следующих языков программирования:
Сбор метрик осуществляется автоматически для всех поддерживамых технологий
Схема взаимодействия компонентов ProtoOBP

Поддерживаемые технологии
Linux
Linux агент – установка
Агент работает на всех основных DEB/RPM дистрибутивах ОС Linux. Подробнее
Скачайте и установите пакет с агентом для вашей ОС
curl --header "PRIVATE-TOKEN:<your_token>" "https://git.proto.group/api/v4/projects/125/packages/generic/protoobp-agent/7.40.2/protoobp-agent_7.40.2_amd64.deb" --output protoobp-agent_7.40.2_amd64.deb apt install ./protoobp-agent_7.40.2_amd64.debЗначение
<your_token>берется из лицензионного сертификата, полученного ранее от вендора, из раздела “Учетные данные -> Пароль”curl --header "PRIVATE-TOKEN:<your_token>" "https://git.proto.group/api/v4/projects/125/packages/generic/protoobp-agent/7.40.2/protoobp-agent_7.40.2_amd64.rpm" --output protoobp-agent_7.40.2_amd64.rpm rpm -ivh protoobp-agent_7.40.2_amd64.rpmЗначение
<your_token>берется из лицензионного сертификата, полученного ранее от вендора, из раздела “Учетные данные -> Пароль”.В случае появления ошибки на Альт или Роса Линукс:
ошибка: Неудовлетворенные зависимости: glibc-common нужен для protoobp-agent-1:7.40.2-1.x86_64установку агента необходимо выполнить следующей командой:
rpm -ivh --nodeps protoobp-agent_7.40.2_amd64.rpmУбедитесь что агент корректно установлен, выполнив:
protoobp-agent versionРезультат выполнения команды:
Agent 7.40.2 - Meta: git.8.d01c4fd - Commit: d01c4fd - Serialization version: v5.0.32 - Go version: go1.18.8
Linux агент – конфигурация
По умолчанию файл конфигурации агента расположен в каталоге
/etc/protoobp-agent/Создайте файл
protoobp.yaml:vim /etc/protoobp-agent/protoobp.yamlи укажите в нем следующее:
api_key: my_api_key pobp_url: http://protoobp-backend # используйте httpS только если на сервере ProtoOBP Backend подключен доверенный сертификат apm_config: apm_non_local_traffic: true apm_pobp_url: http://protoobp-backend # используйте httpS только если на сервере ProtoOBP Backend подключен доверенный сертификат telemetry: enabled: false agent_telemetry: enabled: false process_config: enabled: false process_collection: enabled: false container_collection: enabled: false process_discovery: enabled: falseГде,
api_key- ваш токен из лицензионного сертификатаpobp_url- адрес ProtoOBP Backend сервераapm_pobp_url- адрес ProtoOBP Backend сервера
Полный пример конфигурации, можно посмотреть в файле
protoobp.yaml.exampleЕсли на хосте запускаются
Dockerконтейнеры, то необходимо добавить пользователяpobp-agentв группу Docker, чтобы агент мог собирать метрики по работе контейнеров, в дополнение к метрикам самого хоста:usermod -a -G docker pobp-agentЕсли на хосте запускаются
Dockerконтейнеры с приложениями, в которые будут добавлены трейсеры:- При конфигурации трейсера для Docker контейнера с приложением, отсылающим трейсы в Агента, установленного на хосте (не в контейнере):
POBP_AGENT_HOST=host.docker.internal - При запуске контейнера с приложением добавьте опцию
extra_hostsв вашdocker-compose.yamlфайл:extra_hosts: - "host.docker.internal:host-gateway"host-gateway– это специальная строка-шаблон, появившаяся в Docker 20.10.0+, ее значение при использовании вextra_hostsбудет соответствовать IP адресу машины. Таким образом, по имениhost.docker.internalбудет доступен IP адрес машины.
- При конфигурации трейсера для Docker контейнера с приложением, отсылающим трейсы в Агента, установленного на хосте (не в контейнере):
Запустите агента, выполнив:
systemctl start protoobp-agentПри успешной настройке агента вы сможете увидеть новый хост в разделе
Инфраструктура>Хостыв течение одной-двух минут.
Обратите внимание
Для отображения нового хоста следует обновить страницу браузера целиком (кнопкаОбновить в правом верхнем углу веб-консоли обновляет только значения метрик на дашборде, но не список серверов).Linux агент – управление
ProtoOBP Agent запускается как systemd служба - protoobp-agent.
| Действие | Команда |
|---|---|
| Запуск агента | systemctl start protoobp-agent |
| Остановка агента | systemctl stop protoobp-agent |
| Перезапуск службы | systemctl restart protoobp-agent |
Linux агент – управление на системах без systemd (SysV-init)
На дистрибутивах без systemd (RHEL 6.x, CentOS 6, старые линейки Alt Linux,
Rosa Linux, РЕД ОС и др.) пакет агента не разворачивает SysV‑скрипты —
команды systemctl недоступны, а штатное service protoobp-agent start
возвращает unrecognized service. В этом случае используйте init‑скрипты,
приведённые ниже. Скрипты разработаны под основной агент (protoobp-agent)
и trace‑агент APM (protoobp-agent-trace); пути и аргументы дословно
соответствуют тому, что в /usr/lib/systemd/system/*.service из RPM.
init-скрипт основного агента
Сохраните в /etc/init.d/protoobp-agent:
#!/bin/bash
#
# protoobp-agent ProtoOBP monitoring agent (main)
#
# chkconfig: 2345 99 01
# description: ProtoOBP monitoring agent (main)
# pidfile: /opt/protoobp-agent/run/agent.pid
### BEGIN INIT INFO
# Provides: protoobp-agent
# Required-Start: $local_fs $network $remote_fs $syslog
# Required-Stop: $local_fs $network $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: ProtoOBP monitoring agent (main)
### END INIT INFO
. /etc/rc.d/init.d/functions
NAME="protoobp-agent"
USER="pobp-agent"
DAEMON="/opt/protoobp-agent/bin/agent/agent"
DAEMON_ARGS="run -p /opt/protoobp-agent/run/agent.pid"
PIDFILE="/opt/protoobp-agent/run/agent.pid"
LOCKFILE="/var/lock/subsys/${NAME}"
LOGFILE="/var/log/protoobp/${NAME}-init.log"
RUNDIR="/opt/protoobp-agent/run"
LOGDIR="/var/log/protoobp"
[ -x "$DAEMON" ] || { echo "$DAEMON not found"; exit 5; }
[ -d "$RUNDIR" ] || install -d -o "$USER" -g "$USER" "$RUNDIR"
[ -d "$LOGDIR" ] || install -d -o "$USER" -g "$USER" "$LOGDIR"
is_running() {
[ -f "$PIDFILE" ] || return 1
local pid
pid="$(cat "$PIDFILE" 2>/dev/null)"
[ -n "$pid" ] && kill -0 "$pid" 2>/dev/null
}
start() {
echo -n "Starting $NAME: "
if is_running; then
echo "already running (pid $(cat "$PIDFILE"))"
return 0
fi
nohup su "$USER" -s /bin/bash -c "exec $DAEMON $DAEMON_ARGS" \
>> "$LOGFILE" 2>&1 < /dev/null &
for _ in 1 2 3 4 5 6 7 8 9 10; do
is_running && break
sleep 1
done
if is_running; then
touch "$LOCKFILE"
echo "OK (pid $(cat "$PIDFILE"))"
return 0
fi
echo "FAILED — см. $LOGFILE"
return 1
}
stop() {
echo -n "Stopping $NAME: "
if ! is_running; then
echo "not running"
rm -f "$LOCKFILE" "$PIDFILE"
return 0
fi
killproc -p "$PIDFILE" -d 15 "$DAEMON"
rc=$?
[ $rc -eq 0 ] && rm -f "$LOCKFILE"
return $rc
}
case "$1" in
start) start ;;
stop) stop ;;
restart) stop; sleep 2; start ;;
status)
if is_running; then
echo "$NAME is running (pid $(cat "$PIDFILE"))"
exit 0
fi
echo "$NAME is not running"
exit 3
;;
*) echo "Usage: $0 {start|stop|restart|status}"; exit 2 ;;
esac
exit $?
init-скрипт trace-агента (APM)
Если используется APM, дополнительно сохраните в
/etc/init.d/protoobp-agent-trace:
#!/bin/bash
#
# protoobp-agent-trace ProtoOBP APM trace agent
#
# chkconfig: 2345 98 02
# description: ProtoOBP APM trace agent
# pidfile: /opt/protoobp-agent/run/trace-agent.pid
### BEGIN INIT INFO
# Provides: protoobp-agent-trace
# Required-Start: $local_fs $network $remote_fs $syslog protoobp-agent
# Required-Stop: $local_fs $network $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: ProtoOBP APM trace agent
### END INIT INFO
. /etc/rc.d/init.d/functions
NAME="protoobp-agent-trace"
USER="pobp-agent"
DAEMON="/opt/protoobp-agent/embedded/bin/trace-agent"
DAEMON_ARGS="--config /etc/protoobp-agent/protoobp.yaml --pid /opt/protoobp-agent/run/trace-agent.pid"
PIDFILE="/opt/protoobp-agent/run/trace-agent.pid"
LOCKFILE="/var/lock/subsys/${NAME}"
LOGFILE="/var/log/protoobp/${NAME}-init.log"
RUNDIR="/opt/protoobp-agent/run"
LOGDIR="/var/log/protoobp"
[ -x "$DAEMON" ] || { echo "$DAEMON not found"; exit 5; }
[ -d "$RUNDIR" ] || install -d -o "$USER" -g "$USER" "$RUNDIR"
[ -d "$LOGDIR" ] || install -d -o "$USER" -g "$USER" "$LOGDIR"
is_running() {
[ -f "$PIDFILE" ] || return 1
local pid
pid="$(cat "$PIDFILE" 2>/dev/null)"
[ -n "$pid" ] && kill -0 "$pid" 2>/dev/null
}
start() {
echo -n "Starting $NAME: "
if is_running; then
echo "already running (pid $(cat "$PIDFILE"))"
return 0
fi
nohup su "$USER" -s /bin/bash -c "exec $DAEMON $DAEMON_ARGS" \
>> "$LOGFILE" 2>&1 < /dev/null &
for _ in 1 2 3 4 5 6 7 8 9 10; do
is_running && break
sleep 1
done
if is_running; then
touch "$LOCKFILE"
echo "OK (pid $(cat "$PIDFILE"))"
return 0
fi
echo "FAILED — см. $LOGFILE"
return 1
}
stop() {
echo -n "Stopping $NAME: "
if ! is_running; then
echo "not running"
rm -f "$LOCKFILE" "$PIDFILE"
return 0
fi
killproc -p "$PIDFILE" -d 15 "$DAEMON"
rc=$?
[ $rc -eq 0 ] && rm -f "$LOCKFILE"
return $rc
}
case "$1" in
start) start ;;
stop) stop ;;
restart) stop; sleep 2; start ;;
status)
if is_running; then
echo "$NAME is running (pid $(cat "$PIDFILE"))"
exit 0
fi
echo "$NAME is not running"
exit 3
;;
*) echo "Usage: $0 {start|stop|restart|status}"; exit 2 ;;
esac
exit $?
Регистрация скриптов и автозапуск
chmod 755 /etc/init.d/protoobp-agent /etc/init.d/protoobp-agent-trace
chkconfig --add protoobp-agent
chkconfig --add protoobp-agent-trace
chkconfig protoobp-agent on
chkconfig protoobp-agent-trace on
Проверить регистрацию:
chkconfig --list protoobp-agent
chkconfig --list protoobp-agent-trace
Команды управления
| Действие | Команда |
|---|---|
| Запуск агента | service protoobp-agent start |
| Остановка агента | service protoobp-agent stop |
| Перезапуск агента | service protoobp-agent restart |
| Статус агента | service protoobp-agent status |
| Запуск trace‑агента | service protoobp-agent-trace start |
| Остановка trace‑агента | service protoobp-agent-trace stop |
| Перезапуск trace‑агента | service protoobp-agent-trace restart |
| Статус trace‑агента | service protoobp-agent-trace status |
Логи агента — в /var/log/protoobp/agent.log, trace-agent.log. Stdout/stderr
самих init‑скриптов пишутся в /var/log/protoobp/<service>-init.log и полезны
при диагностике падения процесса сразу после запуска.
Если агент падает на старте с `Error while getting hostname`
В окружениях, где hostname -f не возвращает корректное FQDN (например,
минималистичные контейнеры или хосты с пустым /etc/hosts), агент завершается
сразу после старта. В таком случае добавьте в /etc/protoobp-agent/protoobp.yaml
строку:
hostname: my-host-name
— любое стабильное имя, по которому хост должен опознаваться в ProtoOBP.
Windows
Windows агент – установка
Скачайте
.msiустановщик с агентом (замените<YOUR_TOKEN>на значение вашего токена из вашего лицензионного сертификата)curl --header "PRIVATE-TOKEN:<YOUR_TOKEN>" "https://git.proto.group/api/v4/projects/125/packages/generic/protoobp-agent/7.40.2/protoobp-agent-7.40.2-x64.msi" --output protoobp-agent-7.40.2-x64.msi$headers = @{ "PRIVATE-TOKEN" = "<YOUR-TOKEN>" } try { Write-Host "Requesting file..." Invoke-WebRequest ` -Uri "https://git.proto.group/api/v4/projects/125/packages/generic/protoobp-agent/7.40.2/protoobp-agent-7.40.2-x64.msi" ` -Headers $headers ` -OutFile "protoobp-agent-7.40.2-x64.msi" ` -Verbose ` -ErrorAction Stop Write-Host "Download completed." } catch { Write-Host "HTTP download failed: $($_.Exception.Message)" }Запустите
.msiустановщик в графическом режиме и следуйте указаниям мастера установки агента, разрешите административные привилегии в момент запроса.- Для консольной установки используйте PowerShell команду (запуск PowerShell должен быть от Администратора):
Start-Process -Wait msiexec -ArgumentList '/qn /i protoobp-agent-7.40.2-x64.msi APIKEY="<YOUR-TOKEN>"'
- Для консольной установки используйте PowerShell команду (запуск PowerShell должен быть от Администратора):
GMSA
Использование GMSA не является обязательным. GMSA для установки и запуска агент может применяться в доменной структуре с ограничивающими доменными политиками безопасности или если при использовании стандартного способа установки агенту не хватает прав на запуск сервисов из-за ограничений безопасности.
Для использования агента с GMSA выполните следующие шаги:
Создайте Security Group и добавьте в нее все компьютеры, на которых будет установлен агент с использованием GMSA:
- Откройте
Active Directory Users and Computers(ADUC). - Перейдите в нужный
Organizational Unit(OU). - Сделайте клик правой кнопкой мыши и выберите
New > Group. - Назовите группу, например,
ProtoOBPAgentsGroup - Установите необходимый скоуп группы, например
Domain local. - Установите тип группы:
Security. - Добавьте в эту группу все компьютеры, которые будут использовать GMSA для установки и запуска агента.
- Откройте
Создайте GMSA c именем
ProtoobpGMSA:Октройте PowerShell с привилегиями Администратора.
Выполните следующую команду для создания GMSA, замените
<YOUR_DOMAIN_CONTROLLER_NAME>на DNS имя вашего контроллера домена:New-ADServiceAccount ` -Name ProtoobpGMSA ` -DNSHostName <YOUR_DOMAIN_CONTROLLER_NAME> ` -PrincipalsAllowedToRetrieveManagedPassword ProtoOBPAgentsGroupУбедитесь, что команда выполнена без ошибок.
В случае ошибок:
- создайте Kds ключ:
Add-KdsRootKey -EffectiveTime ((Get-Date).AddHours(-10)) - проверьте, что указанная группа существует:
Get-ADGroup -Identity ProtoOBPAgentsGroup - выполните создание GMSA еще раз:
New-ADServiceAccount ` -Name ProtoobpGMSA ` -DNSHostName <YOUR_DOMAIN_CONTROLLER_NAME> ` -PrincipalsAllowedToRetrieveManagedPassword ProtoOBPAgentsGroup
- создайте Kds ключ:
Подключите GMSA и убедитесь, что GMSA может быть использована на целевой машине. На целевой машине откройте PowerShell и выполните:
Install-ADServiceAccount -Identity ProtoobpGMSAУбедитесь, что команда выполнена без ошибок.
Проверьте, что GMSA успешно установлена:
Test-ADServiceAccount -Identity ProtoobpGMSAОжидаемый вывод команды:
TrueУстранение неполадок подключения GMSA на целевую машину:
- проверьте, какие группы имеют разрешение использовать GMSA:если группа
Get-ADServiceAccount -Identity ProtoobpGMSA -Properties PrincipalsAllowedToRetrieveManagedPasswordProtoOBPAgentsGroupотсутствует в списке в разделеPrincipalsAllowedToRetrieveManagedPassword, обновите GMSA и добавьте группуProtoOBPAgentsGroup:Set-ADServiceAccount -Identity ProtoobpGMSA -PrincipalsAllowedToRetrieveManagedPassword ProtoOBPAgentsGroup - проверьте, что машина является членом группы:убедитесь, что в выводе есть имя текущего компьютра, если его нет – добавьте компьютер в группу:
Get-ADGroupMember -Identity ProtoOBPAgentsGroupAdd-ADGroupMember -Identity ProtoOBPAgentsGroup -Members <ComputerName> - выполните обновление групповых политик, удалите Kerberos тикеты и перезагрузите компьютер:
gpupdate /force klist purge Restart-Computer
- проверьте, какие группы имеют разрешение использовать GMSA:
Установите агента с использованием GMSA:
- Если агент ранее был установлен стандартным методом (запуск от новой учетной записи
pobpagentuser, созданной на этапе установки агента), то необходимо полностью удалить агента и его файлы, перед использованием установки с использованием GMSA.- Через
Control Panelудалите пакет агента (через графический интерфейс). - Вручную удалите папку
C:\ProgramData\Protoobp(обязательный шаг, иначе последующая установка завершится ошибкой)
- Через
- Запустите
.msiустановщик агента. - Введите запрашиваемые ключ и адрес бэкенд сервера
- На этапе выбора учётной записи (
Please enter the username) укажите созданную и установленную на этой машине GMSA в формате:<ВАШ_ДОМЕН>\ProtoobpGMSA$– обязательно с символом$в конце. Поле пароль обязательно оставьте пустым. - Зайдите в веб-интерфейс агента, и выполните конфигурацию агента через веб-интерфейс.
- Откройте
services.mscи убедитесь, что агент запускается от имени доменной GMSA:
- Если агент ранее был установлен стандартным методом (запуск от новой учетной записи
Windows агент – конфигурация
Запустите веб-консоль управления агентом
ProtoOBP Agent Manager.
Откроется веб-браузер с консолью управления. В случае запроса изменения настроек безопасности – добавьте в доверенные узлы
http://127.0.0.1иabout:blank.
Перейдите в раздел
Settingsи в конфигурации агента укажите следующее:api_key: my_api_key pobp_url: http://<адрес_бекенд_сервера_protoobp> # используйте httpS только если на сервере ProtoOBP Backend подключен доверенный сертификат apm_config: apm_non_local_traffic: true apm_pobp_url: http://<адрес_бекенд_сервера_protoobp> # используйте httpS только если на сервере ProtoOBP Backend подключен доверенный сертификат enabled: true telemetry: enabled: false process_config: process_collection: enabled: falseПараметры:
api_keyзначение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> Парольpobp_urlстрока вида http://<адрес_бекенд_сервера_protoobp>, где<адрес_бекенд_сервера_protoobp>- адрес вашего ProtoOBP Backend сервера, доступного для агентаapm_pobp_urlстрока вида http://<адрес_бекенд_сервера_protoobp>, где<адрес_бекенд_сервера_protoobp>– адрес вашего ProtoOBP Backend сервера, доступного для агентаПример окна конфигурации:

Перезапустите агента, для этого консоли управления кликните на
Restart Agent.При успешной настройке агента вы сможете увидеть новый хост в разделе
Инфраструктура>Хостыв течение одной-двух минут.
Обратите внимание
Для отображения нового хоста следует обновить страницу браузера целиком (кнопкаОбновить в правом верхнем углу веб-консоли обновляет только значения метрик на дашборде, но не список серверов).Настройка WMI
Если агент запускается под GMSA или другой учётной записью, отличной отpobpagentuser, может потребоваться ручная настройка прав WMI – см. Сбор метрик через WMI.Windows агент – управление
Запустите ProtoOBP Agent Manager:

Для перезапуска агента в левом меню выберите и нажмите на раздел
Restart Agent
Также после запуска ProtoOBP Agent Manager в системном трее доступна иконка с контекстным меню агента для управления агентом:

Для команд ниже используйте только привилегированную командную строку (run as Administrator)
| Действие | Команда |
|---|---|
| Запуск агента | "C:\Program Files\Protoobp\Protoobp Agent\bin\agent.exe" start-service |
| Остановка агента | "C:\Program Files\Protoobp\Protoobp Agent\bin\agent.exe" stopservice |
| Перезапуск службы | "C:\Program Files\Protoobp\Protoobp Agent\bin\agent.exe" restart-service |
Windows агент – типовые проблемы
Сервис не запускается
В случае, если службы Агента не запускаются с ошибкой
Access is denied:
- Убедитесь, что у служебного пользователя, от имени которого запускается агент, есть права
Log on as a service. Инсталлятор добавляет это право, но в случае использования групповых доменнных политик это право может быть отозвано у служебной учетной записи. Необходимо настроить групповые политики на разрешение служебному пользователю осуществлятьLog on as a service.- откройте
Computer Configuration>Windows Settings>Security Settings>Local Policies>User Rights Assignment - локальный пользователь, создаваемый в процессе установки (
pobpagentuser):
- в случае использования GMSA –
DomainName\ProtoobpGMSA$:
- откройте
- Убедитесь, что служебный пользователь
pobpagentuserявляется членом группыUsersна сервере. В случае использования GMSA такое право должно быть у этой учетной записи.
Ошибка “Сервис помечен для удаления”
В случае запуска процедуры удаления агента, файлы агента удаляются, но службы агента остаются видимы в системе, при попытке их удаления через командую строку выводится сообщение о том, что сервис “помечен для удаления”. В этом случае потребуется перезагрузка машины, чтобы произошло полное удаление сервисов. После перезагрузки возможно заново установить пакет агента. Это особенность операционной системы Windows.
Docker
Запуск Docker агента (отдельный контейнер)
Подключитесь к Docker репозиторию ProtoOBP выполнив команду:
sudo docker login --username <USERNAME> registry.git.proto.groupВаш
<USERNAME>и пароль указаны в лицензионном сертификате, полученном ранее от вендора, в разделе “Учетные данные”. Пароль вводится интерактивно.Запустите агента
docker run -d \ --cgroupns host \ --pid host \ --name protoobp-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e POBP_API_KEY=<your_api_key> \ -e POBP_POBP_URL=http://<адрес_бекенд_сервера_protoobp> \ -e POBP_APM_POBP_URL=http://<адрес_бекенд_сервера_protoobp> \ -e POBP_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED=false \ registry.git.proto.group/protoobp/protoobp-artifacts/protoobp-agent:7.40.3Переменные окружения:
POBP_API_KEYзначение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> ПарольPOBP_POBP_URLстрока вида http://<адрес_бекенд_сервера_protoobp>, где<адрес_бекенд_сервера_protoobp>- адрес вашего ProtoOBP Backend сервера, доступного для агентаPOBP_APM_POBP_URLстрока вида http://<адрес_бекенд_сервера_protoobp>, где<адрес_бекенд_сервера_protoobp>– адрес вашего ProtoOBP Backend сервера, доступного для агента
Запуск Docker агента (docker compose)
Подключитесь к Docker репозиторию ProtoOBP выполнив команду:
sudo docker login --username <USERNAME> registry.git.proto.groupВаш
<USERNAME>и пароль указаны в лицензионном сертификате, полученном ранее от вендора, в разделе “Учетные данные”. Пароль вводится интерактивно.Добавьте в ваш
docker-compose.yamlфайл следующее:protoobp-agent: container_name: protoobp-agent image: registry.git.proto.group/protoobp/protoobp-artifacts/protoobp-agent:7.40.3 pid: host volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /proc/:/host/proc/:ro - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro - /etc/os-release:/host/etc/os-release:ro environment: - POBP_API_KEY=<your_api_key> - POBP_POBP_URL=http://<адрес_бекенд_сервера_protoobp> # используйте httpS только если на сервере ProtoOBP Backend подключен доверенный сертификат - POBP_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED=false - POBP_APM_POBP_URL=http://<адрес_бекенд_сервера_protoobp> # используйте httpS только если на сервере ProtoOBP Backend подключен доверенный сертификатПеременные окружения:
POBP_API_KEYзначение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> ПарольPOBP_POBP_URLстрока вида http://<адрес_бекенд_сервера_protoobp>, где<адрес_бекенд_сервера_protoobp>- адрес вашего ProtoOBP Backend сервера, доступного для агентаPOBP_APM_POBP_URLстрока вида http://<адрес_бекенд_сервера_protoobp>, где<адрес_бекенд_сервера_protoobp>– адрес вашего ProtoOBP Backend сервера, доступного для агентаЗапустите агента, выполнив:
docker compose up -d protoobp-agent
Kubernetes
После установки агента в системе появятся поды агента:
protoobpprotoobp-cluster-agent
Необходимые сетевые порты для работы Kubernetes агента:
| Source Name | Destination Name | Destination PORT/PROTO | Description |
|---|---|---|---|
поды агента (protoobp и protoobp-cluster-agent) | proto backend | 443/tcp | отправка данных (метрики, трейсы, логи) от агента на бэкенда |
под агента protoobp | под агента protoobp-cluster-agent | 5005/tcp | подключение агента к cluster-агенту |
| поды приложений | под агента protoobp | 8125/udp | отправка метрик от приложения к агенту |
| поды приложений | под агента protoobp | 8126/tcp | отправка трейсов от приложения к агенту |
| IP k8s control plane | IP k8s ноды | 8000/tcp | подключение webhook автоматической инструментации приложений |
Установка Kubernetes агента
Обратите внимание
Для работы с чартами Proto OBP необходимо использоватьhelm версии 3.x – версия 2.x не подходит, так как формат helm чартов отличается.Добавьте
helmрепозиторий ProtoOBP:helm repo add --username <my_login> --password <my_password> protoobp https://git.proto.group/api/v4/projects/125/packages/helm/stableВаши логин и пароль указаны в лицензионном сертификате, полученном ранее от вендора, в разделе “Учетные данные”.
Добавьте
secretдля скачивания Docker образов из репозитория ProtoOBP. Для этого воспользуйтесь готовым скриптомscript.sh:# Укажите имя пользователя login="my_login" # Укажите пароль password="my_password" # Укажите адрес репозитория registry="registry.git.proto.group" # Укажите namespace в котором будет установлен агент (по умолчанию protoobp) namespace="protoobp" ###################### # Скрипт set -o errexit echo 'Создаем Secret' kubectl create namespace ${namespace} kubectl create secret docker-registry protoobp-registry --docker-username=${login} --docker-password=${password} --docker-server=${registry} --namespace=${namespace}Создайте файл
values.yamlс конфигурацией агентаtargetSystem: "linux" commonLabels: {} registry: registry.git.proto.group/protoobp/protoobp-artifacts # необходимо изменить в случае использования собственного Docker репозитория protoobp: apiKey: <ВАШ_API_KEY> # указан в лицензионном сертификате clusterName: <ИМЯ_КЛАСТЕРА> # задается вручную в соответствии с текущим реальным именем кластер pobp_url: http://<адрес_бекенд_сервера_protoobp> # используйте httpS только если на сервере ProtoOBP Backend подключен доверенный сертификат pobp_apm_url: http://<адрес_бекенд_сервера_protoobp> # используйте httpS только если на сервере ProtoOBP Backend подключен доверенный сертификат logLevel: INFO processAgent: enabled: false processCollection: false kubelet: tlsVerify: false clusterAgent: image: name: cluster-agent tag: 7.40.3 pullSecrets: - name: "protoobp-registry" env: ## этот раздел и переменная ниже добавляется только в случае использования локального репозитория Docker образов для компонентов Proto Observability Platform - name: POBP_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY value: docker.intranet/protoobp/protoobp-artifacts ## здесь указывается адрес локального репозитория - зеркала образов agents: image: name: protoobp-agent tag: 7.40.3 pullSecrets: - name: "protoobp-registry"Параметры:
<ВАШ_API_KEY>значение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> Парольpobp_urlстрока вида http://<адрес_бекенд_сервера_protoobp>, где<адрес_бекенд_сервера_protoobp>- адрес вашего ProtoOBP Backend сервера, доступного для агентаapm_pobp_urlстрока вида http://<адрес_бекенд_сервера_protoobp>, где<адрес_бекенд_сервера_protoobp>– адрес вашего ProtoOBP Backend сервера, доступного для агента<ИМЯ_КЛАСТЕРА>имя кластера, которое будет отображаться в интерфейсе Proto Observability Platform Установите
helmчарт в ваш Kubernetes кластер (в примере ниже исползуется неймспейсprotoobp)Обратите внимание
Для изменения параметров агентов Proto OBP допустимы только изменения в файлеvalues.yaml, изменять сам чарт не нужно.helm install protoobp -f values.yaml protoobp/protoobp --namespace protoobp
Использование hostPath ноды
Поды агента имеют несколько hostPath mount:
| Имя Mount | Описание |
|---|---|
procdir | Подключается в режиме read-only. Используется системными проверками. |
cgroups | Подключается в режиме read-only. Используется для сбора метаданных контейнеров. |
os-release-file | Подключается в режиме read-only. Используется для определения ОС. |
passwd | Подключается в режиме read-only. Используется для ассоциирования процессов с пользователями. |
runtimesocketdir | Подключается в режиме read-only. Используется для сбора метрик контейнеров. |
dsdsocket | Подключается в режиме read-write. Используется для приема метрик, опционально также может быть включен порт. |
apmsocket | Подключается в режиме read-write. Используется для приема трейсов, опционально также может быть включен порт. |
Работа в непривилегированном режиме
Для максимальной совместимости и автоматизации сбора данных агент в контейнере по умолчанию запускается от пользователя root.
Использование не root пользователя может ограничить работу некоторых интеграций, которым необходимы данные хоста (ноды).
Пользователя, под которым запускается агент в контейнере, можно изменить, указав в values.yaml ID необходимого пользователя.
Обратите внимание
Для корректной работы агента в случае изменения ID пользователя необходима предварительная настройка хоста (ноды):
- пользователь, под которым запускается агент, должен иметь доступ к сокету
Docker,CRI-Oилиcontainerd(в зависимости от используемого рантайма).
Внутри контейнера агента создается пользователь pobp-agent c ID = 101, рекомендуется использовать этого пользователя для предоставления доступа к сокету.
protoobp:
...
securityContext:
runAsUser: <USER_ID>
# UID пользователя, под которым будет запускаться Proto OBP агент
supplementalGroups:
- <GROUP_ID>
# ID группы, которая является владельцем сокета Docker или containerd
Дополнительная конфигурация для OpenShift
Особенности настройки агентов Proto OBP с OpenShift:
- необходимо указать создание SCC (Security Context Constraints) для агентов
- необходимо указать путь к сокету CRI, так как OpenShift использует CRI-O в качестве рантайма контейнеров
- необходимо добавить
tolerationsдля запуска агентов наmasterиinfraнодах кластера
Для этого в файле values.yaml в разделе agents добавьте:
protoobp:
criSocketPath: /var/run/crio/crio.sock
...
agents:
useHostNetwork: true
podSecurity:
securityContextConstraints:
create: true
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
operator: Exists
- effect: NoSchedule
key: node-role.kubernetes.io/infra
operator: Exists
clusterAgent:
podSecurity:
securityContextConstraints:
create: true
...
Изменение параметров Kubernetes агента
После внесения изменений в файл values.yaml можно применить изменения с помощью команды:
helm upgrade protoobp -f values.yaml protoobp/protoobp --namespace protoobp
Или воспользуйтесь полным удалением агента и переустановкой.
Удаление Kubernetes агента
Удалить ProtoOBP агента из Kubernetes кластера, можно выполнив (используемый в примере неймспейс – protoobp, замените при использовании нестандартного неймспейса):
helm uninstall protoobp -n protoobp
Работа агента через proxy
Настройка прокси-сервера. В качестве примера может использоваться прокси-сервер Nginx и минимальная конфигурация:
user www-data; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; load_module /usr/lib/nginx/modules/ngx_stream_module.so; events { worker_connections 1024; } stream { server { listen 80; proxy_ssl_verify off; proxy_ssl on; proxy_pass proto-backend:443; } }Где
proto-backend– адрес вашего бэкенд сервера.Настройка агента для использования прокси. В используемых адресах вместо адресов бэкенда укажите адрес прокси сервера:
api_key: your-api-key pobp_url: http://nginx-proxy skip_ssl_validation: true apm_config: apm_non_local_traffic: true apm_pobp_url: http://nginx-proxy telemetry: enabled: false database_monitoring: metrics: pobp_url: nginx-proxy activity: pobp_url: nginx-proxy samples: pobp_url: nginx-proxyГде
nginx-proxy– адрес вашего прокси сервера.Примените изменения, перезапустив агента.
Файлы конфигурации агента
Основной конфигурационный файл агента:
| Платформа | Путь и имя файла |
|---|---|
| Linux | /etc/protoobp-agent/protoobp.yaml |
| Windows | %ProgramData%\Protoobp\protoobp.yaml |
Файлы конфигурации модулей для мониторинга технологий находятся в папке <путь к папке конфигурации>/conf.d/<технология>.d/..
Путь к папке конфигурации зависит от платформы:
| Платформа | Путь |
|---|---|
| Linux | /etc/protoobp-agent/conf.d/ |
| Windows | %ProgramData%\Protoobp\conf.d |
Например, для мониторинга MySQL на агента Linux путь к файлу конфигурации MySQL будет иметь вид:
/etc/protoobp-agent/conf.d/mysql.d/conf.yaml
Проверка работы агента
| Платформа | Команда |
|---|---|
| Docker | sudo docker exec -it protoobp-agent agent status |
| Kubernetes | kubectl exec -it <AGENT_POD_NAME> -- agent status |
| Linux | sudo protoobp-agent status |
| Windows | Для команды ниже используйте только привилегированную командную строку (run as Administrator) "C:\Program Files\Protoobp\Protoobp Agent\bin\agent.exe" status |
Логи агента
Логи работы агента располагаются в следующих локациях:
| Платформа | Путь |
|---|---|
| Linux | /var/log/protoobp/ |
| Windows | C:\ProgramData\Protoobp\logs |
Логи установки агента располагаются в следующих локациях:
| Платформа | Путь и имя файла |
|---|---|
| Linux | $(pwd)/protobop-agent-install.log |
| Windows | %TEMP%\MSI*.LOG |
Собираемые системные метрики по хостам
| Метрика | Доступные метки/ лейблы |
|---|---|
system_cpu_context_switches | host |
system_cpu_guest | host |
system_cpu_idle | host |
system_cpu_interrupt | host |
system_cpu_iowait | host |
system_cpu_num_cores | host |
system_cpu_stolen | host |
system_cpu_system | host |
system_cpu_user | host |
system_disk_free | device_name, host |
system_disk_in_use | device_name, host |
system_disk_read_time | device_name, host |
system_disk_read_time_pct | device_name, host |
system_disk_total | device_name, host |
system_disk_used | device_name, host |
system_disk_write_time | device_name, host |
system_disk_write_time_pct | device_name, host |
system_fs_file_handles_allocated | host |
system_fs_file_handles_allocated_unused | host |
system_fs_file_handles_in_use | host |
system_fs_file_handles_max | host |
system_fs_file_handles_used | host |
system_fs_inodes_free | device_name, host |
system_fs_inodes_in_use | device_name, host |
system_fs_inodes_total | device_name, host |
system_fs_inodes_used | device_name, host |
system_io_avg_q_sz | device_name, host |
system_io_avg_rq_sz | device_name, host |
system_io_await | device_name, host |
system_io_block_in | host |
system_io_block_out | host |
system_io_r_await | device_name, host |
system_io_r_s | device_name, host |
system_io_rkb_s | device_name, host |
system_io_rrqm_s | device_name, host |
system_io_svctm | device_name, host |
system_io_util | device_name, host |
system_io_w_await | device_name, host |
system_io_w_s | device_name, host |
system_io_wkb_s | device_name, host |
system_io_wrqm_s | device_name, host |
system_load_1 | host |
system_load_15 | host |
system_load_5 | host |
system_load_norm_1 | host |
system_load_norm_15 | host |
system_load_norm_5 | host |
system_mem_buffered | host |
system_mem_cached | host |
system_mem_commit_limit | host |
system_mem_committed_as | host |
system_mem_free | host |
system_mem_page_tables | host |
system_mem_pct_usable | host |
system_mem_shared | host |
system_mem_slab | host |
system_mem_slab_reclaimable | host |
system_mem_total | host |
system_mem_usable | host |
system_mem_used | host |
system_net_bytes_rcvd | host |
system_net_bytes_sent | host |
system_net_conntrack_count | host |
system_net_conntrack_expect_max | host |
system_net_conntrack_max | host |
system_net_conntrack_tcp_max_retrans | host |
system_net_conntrack_tcp_timeout_max_retrans | host |
system_net_iface_mtu | host, iface |
system_net_iface_num_rx_queues | host, iface |
system_net_iface_num_tx_queues | host, iface |
system_net_iface_tx_queue_len | host, iface |
system_net_ip_forwarded_datagrams | host |
system_net_ip_fragmentation_creates | host |
system_net_ip_fragmentation_fails | host |
system_net_ip_fragmentation_oks | host |
system_net_ip_in_addr_errors | host |
system_net_ip_in_csum_errors | host |
system_net_ip_in_delivers | host |
system_net_ip_in_discards | host |
system_net_ip_in_header_errors | host |
system_net_ip_in_no_routes | host |
system_net_ip_in_receives | host |
system_net_ip_in_truncated_pkts | host |
system_net_ip_in_unknown_protos | host |
system_net_ip_out_discards | host |
system_net_ip_out_no_routes | host |
system_net_ip_out_requests | host |
system_net_ip_reassembly_fails | host |
system_net_ip_reassembly_oks | host |
system_net_ip_reassembly_overlaps | host |
system_net_ip_reassembly_requests | host |
system_net_ip_reassembly_timeouts | host |
system_net_ip_reverse_path_filter | host |
system_net_packets_in_count | host |
system_net_packets_in_drop | host |
system_net_packets_in_error | host |
system_net_packets_out_count | host |
system_net_packets_out_drop | host |
system_net_packets_out_error | host |
system_net_tcp_abort_on_timeout | host |
system_net_tcp_active_opens | host |
system_net_tcp_attempt_fails | host |
system_net_tcp_backlog_drops | host |
system_net_tcp_current_established | host |
system_net_tcp_established_resets | host |
system_net_tcp_failed_retransmits | host |
system_net_tcp_from_zero_window | host |
system_net_tcp_in_csum_errors | host |
system_net_tcp_in_errors | host |
system_net_tcp_in_segs | host |
system_net_tcp_listen_drops | host |
system_net_tcp_listen_overflows | host |
system_net_tcp_out_resets | host |
system_net_tcp_out_segs | host |
system_net_tcp_passive_opens | host |
system_net_tcp_paws_connection_drops | host |
system_net_tcp_paws_established_drops | host |
system_net_tcp_prune_called | host |
system_net_tcp_prune_ofo_called | host |
system_net_tcp_prune_rcv_drops | host |
system_net_tcp_retrans_segs | host |
system_net_tcp_syn_cookies_failed | host |
system_net_tcp_syn_cookies_recv | host |
system_net_tcp_syn_cookies_sent | host |
system_net_tcp_syn_retrans | host |
system_net_tcp_to_zero_window | host |
system_net_tcp_tw_reused | host |
system_net_udp_in_csum_errors | host |
system_net_udp_in_datagrams | host |
system_net_udp_in_errors | host |
system_net_udp_no_ports | host |
system_net_udp_out_datagrams | host |
system_net_udp_rcv_buf_errors | host |
system_net_udp_snd_buf_errors | host |
system_swap_cached | host |
system_swap_free | host |
system_swap_pct_free | host |
system_swap_swap_in | host |
system_swap_swap_out | host |
system_swap_total | host |
system_swap_used | host |
system_uptime | host |
Собираемые контейнерные метрики
| Метрика | Доступные метки / лейблы |
|---|---|
container_cpu_limit | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_cpu_system | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_cpu_throttled | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_cpu_throttled_periods | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_cpu_usage | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_cpu_user | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_io_read | container_id, container_name, device_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_io_read_operations | container_id, container_name, device_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_io_write | container_id, container_name, device_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_io_write_operations | container_id, container_name, device_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_memory_cache | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_memory_kernel | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_memory_limit | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_memory_oom_events | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_memory_rss | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_memory_soft_limit | container_id, container_name, docker_image, git_commit_sha, host, image_name, image_tag, runtime, service_id_container, service_id_host, short_image |
container_memory_swap | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_memory_usage | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_net_rcvd | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, interface, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_net_rcvd_packets | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, interface, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_net_sent | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, interface, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_net_sent_packets | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, interface, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_pid_open_files | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_pid_thread_count | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |
container_pid_thread_limit | container_id, container_name, docker_image, env, git_commit_sha, host, image_name, image_tag, runtime, service, service_id_container, service_id_host, short_image |
container_uptime | container_id, container_name, display_container_name, docker_image, env, git_commit_sha, host, image_id, image_name, image_tag, kube_app_component, kube_app_instance, kube_app_managed_by, kube_app_name, kube_container_name, kube_daemon_set, kube_deployment, kube_namespace, kube_ownerref_kind, kube_ownerref_name, kube_priority_class, kube_qos, kube_replica_set, kube_service, kube_stateful_set, persistentvolumeclaim, pod_name, pod_phase, runtime, service, service_id_container, service_id_host, short_image |