Публикация информации о компонентах

Содержание раздела
  1. Создание таблицы для публикации информации
  2. Просмотр информации
  3. Параметры компонентов
  4. Пример вывода
  5. Отключение публикации информации

Система публикует информацию о компонентах инсталляции в выделенную для этого прокси-таблицу. По умолчанию таблица отсутствует и должна быть создана, иначе информация о компонентах не будет публиковаться. Состав публикуемой информации см. в секции Параметры компонентов.

Публикуется информация о следующих компонентах:

  • нодах Prostore,
  • датасорсах,
  • коннекторах:
    • Kafka-Postgres reader connector,
    • Kafka-Postgres writer connector,
    • Kafka Jet writer connector,
    • Kafka-Clickhouse reader connector,
    • Kafka-Clickhouse writer connector.

Запись с информацией о компоненте публикуется при его запуске и обновляется с интервалом COMPONENT_INFO_PUBLISH_PERIOD_MS (по умолчанию — раз в минуту). Обновление продолжается в течение сессии — до перезапуска компонента. После перезапуска компонента система публикует новую запись для него, не удаляя записи предыдущих сессий.

Публикацию информации о компонентах можно отключить.

Создание таблицы для публикации информации

По умолчанию прокси-таблица для публикации информации о компонентах отсутствует. Чтобы создать такую таблицу, выполните запросы следующего вида:

-- создание служебной логической БД
CREATE DATABASE <component_info_datamart>;

-- создание прокси-таблицы
CREATE PROXY TABLE IF NOT EXISTS <component_info_datamart>.<component_info_table_components> (
  instance_id VARCHAR NOT NULL,
  info VARCHAR NOT NULL,
  hash VARCHAR NULL,
  expires_at BIGINT NOT NULL,
  PRIMARY KEY (instance_id)
)
DATASOURCE_TYPE ('<datasource_name>');

Где:

  • component_info_datamart — значение параметра конфигурации COMPONENT_INFO_DATAMART (по умолчанию — component_info);
  • component_info_table_components — значение параметра COMPONENT_INFO_TABLE_COMPONENTS (по умолчанию — component_info);
  • datasource_name — имя датасорса, где будет размещена таблица; указывается в соответствии с конфигурацией.

Например:

CREATE DATABASE component_info;

CREATE PROXY TABLE IF NOT EXISTS component_info.component_info (
  instance_id VARCHAR NOT NULL,
  info VARCHAR NOT NULL,
  hash VARCHAR NULL,
  expires_at BIGINT NOT NULL,
  PRIMARY KEY (instance_id)
)
DATASOURCE_TYPE ('adp');

Просмотр информации

Чтобы получить информацию о компонентах, выполните SELECT-запрос к созданной прокси-таблице:

SELECT * FROM <component_info_datamart>.<component_info_table_components>

По умолчанию информация доступна с помощью запроса:

SELECT * FROM component_info.component_info

Параметры компонентов

instance_id

UUID-идентификатор сессии, присваиваемый при запуске или перезапуске компонента.

info

Информация о компоненте в виде массива элементов, описанных в таблице ниже.

Имя Значение
name Имя компонента
group Группа компонента.
Для датасорсов указывается значение unknown
version Версия компонента
gitCommit SHA-хеш git-коммита, на основе которого собрана версия компонента.
Для датасорсов указывается значение unknown
configuration Фактическая конфигурация компонента с учетом всех файлов конфигурации и переменных окружения. Указывается как строка в YAML-формате, где логины и пароли по умолчанию замаскированы, а кавычки и другие служебные символы экранированы.
Для датасорсов типа ADG указывается значение unknown
createdAt Время запуска компонента, равное целому количеству миллисекунд с 00:00:00 UTC 1 января 1970 года.
Для датасорсов типа ADG указывается значение 0
hash

SHA256-хеш значения поля info.

expires_at

Время (в миллисекундах с 00:00:00 UTC 1 января 1970 года), до которого информация считается актуальной. Рассчитывается как интервал COMPONENT_INFO_TIMEOUT_ACTIVE_MS с момента обновления информации.

Пример вывода

Ниже показан пример вывода SELECT-запроса к прокси-таблице с информацией по одной ноде Prostore, датасорсу типа ADP и его коннекторам. В реальном выводе информация о каждом компоненте представлена одной строкой, но здесь для наглядности она разделена на несколько строк.

instance_id info hash expires_at
7e626170-f713-
4835-9394-
0ffcb4495f94
{“name”:”query-execution-core”,
“group”:”ru.datamart.prostore”,
“version”:”7.3.0-SNAPSHOT”,
“gitCommit”:”9cca7b68c123784d
15fa11e0b9ad2afc72dcdb35”,
“configuration”:”logging:\n level:\n
ru:\n datamart:\n prostore: DEBUG\n
<…> servicedb:\n
db: dtm\n schema: sys_single\n
user: ‘***‘\n password: ‘***‘\n
<…>”
“createdAt”:1746524937085}
4c6a65bda2b4c86f
eeab1dcc3701a8b6
71182e079953e048
02ec7365247f9f5a
1746536861564
dd9e006a-7a5f-
3b24-851a-
6651e129f144
{“name”:”ADP: adp instance”,
“group”:”unknown”,”version”:
“PostgreSQL 16.8 <…>
(ALT Sisyphus 10.3.1-alt2), 64-bit”,
“gitCommit”:”unknown”,”configuration”:
”- name: allow_in_place_tablespaces\n
setting: "off"\n unit: null\n
<…>
pending_restart: false\n”,
“createdAt”:1745567502519}
f33d79ea6bd7729d
86f090e3d1e1e0ac
37c84bbe8b2d74a3
4e67f549510bd146
1746536865105
4c960780-92ca-
440c-9fed-
1dffd7df2068
{“name”:”ADP: kafka-postgres
connector reader[0]”,”group”:
“ru.datamart.connector”,”version”:
”<connector_version>”,”gitCommit”:
“bd66d6ce8bd2d9a2e60b0745
776336e9c9028463”,”configuration”:
“logging:\n level:\n ru:\n datamart:\n
kafka: DEBUG\n org:\n apache:\n kafka: INFO\nhttp:\n <…> database: dtm\n
user: ‘***‘\n password: ‘***‘\n
<…>”,”createdAt”:1746009585108}
42bf3f4edc4ef607
72a1f8583ed8e68f
fc46c86f6e126414
08faaf18d371e08c
1746536865117
71d015d3-361f-
433b-a04f-
5971a62a36e6
{“name”:”ADP: kafka-postgres
connector writer[0]”,”group”:
“ru.datamart.connector”,”version”:
”<connector_version>”,”gitCommit”:
“bd66d6ce8bd2d9a2e60b0745
776336e9c9028463”,”configuration”:
“logging:\n level:\n ru:\n datamart:\n
kafka: DEBUG\n org:\n apache:\n kafka: INFO\nhttp:\n <…> database: dtm\n
user: ‘***‘\n password: ‘***‘\n
<…>”,”createdAt”:1746009610338}
029066ae45f30b8e
1e0d172f96f32873
08e317039db9369a
713cb00e7f748749
1746536865131

Отключение публикации информации

Чтобы отключить публикацию информации о компонентах, установите для всех нод кластера значение параметра COMPONENT_INFO_ENABLED равным false. Если ранее была создана прокси-таблица <component_info_datamart>.<component_info_table_components>, ее можно удалить.