Отправка метрик в VictoriaMetrics

В разделе представлены инструкции по загрузке метрик в VictoriaMetrics через HTTP и через gRPC.

Загрузка метрик через 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.х) выполните следующее:
  1. Создайте новый запрос с типом gRPC в Postman.
  2. Укажите URL агента сборщика мониторинга с портом (по дефолту используется порт 8081).
  3. На вкладке Service definition импортируйте proto-файл, укажите метод postMetrics.

    Увеличить

  4. Вставьте 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.
  5. Проверьте, что метрика успешно отправлена в систему мониторинга.

    Увеличить

Загрузка метрик через HTTP

Для загрузки метрик через HTTP выполните следующее:
  1. Перейдите на страницу системы мониторинга.
  2. Убедитесь, что создаваемые метрики отсутствуют. Например, foo{bar="baz"}:

    Увеличить

  3. Отправьте POST-запрос на эндпоинт http://:8429/api/v1/import/prometheus для добавления метрик в VictoriaMetrics.
    Пример запроса:
    curl -d 'foo{bar="baz"} 123' -X POST 'http://<vmagent>:8429/api/v1/import/prometheus'
  4. Убедитесь, что метрики присутствуют в системе мониторинга. Они отобразятся через несколько минут после выполнения запроса.

    Увеличить

Демопримеры

В демопримерах реализованы стандартные сценарии, демонстрирующие работу отдельных сервисов Платформы ГосТех. Отправка тестовых запросов в демопримерах позволит вам ознакомиться с функциями того или иного сервиса. Доступные демопримеры и описания реализованной в них функциональности представлены ниже.
Мониторинг
Генерация метрик, их получение и просмотр в Grafana
Предыдущий раздел
Отслеживание метрик
Следующий раздел
1.17 Сервис предоставления кворумного ЦОД
Была ли страница полезной?