Устранение неполадок
Если нет трейсов и метрик от приложений в интерфейсе
Трейсы и метрики проходят следующий путь от приложения до отображения в интерфейсе:
Приложение > Трейсер ProtoOBP > Агент ProtoOBP > Бэкенд ProtoOBP
На каждом этапе возможно повление причин того, что данные не отображаются в интерфейсе ProtoOBP. Ниже рассмотрены возможные причины и способы решения.
Уровень приложения
- Убедитесь, что на приложении есть нагрузка. Трейсы генерируются только в случае наличия запросов к приложению. Если приложение запущено, но никакая работа не выполняется (нет входящих или исходящих вызовов, нет healthcheck и тд) – трейсов не будет. Для появления трейсов следует дать нагрузку на приложение, например, зайти на веб-интерфейс подключаемого приложения, отослать к нему тестовый запрос и тд.
Уровень трейсера
Трейсер может быть может быть некорректно инициализирован, может использовать некорректные адреса для отправки данных. Необходимо проверить переменные инициализации трейсера, сетевую связность с Агентом, а также логи трейсера на предмет ошибок (ошибки связи с агентом также будут в логах):
- Убедитесь, что все необходимые переменные окружения для конфигурации трейсера установлены:
printenv | grep POBP
- Обратите внимание на переменную окружения
POBP_AGENT_HOST
– она должна указывать на адрес Агента, доступный для трейсера - Проверьте сетевую связность трейсера с Агентом (выполняется из пода/контейнера с приложением, замените имя Агента на значение переменной
POBP_AGENT_HOST
):curl http://agent-address:8126
- В случае использования Docker – убедитесь, что контейнер Агента и контейнер приложения находятся в одной Docker сети
- В случае, если инструментированное приложение работает в Docker контейнере, а Агент установлен как пакет на хосте (не в контейнере, а напрямую через установку MSI/DEB/RPM пакета на сервер), то установите переменную окружения с адресом Агента следующим образом:
POBP_AGENT_HOST=host.docker.internal
- Проведите диагностику и проверку логов трейсера .NET
Уровень агента
-
Убедитесь, что Агент успешно установлен и подключен и появился в веб-интерфейсе системы.
-
Выполните проверку корректности работы Агента
-
Проверьте сетевую связность с бэкендом:
- Проверьте сетевую связность сервера Агента с бэкендом (с сервера с установленным агентом):
curl http://backend-address curl https://backend-address
- Проверьте успешную отправку данных в бэкенд, в случае агента в Docker:
пример вывода команды:
docker logs protoobp-agent 2>&1 | grep "Successfully"
2024-11-15 14:45:45 UTC | CORE | INFO | (pkg/forwarder/transaction/transaction.go:375 in internalProcess) | Successfully posted payload to "https://backend-04/intake/?api_key=***************************aa111", the agent will only log transaction success every 500 transactions
- Проверьте успешную отправку данных в бэкенд, в случае агента в Linux:
пример вывода команды:
grep Successfully /var/log/protoobp/agent.log
2024-11-15 09:26:56 UTC | CORE | INFO | (pkg/forwarder/transaction/transaction.go:380 in internalProcess) | Successfully posted payload to "http://backend-04/api/v1/check_run?api_key=***************************-111" 2024-11-15 09:56:21 UTC | CORE | INFO | (pkg/forwarder/transaction/transaction.go:380 in internalProcess) | Successfully posted payload to "http://backend-04/api/v1/series?api_key=***************************-111"
- Проверьте сетевую связность сервера Агента с бэкендом (с сервера с установленным агентом):
-
Проверьте, что в файлах конфигурации Агента указаны корректные значения адресов бэкенда:
- адреса бэкенда должны быть указаны с префиксом
http://
илиhttps://
и без символа/
в конце строки - если на бэкенде в переменной окружения
UI_URL
указано значение с префиксомhttp://
, то на агентах также необходимо указыватьhttp://
(безs
) - если на бэкенде в переменной окружения
UI_URL
указано значение с префиксомhttps://
, то на агентах может быть указан как префиксhttp://
, так иhttps://
(обратное неверно) - в случае с агентом для Windows после установки нужно в любом случае изменить конфигурацию, даже если в мастере установки значения указывались (мастер установки может не все значения корректно записать в файл конфигурации)
- адреса бэкенда должны быть указаны с префиксом
-
Проверьте логи Агента на предмет ошибок
Уровень бэкенда
-
Проверьте логи компонента
proto-nginx
.-
Через веб-интерфейс ProtoOBP. Перейдите в раздел Диагностика
Логи бэкенда
>proto-nginx
. -
или через терминал, на сервере бэкенда введите:
docker logs proto-nginx
Проверьте, есть ли какие-то ошибки в логе.
Ошибки доступа к эндпоинтуPOST /api/v0.2/stats HTTP/1.1
можно игнорировать.
-
-
Проверьте логи компонента
proto-trace-processor
.-
Через веб-интерфейс ProtoOBP. Перейдите в раздел Диагностика
Логи бэкенда
>proto-trace-processor
. -
или через терминал, на сервере бэкенда выполните:
docker logs proto-trace-processor
Проверьте, есть ли какие-то ошибки в логе. Например, ошибка активации лицензии или ошибки обработки.
-
-
Проверьте доступное место на диске.
-
В веб-интерфейсе ProtoOBP зайдите в раздел
Инфраструктура
>Хосты
, выберите хост, на котором размещается компонентproto-storage
, перейдите на вкладкуДиски
. -
Или в терминале на том сервере, на котором расположен компонент
proto-storage
, выполните:df -h
Если на диске, на котором хранятся данные, осталось меньше 10% свободного места – трейсы записываться не будут.
-
-
Проверьте значение метрики
consumer lag
с тегомprotoobp-consumer
в дашбордеИнфраструктура
>Kafka
>хост бэкенда
.- Значение не должно постоянно возрастать без уменьшения. Если значение постоянно возрастает, это говорит о нехватке системных ресурсов на сервере бэкенда. Обратитесь в техническую команду вендора или системного интегратора за дальнейшими рекомендациями.
Повреждение части данных в БД из-за непланового отключения работающего сервера или ошибок файловой системы
В случае, если в логе компонента proto-database
появляются ошибки вида:
Part ... is broken and needs manual correction
При этом компонент proto-trace-processor
циклически рестартует с ошибками:
DB::Exception: Suspiciously big size (870 parts, 3.14 GiB in total) of all broken parts to remove while maximum allowed broken parts size is 1.00 GiB. You can change the maximum value with merge tree setting 'max_suspicious_broken_parts_bytes' in <merge_tree> configuration section or in table settings in .sql file (don't forget to return setting back to default value)
или
DB::Exception: Suspiciously many (870 parts, 3.14 GiB in total) broken parts to remove while maximum allowed broken parts count is 100. You can change the maximum value with merge tree setting 'max_suspicious_broken_parts' in <merge_tree> configuration section or in table settings in .sql file (don't forget to return setting back to default value)
Следует выполнить следующие действия:
-
На сервере с ролью
proto-database
в папке с продуктом создайте файл:merge_tree_settings.xml
со следующим содержанием:<clickhouse> <merge_tree> <max_suspicious_broken_parts>2000</max_suspicious_broken_parts> <max_suspicious_broken_parts_bytes>5000000000</max_suspicious_broken_parts_bytes> </merge_tree> </clickhouse>
-
На сервере с ролью
proto-database
в файлеdocker-compose-<version>>.yaml
для сервисаproto-database
добавьте новыйvolume
c этим файлом со следующими настройками:proto-database: container_name: proto-database volumes: - ${POBP_DATA_DIRECTORY}/database:/var/lib/clickhouse - ./merge_tree_settings.xml:/etc/clickhouse-server/config.d/merge_tree_settings.xml:ro
-
Для применения новой конфигурации на сервере с ролью
proto-database
в папке с продуктом выполните:docker compose -f docker-compose-<version>>.yaml up -d
Контейнер
proto-database
будет пересоздан.Проверьте логи контейнера
proto-database
:docker logs -f proto-database
Сразу после старта контейнера в логе должна быть запись о применении новой конфигурации:
Merging configuration file '/etc/clickhouse-server/config.d/merge_tree_settings.xml'.
-
На основном сервере c ролью
proto-compute
проверьте новый лог сервисаproto-trace-processor
:docker logs -f proto-trace-processor
Убедитесь, что лог не содержит ошибок.
-
На сервере с ролью
proto-database
в файлеdocker-compose-<version>>.yaml
для сервисаproto-database
удалите ранее созданныйvolume
с файлом./merge_tree_settings.xml
-
Для применения новой конфигурации на сервере с ролью
proto-database
в папке с продуктом выполните:docker compose -f docker-compose-<version>>.yaml up -d