Настройка метрик¶
CodeScoring хранит метрики в формате, поддерживаемом инструментом мониторинга Prometheus. На данный момент доступны метрики с инсталляции CodeScoring и плагинов в прокси-репозиториях.
Cбор метрик с инсталляции¶
Метрики с инсталляции доступны в CodeScoring API по адресу {installation-url}/api/metrics
. Для того, чтобы настроить отслеживание метрик в Prometheus, необходимо выполнить следующие шаги:
-
Открыть файл конфигурации
prometheus.yml
и добавить параметры для мониторинга метрик. Ниже приведен пример:global: scrape_interval: 15s scrape_configs: - job_name: 'demo-codescoring' metrics_path: '/api/metrics' static_configs: - targets: ['{installation-url}'] # Адрес хоста инсталляции - job_name: 'osa' metrics_path: '/api/osa/metrics' static_configs: - targets: ['{installation-url}'] # Адрес хоста инсталляции
-
Перезапустить Prometheus, чтобы изменения вступили в силу.
-
Открыть интерфейс Prometheus и перейти на страницу Graph. В поле запроса ввеcти название одной из метрик:
Метрики очередей
codescoring_tasks_queue_size_total
– общее количество задач, ожидающих выполнения;codescoring_tasks_schedule_queue_size_total
– общее количество запланированных задач, ожидающих выполнения;codescoring_tasks_running_tasks_total
– общее количество задач, выполняющихся в данный момент.
Данные метрики можно отфильтровать по лейблу queue
со следующими возможными значениями: ipcs
, high-priority
, osa-container-image-scan
, osa-package-scan
, policy
и tqi
.
Метрики анализа
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 по адресу {installation-url}/api/osa/metrics
.
Доступны следующие метрики OSA:
Метрики соединений
-
codescoring_osa_api_db_connection_pool
– пул соединений к базе данных. Данную метрику можно отфильтровать по лейблуmeasure
со следующими возможными значениями:pool_min
,pool_max
,pool_size
,pool_available
иrequests_waiting
. -
codescoring_osa_api_redis_connection_pool
– пул соединений к Redis. Данную метрику можно отфильтровать по лейблуmeasure
со следующими возможными значениями:available connections
,in_use_connections
,total_connections
.
Метрики запросов компонентов
codescoring_osa_api_http_request_duration_seconds_sum
– общее время запроса;codescoring_osa_api_http_request_duration_seconds_bucket
– время запроса по временным рядам;codescoring_osa_api_http_requests_total
– общее количество запросов.
Данные метрики можно отфильтровать по лейблам handler'a, статуса и метода запроса. Например:
codescoring_osa_api_http_request_duration_seconds_bucket{handler="/api/osa/packages/",le="0.01",method="POST",status="2xx"} 0.0
Метрики статусов компонентов
codescoring_osa_api_requested_component_block_status_total
– количество запрошенных компонентов в определенном статусе блокировки.
Данную метрику можно отфильтровать по лейблам object_type
и block_status
. Например:
codescoring_osa_api_requested_component_block_status_total{block_status="blocked_by_policies",object_type="package"}
codescoring_osa_api_requested_component_scan_status_total
– количество запрошенных компонентов в определенном статусе сканирования.
Данную метрику можно отфильтровать по лейблам object_type
и scan_status
. Например: