DB Query: различия между версиями

Материал из Документация Ключ-АСТРОМ
Нет описания правки
[wiki-cd:ruscomtech-extensions:b0985a6744c086353b26ac217dfa652296b8c814]
 
Строка 1: Строка 1:
= Расширение DB Query для Ключ-АСТРОМ =
= Расширение DB Query для Ключ-АСТРОМ =
Расширение '''DB Query''' предназначено для мониторинга баз данных через выполнение пользовательских запросов и извлечения метрик. Оно поддерживает основные реляционные СУБД и '''MongoDB''', позволяя превращать результаты запросов в метрики и измерения Ключ-АСТРОМ.
Расширение '''DB Query''' предназначено для мониторинга баз данных через выполнение пользовательских запросов и извлечения метрик. Оно поддерживает основные реляционные СУБД и '''MongoDB''', позволяя превращать результаты запросов в метрики и измерения Ключ-АСТРОМ.
Текущая версия — <code>0.3.9</code>. Идентификатор расширения: <code>ru.ruscomtech.dbquery</code>.


== Возможности расширения ==
== Возможности расширения ==
Строка 8: Строка 10:
* Настройка интервала выполнения запросов и расписания запуска по времени.
* Настройка интервала выполнения запросов и расписания запуска по времени.
* Ограничение времени выполнения запроса.
* Ограничение времени выполнения запроса.
* Разворачивание вложенных JSON/JSONB-значений результата в отдельные колонки.
* Проверка доступности подключения лёгким запросом ('''fastcheck''').
* Проверка доступности подключения лёгким запросом ('''fastcheck''').
* Создание сущностей '''DB Query Host''' и '''DB Query Endpoint''' с топологическими связями.
* Создание сущностей '''DB Query Host''' и '''DB Query Endpoint''' с топологическими связями.
Строка 24: Строка 27:
== Требования ==
== Требования ==


* АктивныйШлюз с включённым выполнением расширений (или ЕдиныйАгент с '''EEC''').
* Ключ-АСТРОМ <code>1.290.0+</code>.
* АктивныйШлюз с включённым контроллером выполнения расширений (EEC). Поддерживается только удалённое выполнение; запуск на ЕдиномАгенте не предусмотрен.
* Среда Python не ниже <code>3.10</code> в составе EEC. Драйверы поставляются в пакете; устанавливать зависимости в системный Python не требуется.
* Сетевой доступ к базе данных.
* Сетевой доступ к базе данных.
* Учётные данные с правами на выполнение запросов.
* Учётные данные с правами на выполнение запросов.
Строка 33: Строка 38:
Расширение выполняется на АктивномШлюзе и подключается к удалённым базам данных. АктивномуШлюзу должны быть доступны адрес и порт базы данных, а используемая учётная запись должна иметь право выполнять настроенные запросы.
Расширение выполняется на АктивномШлюзе и подключается к удалённым базам данных. АктивномуШлюзу должны быть доступны адрес и порт базы данных, а используемая учётная запись должна иметь право выполнять настроенные запросы.


Поддерживаемые базы данных:
Загрузите подписанный ZIP-пакет в раздел '''Расширения''', активируйте версию <code>0.3.9</code>, создайте конфигурацию удалённого мониторинга и выберите группу АктивныхШлюзов. Затем заполните общие параметры подключения и добавьте запросы в список endpoint.
 
* PostgreSQL
* Oracle Database
* MySQL
* MariaDB
* Microsoft SQL Server
* MongoDB


=== Настройка подключения ===
=== Настройка подключения ===
Строка 52: Строка 50:
Поддерживаются строки подключения PostgreSQL, Oracle, MySQL, MariaDB, SQL Server, MongoDB и MongoDB SRV.
Поддерживаются строки подключения PostgreSQL, Oracle, MySQL, MariaDB, SQL Server, MongoDB и MongoDB SRV.


