Метрики приложения
Приложение может отдавать бизнес-метрики в формате, совместимом с Prometheus, что позволяет настроить стек Prometheus+Grafana для анализа и мониторинга.
При установке через ansible метрики неободимо снимать с каждой ноды:
- путь
/metrics, порт8081
При установке в k8s метрики необходимно снимать с подов:
zakroma-storage-composer, путь/metricszakroma-storage-coreпуть/metricszakroma-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 | Количество запросов в разрезе операций S3 | counter |
| zakroma_requests_duration | Длительность обработки запросов в разрезе операций S3 | histogramm |
| 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 в разрезе операций S3 | counter |
| zakroma_core_requests_duration | Длительность обработки запросов к подсистеме core в разрезе операций S3 | histogram |
| 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_health | Health-check сервиса gateway | State |
| zakroma_core_health | Health-check сервиса core | State |
| zakroma_composer_health | Health-check сервиса composer | State |
| zakroma_<worker_name>_worker_health | Health-check сервиса worker <worker_name> | State |
| zakroma_seclog_health | Health-check сервиса seclog | State |
| zakroma_notification_health | Health-check сервиса notification | State |
| zakroma_cdn_health | Health-check сервиса cdn | State |
| zakroma_gateway_ready | Маркер готовности к работе сервиса gateway | State |
| zakroma_core_ready | Маркер готовности к работе сервиса core | State |
| zakroma_composer_ready | Маркер готовности к работе сервиса composer | State |
| zakroma_<worker_name>_worker_ready | Маркер готовности к работе сервиса worker <worker_name> | State |
| zakroma_seclog_ready | Маркер готовности к работе сервиса seclog | State |
| zakroma_notification_ready | Маркер готовности к работе сервиса notification | State |
| zakroma_cdn_ready | Маркер готовности к работе сервиса cdn | State |
Примеры 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