http_requests_total{method="GET", path="/api/v1/user/67890", status="200"} http_requests_total{method="GET", path="/api/v1/user/54321", status="200"} http_requests_total{method="GET", path="/api/v1/user/98765", status="404"}
Настройка в VMAgent параллельной отправки метрик в «новый» и «старый» VMetrics-кластеры
1. Некоторые правила пользования сервисом хранения метрик
1.1. О номере тенанта
VictoriaMetrics cluster supports multiple isolated tenants (aka namespaces). Tenants are identified by accountID or accountID:projectID, which are put inside request URLs for writes and reads. |
-
Тенанты различаются по идентификатору аккаунта (accountID) или по паре accountID:projectID. Например: 203:5.
-
Технически, для того чтобы метрика была отправлена в конкретный тенант, к ней необходимо прикрепить метки, например
vm_account_id=203
иvm_project_id=5
. Допустимо указать толькоvm_account_id=203
— в этом случае кластер VictoriaMetrics воспримет, что метрика предназначена для тенанта203:0
. -
Каждому арендатору назначается уникальный номер, определяющий аккаунт (accountID), в который сохраняются метрики в кластере VictoriaMetrics.
-
Все метрики, отправляемые арендатором в кластер, должны быть помечены меткой vm_account_id со значением, соответствующим выданному номеру аккаунта.
1.2. О номере проекта
-
Перед отправкой метрик в кластер, арендатор может дополнительно присваивать метрикам метку
vm_project_id
, определяющую номер проекта внутри выделенного аккаунта, в который будет сохранена метрика. -
Диапазон допустимых значений
vm_project_id
— от0
до4 294 967 295
. Конкретное значение выбирается арендатором самостоятельно. -
Если метка
vm_project_id
не указана, по умолчанию используется значение0
. Рекомендуется избегать использования нуля, так как при ошибках в конфигурации метрики могут непреднамеренно попадать именно в проект 0. -
При чтении метрик (например, через Grafana) использование метки
vm_project_id
удобно для логической группировки данных на уровне dashboard — эту группировку арендатор выполняет самостоятельно.
1.3. О высокой «кардинальности» метрик
-
Арендатору необходимо избегать назначения на метрики лейблов с динамическими значениями.
-
Пример «проблемных» меток:
-
Если в метках встречаются уникальные значения от миллионов пользователей, это приведёт к взрывному росту числа временных рядов, что негативно скажется на производительности и потреблении ресурсов кластера VictoriaMetrics.
2. Сбор используемой в сценарии информации
Имя переменной |
Описание |
Возможные значения |
|
1 |
REMOTEWRITE_URL_NEW |
VMAuth URL отправки метрик в VM-кластер. Запрашивается у ответственного за мониторинг. |
|
2 |
REMOTEWRITE_URL_OLD |
Адрес отправки метрик в «старый» кластер. Может быть найден в текущих настройках VMAgent. |
|
3 |
BEARER_TOKEN |
Токен доступа к VMAuth. Запрашивается у ответственного за мониторинг. |
|
4 |
TENANT |
Номер выделенного для арендатора тенанта («аккаунта»). Запрашивается у ответственного за мониторинг. |
|
3. Проверка доступности «нового» VMetrics-кластера
VMAuth настроен возвращать своё состояние https://127.0.0.1:8426/-/ready на анонимные запросы. |
№ |
Задача |
Подробности |
---|---|---|
1 |
Проверка связности. |
|
4. Установка VMAgent из внутреннего rpm-репозитория
№ |
Задача |
Подробности |
---|---|---|
1 |
Добавление в систему rpm-репо. |
|
2 |
Установка пакета. |
|
5. Конфигурирование отправки метрик и настройка глобальных меток
Для параллельной отправки метрик в «новый» и «старый» кластеры, в большинстве случаев понадобятся изменения только в одной переменной Вообще здесь, в этой инструкции, для отправки метрик в различные места назначений задействованы переменные: В предложенной ниже схеме, аутентификация используется только для отправки метрик в «новый» кластер. Поэтому, в каждой из вышеуказанных переменных, значения для отправки метрик в «новый» VMetrics-кластер указаны в первой позиции. Тогда как значения для отправки в «старый» VMetrics-кластер указаны во второй позиции. Так как отправка в «старый» VMetrics-кластер не требует аутентификации, то все переменные, кроме
Естественно, при необходимости, можно дополнить переменные, чтобы организовать отправку в третье и последующие URL. |
№ |
Задача |
Подробности |
||||
---|---|---|---|---|---|---|
1 |
Создание файла /etc/sysconfig/vmagent с флагами запуска демона VMAgent. Переменные передаваемые в VMAgent при запуске демона:
|
Содержимое
|
||||
2 |
Опциональное добавление CA-сертификата домена.
|
|
||||
3 |
Создание файла с секретным Bearer Token.
|
|
||||
4 |
Добавление файлов с фильтрами отбора метрик по номеру тенанта.
|
|
6. Редактирование «основного» файла для настройки сбора метрик методом pull
В большинстве случаев в установленном файле достаточно изменить:
|
№ |
Задача |
Подробности |
||||||
---|---|---|---|---|---|---|---|---|
1 |
Редактирование «основного» conf-файла vmagent.yml
external_labels: (1) scraper_hostname: %{SYSTEMD_HOSTNAME} (2) scraper_region: "kurch" (3) scraper_vlan_num: "0617" (3) scraper_vlan_env: "dev" (3)
|
Пример содержимого файла файла /etc/victoriametrics/vmagent.yml:
|
7. Пример настройки сбора собственных метрик
В большинстве случае в установленных файлах достаточно:
|
№ |
Задача |
Подробности |
---|---|---|
1 |
Редактирование Job-файла для сбора собственных метрик VMAgent.
|
Пример содержимого файла
|
2 |
Редактирование Job для сбора метрик из установленного локально Telegraf.
|
Пример содержимого файла
|
8. Запуск демона vmagent
№ |
Задача |
Подробности |
---|---|---|
1 |
Запуск демона. |
Выполните команду:
|
2 |
Проверка |
Выполните команду:
|
remoteWrite_maxDiskUsagePerURL
не потребуется.