{| class="wikitable"
* '''DB name''' — '''тип СУБД''', а не имя конкретной базы: <code>Postgres</code>, <code>Oracle</code>, <code>MySQL</code>, <code>MariaDB</code>, <code>SQLServer</code> или <code>MongoDB</code>. Можно не заполнять, если тип определяется из строки подключения.
!Параметр
* '''Host''' — IP-адрес или DNS-имя сервера; можно не заполнять, если адрес задан в строке подключения.
!Значение по умолчанию
* '''DB port''' — порт сервера; при отсутствии явного значения используется стандартный порт выбранной СУБД.
!Описание
* '''DB user''' и '''DB password''' — учётная запись с правами на выполнение запросов. Пароль хранится как секрет.
|-
* '''JDBC connection string''' — необязательная строка подключения длиной до 2000 символов.
|<code>DB name</code>
* '''Query interval (minutes)''' — период запросов без индивидуального расписания; по умолчанию <code>1</code> минута.
|—
* '''Query timeout (seconds)''' — общий таймаут: по умолчанию <code>600</code> секунд, диапазон <code>1–86400</code>.
|Тип базы данных: <code>Postgres</code>, <code>Oracle</code>, <code>MySQL</code>, <code>MariaDB</code>, <code>SQLServer</code> или <code>MongoDB</code>. Можно не заполнять, если тип определяется из строки подключения.
* '''Max rows per query''' — максимум строк или документов одного запроса: по умолчанию <code>10000</code>, диапазон <code>0–1000000</code>; <code>0</code> отключает ограничение.
|-
* '''Max parallel queries''' — количество одновременно выполняемых endpoint: по умолчанию <code>4</code>, диапазон <code>1–20</code>.
|<code>Host</code>
|—
|IP-адрес или DNS-имя сервера. Можно не заполнять, если адрес указан в строке подключения.
|-
|<code>DB port</code>
|Стандартный порт СУБД
|Порт сервера базы данных.
|-
|<code>DB user</code>
|—
|Имя пользователя базы данных.
|-
|<code>DB password</code>
|—
|Пароль пользователя. Значение хранится как секрет.
|-
|<code>JDBC connection string</code>
|—
|Необязательная строка подключения. Максимальная длина — 2000 символов.
|-
|<code>Query interval (minutes)</code>
|<code>1</code>
|Интервал выполнения запросов без индивидуального расписания.
|-
|<code>Query timeout (seconds)</code>
|<code>600</code>
|Общий таймаут запроса. Допустимый диапазон — от 1 до 86400 секунд.
|-
|<code>Max rows per query</code>
|<code>10000</code>
|Максимальное количество строк или документов, получаемых одним запросом. Значение <code>0</code> отключает ограничение.
|-
|<code>Max parallel queries</code>
|<code>4</code>
|Количество одновременно выполняемых endpoint. Допустимый диапазон — от 1 до 20.
|}


=== Настройка endpoint ===
=== Настройка endpoint ===
Строка 102: Строка 64:
Конфигурация должна содержать от 1 до 100 endpoint. Каждый endpoint описывает один запрос и правила преобразования его результата в метрики.
Конфигурация должна содержать от 1 до 100 endpoint. Каждый endpoint описывает один запрос и правила преобразования его результата в метрики.


