Skip to content

holistic-dev/faas-selectel-pg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Holistic.dev cloud function for Selectel integration

Функция предназначена для регулярной автоматической отправки актуального состояния представления pg_stat_statements указанной базы PostgreSQL в сервис holistic.dev для дальнейшего анализа.

Функция может быть использована для интеграции как managed PostgreSQL, так и для on-premise экземпляров PostgreSQL.

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

Общая информация о функции

Функция разработана для использования в окружении Selectel в среде выполнения nodejs12. Функция выполняет запрос в базу данных, параметры подключения к которой будут переданы в переменной окружения. Для подключения требуется сертификат, предоставляемый Selectel, который поставляется вместе с функцией. Функция выбирает исходный код и метрики всех записей из pg_stat_statements и отправляет на API holistic.dev

Начало работы

Network availability

Экземпляр базы данных должен быть доступен для подключения из функции. Для managed PostgreSQL при создании кластера необходимо создать публичную подсеть для хоста, который будет источником данных для анализа.

Pg_stat_statements extension

Managed PostgreSQL

В кластере PostgreSQL для выбранной базы данных в пункте Базы данны -> Расширения выбрать "pg_stat_statements".

On-premise PostgreSQL

Для активации расширения выполните команду в базе, для которой производится интеграция

CREATE EXTENSION IF NOT EXISTS pg_stat_statements;

Настройка расширения

pg_stat_statements имеет несколько настроек, с которыми можно ознакомиться в документации к расширению

Установка

Создание функции

  • скачайте архив из данного репозитория с исходным кодом функции
  • в разделе Функции создайте новую функцию и укажите среду выполнения NodeJS 12
  • В закладке Код функции -> Загрузить -> Архив, выберете скаченный архив с исходным кодом функции
  • Пусть к файлу /faas_selectel_pg/index.js. Обратите внимание, что сначала следует имя архива!
  • Вызываемая функция - main
  • Укажите переменные окружения:
    • HOLISTICDEV_API_KEY - API-key из настроек в личном кабинете
    • HOLISTICDEV_PROJECT_NAME - имя вашего проекта
    • PG_CONNECTION_STRING - строка подключения из настроек кластера managed PostgreSQL или on-premise экземпляра в формате postgres://<user>:<password>@<host>:<port>/<dbname>.
  • Нажмите "Сохранить и развернуть"

Тестирование функции

  • в разделе "Тестирование" нажмите "Вызвать". После запуска должен получится Результат: SUCCESS, в поле под результатом { "body": null }, Логи: сообщение в формате stdout: { status: 'OK', data: { pgss: { income: 64, new: 19 } } }
  • в закладке "Логи" через несколько секунд появятся те же данные.

Настройка триггера

  • в закладке функции Триггеры создайте новый триггер с типом "Cron-таймер"
  • в параметре Cron-выражение укажите */15 * * * *. Это значение позволит запускать отправку каждые 15 минут. Не рекомендуется устанавливать данное значение для излишне частого срабатывания, т.к. история хранения метрик pg_stat_statements в сервисе holistic.dev имеет конечную глубину.
  • Нажмите "Сохранить"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published