Быстрый старт#
Пакетная загрузка кластеров СУБД и экземпляров мониторинга#
Продукт предоставляет REST API для пакетной загрузки кластеров СУБД и экземпляров мониторинга.
Пользователь или автоматизированная система, обладающие ролью для массовой загрузки, загружают подготовленный файл с JSON-описанием шаблонов кластеров СУБД и экземпляров мониторинга. Также отдельно указывается, для каких пользователей будут доступны загружаемые шаблоны. На основе данного описания формируются шаблоны кластеров и экземпляров мониторинга в области видимости выбранных пользователей. Далее пользователь может, обогатив данные шаблоны информацией, преобразовать их кластера СУБД и экземпляры мониторинга.
Пример файла templates.json в формате JSON для шаблона конфигурации кластера:
[
{
"name": "cluster_example",
"usernames": ["username"],
"connections": [
{
"name": "server_example",
"host": "10.xx.xx.xx",
"port": 5555,
"db_name": "db_name_example"
}
]
}
]
Описание содержания запроса в формате JSON для шаблона конфигурации кластера:
Параметр |
Пример |
Описание |
|---|---|---|
|
|
Название кластера |
|
|
Содержит массив имен пользователей, которым будет доступен шаблон |
|
|
Название СУБД |
|
|
Адрес СУБД |
|
|
Порт СУБД |
|
|
Имя БД для подключения |
Пример запроса командной строки для создания шаблона конфигурации кластера:
curl -X POST -H "Authorization: Basic ${token}" https://${kintsugi_host}/backend/templates:bulkCreate -H "Content-Type: application/json" @templates.json
Пример файла monitorings.json в формате JSON для шаблона экземпляра мониторинга:
{
"params": {
"version": 1,
"duplicate_handling": {
"asset_identity": {
"type": "property_list",
"property_keys": [
"host",
"port",
"databases"
]
},
"strategy": "skip"
}
},
"data": [
{
"name": "bulk_example-1",
"host": "10.XX.XX.X",
"master": "postgres",
"port": 5555,
"login": "login_example",
"inuse": false,
"databases": null,
"comment": null,
"ssl_mode": null
}
]
}
Примечание
* Форма запроса является типовой и может меняться в зависимости от настроек процесса аутентификации в программном окружении.
Описание содержания запроса в формате JSON для шаблона экземпляра мониторинга:
Параметр |
Пример |
Описание |
|---|---|---|
|
|
Номер версии параметра запроса |
|
|
Тип определителя актива |
|
|
Массив параметров по которым определяются дубликаты |
|
|
Стратегия обработки дубликатов. Если задано значение: |
|
|
Название СУБД |
|
|
Адрес СУБД |
|
|
БД для подключения |
|
|
Порт СУБД |
|
|
Имя пользователя СУБД |
|
|
Включение или отключение наблюдения объекта мониторинга ( |
|
|
Список наблюдаемых БД, заданных через запятую |
|
|
Комментарий |
|
|
Режим SSL. |
Пример запроса командной строки для создания экземпляров мониторинга:
curl -X POST -H "Authorization: Basic ${token}" https://${kintsugi_host}/backend/monitorings:bulkCreate -H "Content-Type: application/json" @monitorings.json
Массовое обновление части конфигурации объектов мониторинга#
Продукт предоставляет REST API для частичного обновления большого количества объектов мониторинга.
Запрос состоит из массива data. Каждый элемент массива отвечает за поиск и изменение одного объекта мониторинга. Изменяемые данные содержатся в asset_patch.
Операция частичного обновления поддерживает ограниченный набор полей и операций над ними:
Поле |
Изменение |
Удаление |
Описание |
|---|---|---|---|
|
Да |
Да |
Добавление/изменение/удаление пользовательских свойств объекта мониторинга |
|
Да |
Да |
Добавление/изменение/удаление прав на конфигурацию метрик объекта мониторинга |
|
Да |
Да |
Добавление/изменение/удаление индивидуальных параметров хранилища данных о производительности СУБД объекта мониторинга |
При обновлении custom_properties, owners и/или pi_parameters другие поля объекта мониторинга (логин, пароль, сертификаты и т.п.) остаются без изменений.
Добавление и заполнение поля custom_properties необходимо для начальной загрузки и последующей модификации значений пользовательских свойств объектов мониторинга.
Рекомендации по работе с custom_properties:
Пользовательские свойства должны быть задекларированы до загрузки в них значений (в противном случае обработка документа будет прервана с ошибкой).
Пользовательские свойства становятся доступны в Оперативном центре для отображения, группировки и поиска после добавления в
custom_properties.Для удаления пользовательских свойств объекта мониторинга необходимо установить
custom_properties=null.
Права на конфигурацию метрик объекта мониторинга owners:
Для каждого объекта мониторинга можно определить список пользователей, являющихся его владельцами. Владелец объекта имеет право конфигурировать метрики объекта мониторинга, даже если он не обладает ролью «Администратор мониторинга».
По умолчанию правом на конфигурацию метрик объекта мониторинга обладают только операторы, наделенные ролью «Администратор мониторинга».
Для выдачи права на конфигурацию метрик объекта мониторинга операторам с ролью «Пользователь» необходимо добавить и заполнить поле
owners, в массиве которого указать нужного пользователя.Для удаления права на конфигурацию метрик объекта мониторинга у всех пользователей необходимо установить
owners=null.
Изменение поля pi_parameters необходимо для индивидуальной настройки работы хранилища данных о производительности СУБД на уровне объекта мониторинга.
Рекомендации по работе с pi_parameters:
Параметр должен быть из числа предопределенных, иначе обработка документа будет прервана с ошибкой.
Значение параметра должно находиться в границах допустимых значений, иначе обработка документа будет прервана с ошибкой.
Параметры становятся доступны на вкладке Управление порогами и сбором данных метрик в разделе Производительность СУБД для отображения и управления.
Для удаления параметров хранилища данных о производительности СУБД объекта мониторинга необходимо установить
pi_parameters=null.
Доступные для изменения на уровне объекта мониторинга параметры хранилища данных о производительности СУБД:
Параметр |
Тип |
Допустимые значения |
Описание |
|---|---|---|---|
|
Перечисление |
|
Тип хранилища. |
|
Целочисленный |
|
Максимальная глубина хранения данных в секундах |
|
Целочисленный |
|
Максимальный размер хранилища в байтах. Доступно только в режиме |
|
Целочисленный |
|
Разрешающая способность активности в секундах. Определяет частоту сохранения агрегированной статистики активных сессий в хранилище |
|
Целочисленный |
|
Максимальная длина текста запроса в байтах. Текст запросов будет обрезан для |
|
Логический |
|
Индикатор активности сбора данных по блокировкам |
|
Целочисленный |
|
Интервал сбора блокировок (секунды). Определяет частоту сохранения данных о блокировках в хранилище |
Если custom_properties, owners и/или pi_parameters отсутствует в asset_patch, то никаких изменений не произойдет.
При этом в теле запроса должен быть запрос на изменение хотя бы одного из полей патча (custom_properties, owners, pi_parameters или их комбинации).
Если значение поля патча (custom_properties, owners или pi_parameters) = null - будет произведена операция удаления значений этого поля актива в БД.
Таким образом с помощью одного API-вызова осуществляются операции по созданию/изменению/удалению пользовательских свойств объекта мониторинга, его владельцев и индивидуальных параметров хранилища данных о производительности СУБД.
Идентификация объекта мониторинга происходит либо по asset_id, либо по связке host + port.
Возможные ошибки обновления части конфигурации объекта мониторинга:
не удалось найти объект мониторинга, используя в запросе предоставленный способ идентификации в поле
asset_selector;в БД обнаружено дублирование
asset_id;в БД обнаружено дублирование объекта мониторинга с одинаковыми значениями полей
hostиport;превышен лимит на количество пользовательских свойств у объекта мониторинга;
превышен лимит на количество владельцев объекта мониторинга;
указанного пользовательского свойства нет в БД;
длина пользовательского свойства превышена.
Пример файла assets_bulk_patch.json в формате JSON для массового обновления части конфигурации объектов мониторинга:
{
"data": [
{
"asset_selector": {
"asset_id": "6476e34f-8850-48a6-a426-ff77655354c4"
},
"asset_patch": {
"custom_properties": [
{
"property_key": "custom_key_1",
"property_value": "value_1"
},
{
"property_key": "custom_key_2",
"property_value": "value_2"
}
],
"owners": [
"user_1",
"user_2"
],
"pi_parameters": [
{
"parameter_key": "gather_locks",
"parameter_value": true
},
{
"parameter_key": "locks_interval_sec",
"parameter_value": 5
}
]
}
},
{
"asset_selector": {
"asset_type": "pg",
"host": "10.xx.xx.xx",
"port": 5555
},
"asset_patch": {
"custom_properties": [
{
"property_key": "custom_key_1",
"property_value": "value_1"
},
{
"property_key": "custom_key_2",
"property_value": "value_2"
}
],
"owners": [
"user_1"
],
"pi_parameters": [
{
"parameter_key": "history_depth_seconds",
"parameter_value": 72000
}
]
}
}
]
}
Описание содержания запроса:
Параметр |
Пример |
Описание |
|---|---|---|
|
- |
Список объектов мониторинга на частичное обновление |
|
- |
Селектор объекта мониторинга |
|
|
Идентификатор объекта мониторинга в формате UUID |
|
|
Тип объекта мониторинга. Значение |
|
|
Адрес СУБД |
|
|
Порт СУБД |
|
- |
Набор полей для частичного обновления конфигурации объекта мониторинга |
|
- |
Список пользовательских свойств объекта мониторинга |
|
|
Ключ пользовательского свойства |
|
|
Значение пользовательского свойства |
|
|
Список владельцев объекта мониторинга |
|
- |
Список индивидуальных параметров хранилища данных о производительности СУБД |
|
|
Ключ индивидуального параметра хранилища данных о производительности СУБД |
|
|
Значение индивидуального параметра хранилища данных о производительности СУБД |
Каждый объект в массиве data описывает изменения атрибутов одного объекта мониторинга, в БД изменения применяются последовательно (в соответствии с порядком объектов в массиве).
Каждый объект массива data содержит две части:
asset_selector- служит для поиска объекта.asset_patch- набор полей для операции частичного обновления объекта мониторинга.
Заполнение asset_selector поддерживает два варианта поиска:
по идентификатору актива (
asset_id);по сетевому адресу и порту (
host,port).
Указанному asset_selector должен соответствовать один объект мониторинга. Если в результате поиска по сетевому адресу и порту будет найдено более одного подходящего объекта, то обработка будет прервана сообщением об ошибке.
Заполнение asset_patch:
custom_properties- добавляется вasset_patch, если необходимо добавить/изменить/удалить пользовательские свойства объекта мониторинга;owners- добавляется вasset_patch, если необходимо добавить/изменить/удалить владельцев объекта мониторинга.pi_parameters- добавляется вasset_patch, если необходимо добавить/изменить/удалить индивидуальные параметры хранилища данных о производительности СУБД.
Заполнение custom_properties:
Данный объект содержит новые значения для пользовательских свойств объекта.
При обновлении содержимое custom_properties полностью подменяет предыдущий набор значений пользовательских свойств объекта (если в custom_properties какое-то значение какого-либо атрибута не было указано, то его предыдущее значение будет удалено из БД).
Заполнение owners:
Данный объект содержит имена пользователей, являющихся владельцами объекта мониторинга.
Внимание
В качестве имени пользователя необходимо указывать значение того поля JWT-токена, которое задано в конфигурационном параметре username_claim_name сервиса curator.
Заполнение pi_parameters:
Данный объект содержит новые значения для индивидуальных параметров хранилища данных о производительности СУБД на уровне объекта мониторинга.
При обновлении содержимое pi_parameters полностью заменяет предыдущие значения индивидуальных параметров хранилища данных о производительности СУБД объекта (если в pi_parameters какое-то значение какого-либо параметра не было указано, то его предыдущее значение будет удалено из БД).
Пример запроса командной строки для массового обновления части конфигурации объектов мониторинга:
curl -X POST -H "Authorization: Basic ${token}" https://${kintsugi_host}/assets:bulkPatch -H "Content-Type: application/json" @assets_bulk_patch.json