{| class="wikitable"
* '''Endpoint Name''' — обязательное уникальное имя запроса, участвующее в ключе метрики. Рекомендуются латинские буквы в нижнем регистре, цифры и подчёркивание.
!Параметр
* '''DBase name''' — имя базы данных; для Oracle — service name, PDB service или SID. Можно не заполнять, если оно содержится в строке подключения.
!Обязательный
* '''JDBC connection string''' — необязательная строка подключения только этого endpoint; имеет приоритет над общей.
!Описание
* '''Query''' — обязательный SQL-запрос либо JSON-команда MongoDB; максимум 10000 символов.
|-
* '''Schedule (cron or HH:MM)''' — необязательное индивидуальное расписание по локальному времени АктивногоШлюза.
|<code>Endpoint Name</code>
* '''Query timeout (seconds)''' — необязательный таймаут endpoint; имеет приоритет над общим.
|Да
* '''Flatten JSON/JSONB fields''' (<code>flatten_json</code>) — разворачивать вложенные объекты и массивы результата реляционного запроса в отдельные колонки; по умолчанию выключено.
|Уникальное имя запроса. Используется при формировании ключа метрики. Рекомендуется использовать латинские буквы в нижнем регистре, цифры и символ подчёркивания.
* '''Dimension columns''' — имена или номера колонок, используемых как измерения, через запятую.
|-
* '''Metric columns''' — имена или номера числовых колонок, отправляемых как метрики, через запятую.
|<code>DBase name</code>
|Условно
|Имя базы данных. Для Oracle указывается service name, PDB service или SID. Можно не заполнять, если имя базы содержится в строке подключения.
|-
|<code>JDBC connection string</code>
|Нет
|Строка подключения только для этого endpoint. Позволяет разным endpoint обращаться к разным серверам и базам данных.
|-
|<code>Query</code>
|Да
|SQL-запрос для реляционной базы данных или JSON-команда для MongoDB. Максимальная длина — 10000 символов.
|-
|<code>Schedule (cron or HH:MM)</code>
|Нет
|Индивидуальное расписание выполнения запроса по локальному времени АктивногоШлюза.
|-
|<code>Query timeout (seconds)</code>
|Нет
|Индивидуальный таймаут endpoint. Имеет приоритет над общим таймаутом.
|-
|<code>Dimension columns</code>
|Нет
|Имена или порядковые номера колонок, которые используются как измерения. Несколько значений разделяются запятыми.
|-
|<code>Metric columns</code>
|Нет
|Имена или порядковые номера числовых колонок, которые отправляются как метрики. Несколько значений разделяются запятыми.
|}


Порядковые номера колонок начинаются с 1. Например, значение <code>1,3</code> выбирает первую и третью колонки результата.
Порядковые номера колонок начинаются с 1. Например, значение <code>1,3</code> выбирает первую и третью колонки результата.
Строка 177: Строка 111:


Для MongoDB поле <code>Query</code> принимает JSON-команду. Поддерживаются операции <code>find</code>, <code>find_one</code>, <code>count_documents</code>, <code>estimated_document_count</code> и <code>aggregate</code>.
Для MongoDB поле <code>Query</code> принимает JSON-команду. Поддерживаются операции <code>find</code>, <code>find_one</code>, <code>count_documents</code>, <code>estimated_document_count</code> и <code>aggregate</code>.
=== Вложенные JSON/JSONB-значения ===
Включите '''Flatten JSON/JSONB fields''' (<code>flatten_json</code>) у endpoint, если драйвер реляционной СУБД возвращает в колонках объекты или массивы. Вложенные ключи разделяются точками, а индексы массивов начинаются с <code>0</code>.
Например, колонка <code>payload</code> содержит объект:
<pre>
{"stats":{"count":42},"region":"eu","items":[{"value":7}]}
</pre>
После разворачивания доступны колонки <code>payload.stats.count</code>, <code>payload.region</code> и <code>payload.items.0.value</code>. Укажите <code>payload.stats.count,payload.items.0.value</code> в '''Metric columns''' и <code>payload.region</code> в '''Dimension columns'''. Использование имён надёжнее номеров при изменении структуры JSON.
Функция работает с объектами и массивами, возвращёнными драйвером. Строка, содержащая JSON-текст, автоматически не разбирается: при необходимости преобразуйте её в поддерживаемый драйвером JSON-тип на стороне запроса. Документы MongoDB разворачиваются отдельно при обработке результата и не требуют включения этого флажка.


