Отправка метрик в VictoriaMetrics
В разделе представлены инструкции по загрузке метрик в VictoriaMetrics через HTTP и через gRPC.
Отправка метрик в систему мониторинга по gRPC — это эффективный способ передачи данных с минимальными накладными расходами. В отличие от REST API gRPC использует бинарный протокол Protocol Buffers (protobuf), что ускоряет сериализацию и уменьшает размер передаваемых данных.
Для работы с gRPC необходимо обязательно составить proto-файл - это схема, которая определяет:
- структуру сообщений;
- методы gRPC-сервиса;
- типы данных.
Для автоматической отправки метрик по gRPC настройте интеграцию с gRPC-шлюзом, используя proto-файл.
Пример файла
MetricsService.proto
представлен ниже.syntax = "proto3"; // версия Protocol Buffers package ru.sber.grpc; // пространство имен для генерации кода option java_multiple_files = true; // генерация каждого класса в отдельном файле message MetricsRequest { message MetricData { map<string,string> metric = 1; // пары ключ-значение для лейблов метрики repeated double values = 2; // список значений метрики repeated int64 timestamps = 3; // список временных меток в Unix-формате, в милисекундах } repeated MetricData metrics = 1; // список метрик для отправки } message MetricsResponse { string response = 1; // ответ сервера } service MetricsService { rpc postMetrics(MetricsRequest) returns (MetricsResponse); // метод для отправки метрик }
Пример отправки метрик по gRPC через Postman
Для отправки метрик по gRPC через Postman (версия выше 9.х) выполните следующее:
-
Создайте новый запрос с типом gRPC в Postman.
-
Укажите URL агента сборщика мониторинга с портом (по дефолту используется порт
8081
). -
На вкладке Service definition импортируйте proto-файл, укажите метод
postMetrics
.Увеличить
-
Вставьте JSON-код с метриками во вкладку Message и нажмите Invoke:
{ "metrics": [ { "metric": { "__name__": "test_metric", "job": "test", "instance": "localtest" }, "values": [ 1, 1, 2, 2 ], "timestamps": [ 1748768400000, // должно быть строго utc 1748768400000 (13 символов), т.к. в милисекундах 1748854800000, 1748941200000, 1749027600000 ] } ] }
В случае успешной загрузки будет получен ответ200 OK
. -
Проверьте, что метрика успешно отправлена в систему мониторинга.
Увеличить
Для загрузки метрик через HTTP выполните следующее:
-
Перейдите на страницу системы мониторинга.
-
Убедитесь, что создаваемые метрики отсутствуют. Например,
foo{bar="baz"}
:Увеличить
-
Отправьте POST-запрос на эндпоинт
http://:8429/api/v1/import/prometheus
для добавления метрик в VictoriaMetrics.Пример запроса:curl -d 'foo{bar="baz"} 123' -X POST 'http://<vmagent>:8429/api/v1/import/prometheus'
-
Убедитесь, что метрики присутствуют в системе мониторинга. Они отобразятся через несколько минут после выполнения запроса.
Увеличить
В демопримерах реализованы стандартные сценарии, демонстрирующие работу отдельных сервисов Платформы ГосТех. Отправка тестовых запросов в демопримерах позволит вам ознакомиться с функциями того или иного сервиса. Доступные демопримеры и описания реализованной в них функциональности представлены ниже.
Мониторинг
Генерация метрик, их получение и просмотр в Grafana