Метрики приложения

Приложение может отдавать бизнес-метрики в формате, совместимом с Prometheus, что позволяет настроить стек Prometheus+Grafana для анализа и мониторинга.

При установке через ansible метрики неободимо снимать с каждой ноды:

  • путь /metrics, порт 8081

При установке в k8s метрики необходимно снимать с подов:

  • zakroma-storage-composer, путь /metrics
  • zakroma-storage-core путь /metrics
  • zakroma-storage-worker путь /metrics
Расширенные лейблы метрик (workspace / bucket)

Для метрик zakroma_requests_counter и zakroma_requests_duration может быть включён расширенный режим, добавляющий лейблы:

  • workspace — имя рабочей области
  • bucket — имя бакета

Включение осуществляется параметром конфигурации:

1metrics: 2 extended: true

При extended: false метрики содержат только базовые лейблы (например, method).
Расширенные лейблы используются для детального анализа нагрузки и построения дашбордов в разрезе workspace/bucket.

Метрики Закрома.Хранение

НазваниеОписаниеТип метрики
zakroma_requests_counterКоличество запросов в разрезе операций S3counter
zakroma_requests_durationДлительность обработки запросов в разрезе операций S3histogramm
zakroma_bucket_objects_countКоличество объектов в бакетеgauge
zakroma_bucket_objects_sizeРазмер бакетов, в байтахgauge
zakroma_bucket_parts_countКоличество частей объектов в бакетеgauge
zakroma_bucket_parts_sizeРазмер частей файлов в бакете, в байтахgauge
zakroma_bucket_uploads_countКоличество загруженных файлов в бакетеgauge
zakroma_bucket_uploads_sizeРазмер загруженных файлов в бакетеgauge
zakroma_core_requests_counterКоличество запросов к подсистеме core в разрезе операций S3counter
zakroma_core_requests_durationДлительность обработки запросов к подсистеме core в разрезе операций S3histogram
zakroma_storage_banners_countКоличество баннеров в хранилищеgauge
zakroma_storage_parts_countКоличество частей файлов в хранилищеgauge
zakroma_storage_parts_sizeРазмер частей файлов в хранилищеgauge
zakroma_workspace_objects_countКоличество объектов в рабочей областиgauge
zakroma_workspace_objects_sizeРазмер рабочей области, в байтахgauge
zakroma_workspace_parts_countКоличество частей объектов в рабочей областиgauge
zakroma_workspace_parts_sizeРазмер частей файлов в рабочей области, в байтахgauge
zakroma_workspace_uploads_countКоличество загруженных файлов в рабочей областиgauge
zakroma_workspace_uploads_sizeРазмер загруженных файлов в рабочей областиgauge
zakroma_global_readyГлобальный статус готовности приложения к работеState
zakroma_gateway_healthHealth-check сервиса gatewayState
zakroma_core_healthHealth-check сервиса coreState
zakroma_composer_healthHealth-check сервиса composerState
zakroma_<worker_name>_worker_healthHealth-check сервиса worker <worker_name>State
zakroma_seclog_healthHealth-check сервиса seclogState
zakroma_notification_healthHealth-check сервиса notificationState
zakroma_cdn_healthHealth-check сервиса cdnState
zakroma_gateway_readyМаркер готовности к работе сервиса gatewayState
zakroma_core_readyМаркер готовности к работе сервиса coreState
zakroma_composer_readyМаркер готовности к работе сервиса composerState
zakroma_<worker_name>_worker_readyМаркер готовности к работе сервиса worker <worker_name>State
zakroma_seclog_readyМаркер готовности к работе сервиса seclogState
zakroma_notification_readyМаркер готовности к работе сервиса notificationState
zakroma_cdn_readyМаркер готовности к работе сервиса cdnState

Примеры ServiceMonitor для Prometheus

1apiVersion: monitoring.coreos.com/v1 2kind: ServiceMonitor 3metadata: 4 name: zakroma-storage-composer-servicemonitor 5 namespace: monitoring 6spec: 7 endpoints: 8 - interval: 5s 9 path: /metrics 10 port: aux-http 11 namespaceSelector: 12 matchNames: 13 - zakroma-storage 14 selector: 15 matchLabels: 16 app.kubernetes.io/name: zakroma-storage-composer
1apiVersion: monitoring.coreos.com/v1 2kind: ServiceMonitor 3metadata: 4 name: zakroma-storage-core-servicemonitor 5 namespace: monitoring 6spec: 7 endpoints: 8 - interval: 5s 9 path: /metrics 10 port: aux-http 11 namespaceSelector: 12 matchNames: 13 - zakroma-storage 14 selector: 15 matchLabels: 16 app.kubernetes.io/name: zakroma-storage-core
1apiVersion: monitoring.coreos.com/v1 2kind: ServiceMonitor 3metadata: 4 name: zakroma-storage-worker-0-servicemonitor 5 namespace: monitoring 6spec: 7 endpoints: 8 - interval: 5s 9 path: /metrics 10 port: aux-http 11 namespaceSelector: 12 matchNames: 13 - zakroma-storage 14 selector: 15 matchLabels: 16 app.kubernetes.io/name: zakroma-storage-worker 17 zakroma-worker-index: worker0 18
1apiVersion: monitoring.coreos.com/v1 2kind: ServiceMonitor 3metadata: 4 name: zakroma-storage-worker-1-servicemonitor 5 namespace: monitoring 6spec: 7 endpoints: 8 - interval: 5s 9 path: /metrics 10 port: aux-http 11 namespaceSelector: 12 matchNames: 13 - zakroma-storage 14 selector: 15 matchLabels: 16 app.kubernetes.io/name: zakroma-storage-worker 17 zakroma-worker-index: worker1