=== Проверка конфигурации ===
=== Проверка конфигурации ===
Строка 191: Строка 139:
* <code>ru.ruscomtech.dbquery.query.duration</code> — продолжительность выполнения запроса в миллисекундах.
* <code>ru.ruscomtech.dbquery.query.duration</code> — продолжительность выполнения запроса в миллисекундах.
* <code>ru.ruscomtech.dbquery.query.timeout</code> — признак превышения таймаута: 1, если запрос завершён по таймауту, иначе 0.
* <code>ru.ruscomtech.dbquery.query.timeout</code> — признак превышения таймаута: 1, если запрос завершён по таймауту, иначе 0.
== Примеры конфигурации ==
Следующие фрагменты описывают отдельные endpoint; общие параметры подключения и учётные данные задаются в конфигурации мониторинга.
=== MongoDB: количество открытых заказов ===
<pre>
{
  "name": "mongo_orders_open",
  "db_name": "mydb",
  "query": "{\"collection\":\"orders\",\"operation\":\"count_documents\",\"filter\":{\"status\":\"open\"}}",
  "metric_columns": "count"
}
</pre>
=== MongoDB: количество заказов по статусам ===
<pre>
{
  "name": "mongo_orders_by_status",
  "db_name": "mydb",
  "query": "{\"collection\":\"orders\",\"operation\":\"aggregate\",\"pipeline\":[{\"$group\":{\"_id\":\"$status\",\"total\":{\"$sum\":1}}}]}",
  "dimension_columns": "_id",
  "metric_columns": "total"
}
</pre>


== История версий ==
== История версий ==
=== Версия 0.3.9 ===
Версия расширения для Ключ-АСТРОМ <code>1.290.0+</code>, с удалённым выполнением на АктивномШлюзе и Python <code>3.10+</code> в составе EEC.
* Добавлен параметр <code>flatten_json</code> для разворачивания вложенных JSON/JSONB-объектов и массивов результата реляционного запроса.
* Вложенные поля доступны для выбора метрик и измерений по составным именам с разделителем <code>.</code> и индексами массивов от <code>0</code>.


=== Версия 0.3.1 ===
=== Версия 0.3.1 ===
Строка 238: Строка 220:
* Добавлена поддержка '''Oracle'''.
* Добавлена поддержка '''Oracle'''.
* Добавлена функция ожидания после каждого выполнения.
* Добавлена функция ожидания после каждого выполнения.
== Примеры конфигурации ==
=== Пример MongoDB count ===
<pre>
{
  "name": "mongo_orders_open",
  "db_name": "mydb",
  "query": "{\"collection\":\"orders\",\"operation\":\"count_documents\",\"filter\":{\"status\":\"open\"}}",
  "metric_columns": "count"
}
</pre>
=== Пример MongoDB aggregate ===
<pre>
{
  "name": "mongo_orders_by_status",
  "db_name": "mydb",
  "query": "{\"collection\":\"orders\",\"operation\":\"aggregate\",\"pipeline\":[{\"$group\":{\"_id\":\"$status\",\"total\":{\"$sum\":1}}}]}",
  "dimension_columns": "_id",
  "metric_columns": "total"
}
</pre>

Текущая версия от 23:24, 22 октября 2026

Расширение DB Query для Ключ-АСТРОМ

Расширение DB Query предназначено для мониторинга баз данных через выполнение пользовательских запросов и извлечения метрик. Оно поддерживает основные реляционные СУБД и MongoDB, позволяя превращать результаты запросов в метрики и измерения Ключ-АСТРОМ.

Текущая версия — 0.3.9. Идентификатор расширения: ru.ruscomtech.dbquery.

Возможности расширения

  • Подключение к базам данных PostgreSQL, Oracle, MySQL, MariaDB, SQL Server и MongoDB.
  • Выполнение произвольных запросов (SQL или MongoDB-команд) и преобразование результатов в метрики и размерности.
  • Настройка интервала выполнения запросов и расписания запуска по времени.
  • Ограничение времени выполнения запроса.
  • Разворачивание вложенных JSON/JSONB-значений результата в отдельные колонки.
  • Проверка доступности подключения лёгким запросом (fastcheck).
  • Создание сущностей DB Query Host и DB Query Endpoint с топологическими связями.
  • Готовый обзорный дашборд.
  • Отображение ошибок подключения и выполнения в статусе расширения.

