Работа с Lua-приложениями#

Kintsugi agent (DBDA) поддерживает выполнение следующих Lua-приложений:

  • Стандартные – поставляются с дистрибутивом.

  • Кастомные. Kintsugi agent (DBDA) поддерживает загрузку пользовательских Lua-приложений из отдельной папки.

Виджет

Название Lua-приложения

Название слота

Описание

Данные ОС

host_info

host_info

Информация о хосте, где установлен Kintsugi agent (DBDA)

Информация о репликации

host_pangolin_manager

host_pangolin_manager_list

Информация о кластере БД Pangolin manager/patroni

Настройки репликации

host_pangolin_manager

host_pangolin_manager_config

Значения из конфигурационного файла по репликации

Состояние файловых систем

host_pg_fs_info

host_pg_fs_info_df

Предоставление информации о состоянии файловых систем

Состояние файловой системы

host_pg_fs_info

host_pg_fs_info_du

Предоставление информации о состоянии файловой системы

Проверка защищенного хранилища

host_pg_auth_check

host_pg_auth_check

Предоставление информации о проверке аутентификации СУБД

Данные сертификата

host_sslcert_log

host_sslcert_log

Предоставление информации о сертификатах SSL сервера СУБД

Добавление кастомных Lua-приложений в Kintsugi agent (DBDA)#

Последовательность выполнения#

Рассмотрим сценарий добавления кастомных Lua-приложений в Kintsugi agent (DBDA) на примере Lua-приложения, которое возвращает информацию о дисковом пространстве:

  1. Перейдите в директорию, которая задана в параметре luavm.path в конфигурационном файле Kintsugi agent (DBDA) etc/kgagent/config.yml.

  2. Создайте директорию для нового Lua-приложения, выполнив команду mkdir custom.

  3. Перейдите в созданную директорию.

  4. Создайте основной файл Lua-приложения init.lua:

    local check_disk_space_fn = function(self)
    local output, ec = kg.system.exec("df", "-h")
    self.send_text("Дисковое пространство:\n" .. output)
    end
    
    kg.signals.bind("check_disk_space", check_disk_space_fn, {})
    

    Внимание

    В рамках одного Lua-приложения все слоты должны иметь уникальные имена.

  5. Выполните перезапуск Kintsugi agent (DBDA):

    1. Остановите сервис, выполнив команду:

      systemctl stop kgagent
      
    2. Запустите сервис, выполнив команду:

      systemctl start kgagent
      
    3. Проверьте статус сервиса, выполнив команду:

      systemctl status kgagent
      

Результат#

Kintsugi agent (DBDA) запустился и Lua-приложение доступно.

В результате добавления Lua-приложения становится доступным выполнение вызова custom.check_disk_space на соответствующем хосте при помощи публичного API.