Настройка метрик¶
CodeScoring хранит метрики в формате, поддерживаемом инструментом мониторинга Prometheus. На данный момент доступны метрики с платформе CodeScoring и плагинов в прокси-репозиториях.
Cбор метрик платформы¶
Метрики платформы доступны в CodeScoring API по адресу {platform-url}/api/metrics. Для того, чтобы настроить отслеживание метрик в Prometheus, необходимо выполнить следующие шаги:
-
Открыть файл конфигурации
prometheus.ymlи добавить параметры для мониторинга метрик. Ниже приведен пример: -
Перезапустить Prometheus, чтобы изменения вступили в силу.
-
Открыть интерфейс Prometheus и перейти на страницу Graph. В поле запроса ввеcти название одной из метрик:
Метрики очередей¶
- codescoring_tasks_queue_size_total – общее количество задач, ожидающих выполнения;
- codescoring_tasks_schedule_queue_size_total – общее количество запланированных задач, ожидающих выполнения;
- codescoring_tasks_running_tasks_total – общее количество задач, выполняющихся в данный момент;
- codescoring_celery_queue_size_total – общее количество задач в Celery-очередях;
- codescoring_celery_running_tasks_total – общее количество выполняющихся задач в Celery-очередях.
Данные метрики можно отфильтровать по лейблу queue со следующими возможными значениями:
Основные очереди:¶
- ipcs - основная очередь для исполнения асинхронных задач;
- osa-container-image-scan - очередь для сканирования контейнерных образов;
- osa-package-scan - очередь для сканирования пакетов, запрошенных через модуль OSA;
- policy - очередь для расчёта политик;
- tqi - очередь для задач в рамках анализов модуля TQI;
- sca-external-scan - очередь для SCA, запущенного с помощью консольного агента Johnny;
- secrets - очередь для задач в рамках анализов модуля Secrets.
Очереди Celery:¶
- default - основная очередь для исполнения асинхронных задач;
- webhooks - очередь для работы с вебхукам;
- secrets-external-scan - очередь для анализов секретов, запущенных с помощью консольного агента Johnny;
- osa-maintenance - очередь для периодических задач модуля OSA;
- osa-background-update - очередь для фонового обновления сущностей модуля OSA;
- oss-index - очередь для загрузки данных из OSS Index, используется в случае, если интеграция инсталляции с ним включена;
- migration-background-tasks - очередь для фонового выполнения задач, связанных с перерасчётом данных после миграций схемы БД;
- media - очередь для асинхронной генерации отчётов;
- media-cleaner - очередь для периодического удаления сгенерированных отчётов;
- sca-analyses - очередь для анализов в рамках модуля SCA.
Метрики анализа¶
codescoring_running_analyses_total – общее количество выполняющихся анализов.
Данную метрику можно отфильтровать по лейблу analysis_type со следующими возможными значениями:
sca– анализ зависимостей;authors– анализ авторов кода;clones– поиск клонов кода.
Метрики запросов от плагинов OSA¶
- codescoring_registration_packages_queue_size – очередь регистрации пакетов из OSA;
- codescoring_registration_container_images_queue_size – очередь регистрации контейнерных образов из OSA.
Пример визуализации метрик:

Сбор метрик OSA¶
Метрики OSA содержат информацию о состоянии соединений, количестве и времени запросов, а также о статусах сканирования и блокировки компонентов в менеджерах репозиториев. Метрики доступны в CodeScoring API по адресу {platform-url}/api/osa/metrics.
Метрики соединений¶
codescoring_osa_api_db_connection_pool – состояние пула соединений к базе данных.
Метрику можно отфильтровать по лейблу measure со следующими возможными значениями:
pool_min– минимальный размер пула;pool_max– максимальный размер пула;pool_size– текущий размер пула;pool_available– доступные соединения;requests_waiting– количество ожидающих запросов;pool_used– используемые соединения.
codescoring_osa_api_redis_connection_pool – состояние пула соединений к Redis.
Метрику можно отфильтровать по лейблу measure со следующими возможными значениями:
available_connections– доступные соединения;in_use_connections– используемые соединения;total_connections– общее количество соединений.
Метрики запросов компонентов¶
codescoring_osa_api_http_request_duration_seconds – продолжительность HTTP-запросов в секундах.
Метрика представлена в виде гистограммы и включает:
codescoring_osa_api_http_request_duration_seconds_sum– общее время запросов;codescoring_osa_api_http_request_duration_seconds_bucket– распределение времени запросов по временным интервалам;codescoring_osa_api_http_request_duration_seconds_count– общее количество запросов.
Метрику можно отфильтровать по лейблам:
handler– обработчик запроса (например,/api/osa/packages/);method– метод запроса (например,POST);status– HTTP-статус ответа (например,2xx,4xx,5xx).
Пример:
codescoring_osa_api_http_request_duration_seconds_bucket{handler="/api/osa/packages/",le="0.01",method="POST",status="2xx"} 0.0
codescoring_osa_api_http_requests_total – общее количество HTTP-запросов.
Метрику можно отфильтровать по тем же лейблам, что и codescoring_osa_api_http_request_duration_seconds.
Метрики статусов компонентов¶
codescoring_osa_api_requested_component_block_status_total – количество компонентов в различных статусах блокировки.
Метрику можно отфильтровать по лейблам:
block_status– статус блокировки (например,not_blocked,blocked_by_policies,blocked_scan_failed);object_type– тип объекта (например,package,container_image).
Пример:
codescoring_osa_api_requested_component_block_status_total{block_status="blocked_by_policies",object_type="package"} 1.0
codescoring_osa_api_requested_component_scan_status_total – количество компонентов в различных статусах сканирования.
Метрику можно отфильтровать по лейблам:
scan_status– статус сканирования (например,not_scanned,scanned);object_type– тип объекта (например,package,container_image).
Пример:
codescoring_osa_api_requested_component_scan_status_total{object_type="container_image",scan_status="not_scanned"} 0.0
Метрики соединения с Index API¶
index_api_failure_rate - количество неуспешных запросов к Index API подряд.