Поддерживаемые базы данных

  • PostgreSQL
  • Oracle
  • MySQL
  • MariaDB
  • SQL Server
  • MongoDB

Требования

  • Ключ-АСТРОМ 1.290.0+.
  • АктивныйШлюз с включённым контроллером выполнения расширений (EEC). Поддерживается только удалённое выполнение; запуск на ЕдиномАгенте не предусмотрен.
  • Среда Python не ниже 3.10 в составе EEC. Драйверы поставляются в пакете; устанавливать зависимости в системный Python не требуется.
  • Сетевой доступ к базе данных.
  • Учётные данные с правами на выполнение запросов.
  • Для MongoDB — зависимость pymongo (включена в расширение).

Конфигурация

Расширение выполняется на АктивномШлюзе и подключается к удалённым базам данных. АктивномуШлюзу должны быть доступны адрес и порт базы данных, а используемая учётная запись должна иметь право выполнять настроенные запросы.

Загрузите подписанный ZIP-пакет в раздел Расширения, активируйте версию 0.3.9, создайте конфигурацию удалённого мониторинга и выберите группу АктивныхШлюзов. Затем заполните общие параметры подключения и добавьте запросы в список endpoint.

Настройка подключения

Подключение можно настроить с помощью отдельных полей или строки JDBC connection string.

Если строка подключения указана внутри endpoint, она имеет приоритет над общей строкой подключения. Отсутствующие в строке имя пользователя и пароль берутся из общих полей DB user и DB password.

Пароль рекомендуется хранить в секретном поле DB password, а не включать в строку подключения.

Поддерживаются строки подключения PostgreSQL, Oracle, MySQL, MariaDB, SQL Server, MongoDB и MongoDB SRV.

  • DB name — тип СУБД, а не имя конкретной базы: Postgres, Oracle, MySQL, MariaDB, SQLServer или MongoDB. Можно не заполнять, если тип определяется из строки подключения.
  • Host — IP-адрес или DNS-имя сервера; можно не заполнять, если адрес задан в строке подключения.
  • DB port — порт сервера; при отсутствии явного значения используется стандартный порт выбранной СУБД.
  • DB user и DB password — учётная запись с правами на выполнение запросов. Пароль хранится как секрет.
  • JDBC connection string — необязательная строка подключения длиной до 2000 символов.
  • Query interval (minutes) — период запросов без индивидуального расписания; по умолчанию 1 минута.
  • Query timeout (seconds) — общий таймаут: по умолчанию 600 секунд, диапазон 1–86400.
  • Max rows per query — максимум строк или документов одного запроса: по умолчанию 10000, диапазон 0–1000000; 0 отключает ограничение.
  • Max parallel queries — количество одновременно выполняемых endpoint: по умолчанию 4, диапазон 1–20.

Настройка endpoint

Конфигурация должна содержать от 1 до 100 endpoint. Каждый endpoint описывает один запрос и правила преобразования его результата в метрики.

  • Endpoint Name — обязательное уникальное имя запроса, участвующее в ключе метрики. Рекомендуются латинские буквы в нижнем регистре, цифры и подчёркивание.
  • DBase name — имя базы данных; для Oracle — service name, PDB service или SID. Можно не заполнять, если оно содержится в строке подключения.
  • JDBC connection string — необязательная строка подключения только этого endpoint; имеет приоритет над общей.
  • Query — обязательный SQL-запрос либо JSON-команда MongoDB; максимум 10000 символов.
  • Schedule (cron or HH:MM) — необязательное индивидуальное расписание по локальному времени АктивногоШлюза.
  • Query timeout (seconds) — необязательный таймаут endpoint; имеет приоритет над общим.
  • Flatten JSON/JSONB fields (flatten_json) — разворачивать вложенные объекты и массивы результата реляционного запроса в отдельные колонки; по умолчанию выключено.
  • Dimension columns — имена или номера колонок, используемых как измерения, через запятую.
  • Metric columns — имена или номера числовых колонок, отправляемых как метрики, через запятую.

