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

Содержание раздела
  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 | SNAPSHOT] 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

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

Имя Значение
id Идентификатор компонента.
Состоит из имени компонента и его индекса среди других компонентов того же типа. Для коннектора также указывается имя связанного датасорса
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
{“id”:”query-execution-core[1]”,
“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
{“id”:”ADP: adp instance”,
“name”:”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
{“id”:”ADP: kafka-postgres connector reader[0]”,
“name”:”kafka-postgres connector reader”,
“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
{“id”:”ADP: kafka-postgres connector writer[0]”,
“name”:”kafka-postgres connector writer”,
“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_PUBLISH_PERIOD_MS — равным 0. Если ранее была создана таблица <component_info_datamart>.<component_info_table_components>, ее можно удалить.