Порядковые номера колонок начинаются с 1. Например, значение 1,3 выбирает первую и третью колонки результата.

Расписание запросов

Если поле Schedule (cron or HH:MM) не заполнено, запрос выполняется через интервал, заданный в Query interval (minutes).

Поддерживаются:

  • точное время в формате HH:MM, например 09:00;
  • несколько значений времени через запятую, например 09:00,18:30;
  • cron из пяти полей, например */15 * * * * или 0 9 * * 1-5;
  • макросы @hourly, @daily, @weekly, @monthly и @yearly;
  • несколько расписаний через точку с запятой.

Секунды в cron-выражениях не поддерживаются. Запрос выполняется в течение пяти минут после расчётного времени и не более одного раза для каждого слота расписания.

Преобразование результата в метрики

Поле Metric columns определяет числовые колонки, которые отправляются как метрики. Если оно не заполнено, числовые колонки определяются автоматически.

Поле Dimension columns определяет колонки, которые добавляются как измерения. Если оно не заполнено, измерениями становятся все колонки, не выбранные как метрики.

При одной метрической колонке ключ формируется следующим образом:

ru.ruscomtech.dbquery.<endpoint>

При нескольких метрических колонках к ключу добавляется имя колонки:

ru.ruscomtech.dbquery.<endpoint>.<column>

Во все метрики автоматически добавляются измерения с адресом сервера, портом, типом базы данных, именем базы и именем endpoint.

Для MongoDB поле Query принимает JSON-команду. Поддерживаются операции find, find_one, count_documents, estimated_document_count и aggregate.

Вложенные JSON/JSONB-значения

Включите Flatten JSON/JSONB fields (flatten_json) у endpoint, если драйвер реляционной СУБД возвращает в колонках объекты или массивы. Вложенные ключи разделяются точками, а индексы массивов начинаются с 0.

Например, колонка payload содержит объект:

{"stats":{"count":42},"region":"eu","items":[{"value":7}]}

После разворачивания доступны колонки payload.stats.count, payload.region и payload.items.0.value. Укажите payload.stats.count,payload.items.0.value в Metric columns и payload.region в Dimension columns. Использование имён надёжнее номеров при изменении структуры JSON.

Функция работает с объектами и массивами, возвращёнными драйвером. Строка, содержащая JSON-текст, автоматически не разбирается: при необходимости преобразуйте её в поддерживаемый драйвером JSON-тип на стороне запроса. Документы MongoDB разворачиваются отдельно при обработке результата и не требуют включения этого флажка.

Проверка конфигурации

Во время проверки расширение проверяет обязательные параметры, формат расписания и подключение к каждой уникальной базе данных.

Для реляционных СУБД выполняется короткий запрос SELECT 1. Для Oracle используется SELECT 1 FROM dual, для MongoDB — команда ping.

Ошибки конфигурации, подключения, аутентификации и выполнения запросов отображаются в статусе расширения.

Метрики

  • ru.ruscomtech.dbquery.host.status — состояние настроенного хоста DB Query.
  • ru.ruscomtech.dbquery.query.duration — продолжительность выполнения запроса в миллисекундах.
  • ru.ruscomtech.dbquery.query.timeout — признак превышения таймаута: 1, если запрос завершён по таймауту, иначе 0.

Примеры конфигурации

Следующие фрагменты описывают отдельные endpoint; общие параметры подключения и учётные данные задаются в конфигурации мониторинга.

MongoDB: количество открытых заказов

{
  "name": "mongo_orders_open",
  "db_name": "mydb",
  "query": "{\"collection\":\"orders\",\"operation\":\"count_documents\",\"filter\":{\"status\":\"open\"}}",
  "metric_columns": "count"
}

MongoDB: количество заказов по статусам

{
  "name": "mongo_orders_by_status",
  "db_name": "mydb",
  "query": "{\"collection\":\"orders\",\"operation\":\"aggregate\",\"pipeline\":[{\"$group\":{\"_id\":\"$status\",\"total\":{\"$sum\":1}}}]}",
  "dimension_columns": "_id",
  "metric_columns": "total"
}

История версий

Версия 0.3.9

Версия расширения для Ключ-АСТРОМ 1.290.0+, с удалённым выполнением на АктивномШлюзе и Python 3.10+ в составе EEC.

  • Добавлен параметр flatten_json для разворачивания вложенных JSON/JSONB-объектов и массивов результата реляционного запроса.
  • Вложенные поля доступны для выбора метрик и измерений по составным именам с разделителем . и индексами массивов от 0.

Версия 0.3.1

  • Добавлена поддержка строки подключения JDBC connection string на уровне расширения и отдельного endpoint. Поддерживаются PostgreSQL, Oracle, MySQL, MariaDB, SQL Server и MongoDB.
  • Поля подключения можно не заполнять, если необходимые параметры указаны в строке подключения.
  • Расписание запуска поддерживает cron из пяти полей, макросы @hourly, @daily, @weekly, @monthly, @yearly и прежний формат HH:MM.
  • Таймаут запроса теперь задаётся в секундах. Его можно переопределить для отдельного endpoint.
  • Добавлены ограничения Max rows per query и Max parallel queries.
  • Добавлено параллельное выполнение endpoint.
  • Добавлены метрики ru.ruscomtech.dbquery.query.duration и ru.ruscomtech.dbquery.query.timeout.

Версия 0.2.30

  • Лимит поля Query увеличен до 10000 символов.
  • Добавлено поле Query timeout (minutes) для ограничения времени выполнения одного запроса. По умолчанию 10 минут; применяется для Postgres, Oracle, MySQL, MariaDB, SQLServer и MongoDB.
  • Добавлено поле Execution times для запуска конкретного endpoint по расписанию. Формат: HH:MM по локальному времени хоста/АктивногоШлюза; несколько значений через запятую, например 09:00,18:30.
  • Запуск по Execution times выполняется в окне от указанного времени до +5 минут. Если поле пустое, endpoint выполняется по старому правилу через Query interval (minutes).
  • fastcheck() проверяет подключение к БД лёгким запросом: MongoDB — ping, Oracle — SELECT 1 FROM dual, MySQL/MariaDB/SQLServer — SELECT 1, Postgres — SELECT 1.
  • Ошибки выполнения query больше не отображаются как OK: последняя ошибка endpoint сохраняется и возвращается в runtime status.
  • Ошибки подключения, авторизации и конфигурации мапятся в соответствующие StatusValue; ошибка Oracle DPY-6005: cannot connect to database классифицируется как DEVICE_CONNECTION_ERROR.
  • Исправлена ошибка UnboundLocalError после неуспешного подключения к MongoDB или другой БД.
  • Русифицированы описания полей.
  • Добавлена служебная метрика ru.ruscomtech.dbquery.host.status для отображения DB Query Host на overview dashboard.
  • Плитка DB Query Host теперь содержит Data Explorer query и показывает хосты по device.address.
  • Метрика ru.ruscomtech.dbquery.host.status отправляется в каждом цикле query() для валидной конфигурации, даже если endpoint пропущен по расписанию или интервалу.

Версия 0.2.11

  • Добавлена поддержка MongoDB.
  • Добавлена зависимость pymongo.
  • Для MongoDB поле query принимает JSON:
    • raw MongoDB command для выполнения через db.command(...);
    • wrapper с collection и operation.
  • Поддержанные операции MongoDB: find, find_one, count_documents, estimated_document_count, aggregate.
  • Поля dimension_columns и metric_columns работают для MongoDB по возвращаемым полям документов, так же как для SQL-колонок.

Версия 0.2.10

  • Добавлены topology entities для DB Query Host и DB Query Endpoint.
  • Добавлен overview dashboard.

Версия 0.2.1

  • Добавлена поддержка Oracle.
  • Добавлена функция ожидания после каждого выполнения.