Настройка политик запуска задач

Страница Configuration → Job policy в web-интерфейсе ADB Control предназначена для настройки расписаний запуска различных системных задач (jobs). Страница включает две вкладки, каждая из которых детально описана ниже.

Data cleanup

На вкладке Configuration → Job policy → Data cleanup можно настроить параметры для автоматического удаления из ADB Control метрик, хранимых длительное время.

adbc config jobs dark
Вкладка Configuration → Job policy → Data cleanup
adbc config jobs light
Вкладка Configuration → Job policy → Data cleanup

Для настройки расписания очистки данных выполните следующие шаги:

  1. Переведите переключатель Enable в активное состояние, если он был отключен ранее.

  2. Заполните следующие параметры в секции Main parameters.

    Поле Описание Значение по умолчанию

    Batch size

    Максимальное количество строк в батче данных при обработке метрик

    500

    Expire duration

    Максимальный срок хранения метрик в ADB Control, по истечении которого метрики должны будут удалены. Используйте формат <value><unit> (без пробела), где value — количество; <unit> — единица измерения, принимающая следующие возможные значения:

    • ms — миллисекунды;

    • sec — секунды;

    • min — минуты;

    • hr — часы;

    • d — дни;

    • w — недели.

    Примеры: 5min, 1hr, 1d. Минимальное значение — 100ms; максимальное — 1w

    5d

    Data cleanup schedule

    Расписание для автоматического удаления метрик (cron-выражение). Иконка cron dark cron light позволяет перейти к редактированию расписания в отдельной форме Cron expression generator

    0 0 23 * * ? *

  3. Нажмите Apply. Кнопка Revert предназначена для отмены внесенных в форме изменений (еще не сохраненных путем нажатия Apply).

Если все шаги выполнены успешно, время следующего запуска для задачи с именем Data cleanup job обновится на странице Jobs → ADB Control → Schedule.

ВНИМАНИЕ
  • Задача очистки метрик по умолчанию включена в ADB Control. Отключение задачи не рекомендуется, так как это может привести к быстрому исчерпанию дискового пространства.

  • Для долговременного хранения исторических данных можно настроить выгрузку метрик во внешнюю базу данных.

Metrics offload

Настройка

ВНИМАНИЕ

В качестве аналитической БД (для выгрузки собранных метрик) не следует выбирать БД того же кластера ADB, по которому собираются метрики со стороны ADB Control — чтобы избежать ненужной нагрузки и мониторинга запросов выгрузки метрик.

На вкладке Configuration → Job policy → Metrics offload можно настроить параметры для выгрузки собранных метрик из ADB Control во внешнюю базу данных (PostgreSQL/TimescaleDB/ADB). Для настройки выгрузки метрик выполните следующие шаги:

  1. На целевом хосте, куда планируется выгрузка, убедитесь в наличии нужной базы данных для хранения метрик. Ее имя будет использоваться при настройке JDBC-подключения далее.

  2. Обеспечьте возможность доступа ADB Control к выбранной базе данных. Например, в PostgreSQL требуется добавить запись следующего вида в файл pg_hba.conf:

    host    <database_name>  <user_name>       <adbc_address>      trust

    где:

    • <database_name> — имя базы данных PostgreSQL. Например, adbc_metrics.

    • <user_name> — имя пользователя PostgreSQL. Например, postgres.

    • <adbc_address> — IP-адрес ADB Control с подсетью. Например, 10.92.40.57/32.

  3. Перейдите на страницу Configuration → Job policy → Metrics offload в web-интерфейсе ADB Control.

    adbc config jobs2 dark
    Вкладка Configuration → Job policy → Metrics offload
    adbc config jobs2 light
    Вкладка Configuration → Job policy → Metrics offload
  4. Переведите переключатель Service enabled в активное состояние.

  5. В поле JDBC URL укажите строку JDBC-подключения к хосту с внешней БД. Строка для подключения к PostgreSQL имеет следующий формат:

    jdbc:postgresql://<external_ip>:5432/<db_name>

    где:

    • <external_ip> — IP-адрес хоста c внешней БД. В приведенном примере 10.92.6.225.

    • <db_name> — название внешней БД. В приведенном примере adbc_metrics.

    adbc config jobs3 dark
    Ввод строки JDBC-подключения
    adbc config jobs3 light
    Ввод строки JDBC-подключения
  6. Нажмите Connect и в открывшемся окне заполните следующие параметры:

    • User — пользователь для подключения. В примере используется пользователь по умолчанию postgres.

    • Password — пароль для подключения. В примере используется пользователь без пароля.

      adbc config jobs6 dark
      Параметры JDBC-подключения
      adbc config jobs6 light
      Параметры JDBC-подключения
  7. Нажмите кнопку Connect.

  8. Заполните параметры в секции Main parameters.

    Поле Описание Значение по умолчанию

    Export resource groups

    Флаг, указывающий на необходимость выгрузки метрик, связанных с ресурсными группами (см. resgroup_config_audit, resgroup_status, resgroup_status_per_segment)

    False

    Export sessions

    Флаг, указывающий на необходимость выгрузки данных о сессиях (см. session)

    False

    Batch size

    Максимальное количество строк в батче данных, отправляемых во внешнюю БД

    1000

    Interval

    Максимальная глубина поиска выгружаемых метрик (в днях)

    5d

    Delay

    Тайм-аут, используемый для поиска новых метрик для выгрузки (в минутах)

    10min

    Offload metrics job schedule

    Расписание для автоматической выгрузки метрик (cron-выражение). Иконка cron dark cron light позволяет перейти к редактированию расписания в отдельной форме Cron expression generator

    0 0 * * * ? *

  9. Нажмите Apply. Кнопка Revert предназначена для отмены внесенных в форме изменений (еще не сохраненных путем нажатия Apply).

    adbc config jobs4 dark
    Данные заполнены
    adbc config jobs4 light
    Данные заполнены
  10. Дождитесь сообщения следующего вида.

    adbc config jobs5 dark
    Сообщение об успешном выполнении операции
    adbc config jobs5 light
    Сообщение об успешном выполнении операции
  11. В выбранной внешней БД будет создана схема с именем adcc, в таблицах которой будут сохраняться выгружаемые из ADB Control метрики. В PostgreSQL проверить наличие схемы и таблиц можно с помощью следующего запроса:

    SELECT table_name
    FROM information_schema.tables
    WHERE table_schema = 'adcc' ORDER BY  table_name;

    Результат:

             table_name
    -----------------------------
     audit_auth
     audit_auth_adb
     audit_operation
     cluster
     cluster_query_metric
     query
     query_error
     resgroup_config_audit
     resgroup_status
     resgroup_status_per_segment
     session
     transaction
    (12 rows)

Если все шаги выполнены успешно, на странице Jobs → ADB Control → Schedule появится новая запланированная задача с именем Export job.

ВАЖНО

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

Структура выгружаемых данных

Ниже описаны таблицы, используемые во внешней БД для хранения выгружаемых из ADB Control метрик и событий. Обратите внимание, что условия выгрузки данных в перечисленные таблицы отличаются:

audit_auth

 

Таблица содержит список авторизаций пользователей в ADB Control, а также неудачных попыток входа в ADB. Дополнительную информацию по приведенным ниже параметрам можно найти в разделе Authorizations статьи Аудит.

Столбец Описание

id

Уникальный идентификатор записи о событии авторизации

time

Дата и время события авторизации

username

Имя пользователя, выполнившего авторизацию

session_time

Дата и время начала сессии, в рамках которой зафиксировано событие авторизации

session

Идентификатор сессии, в рамках которой зафиксировано событие авторизации

host

IP-адрес хоста, с которого было инициировано событие авторизации

auth_type

Тип авторизации. Возможные значения:

  • ADCC — попытка входа в ADB Control с использованием базовой аутентификации;

  • ADCC LDAP — попытка входа в ADB Control с использованием LDAP-аутентификации;

  • ADB — неудачная попытка входа в ADB;

  • ADB LDAP — неудачная попытка входа в ADB с использованием LDAP-аутентификации.

type

Тип события. Возможные значения:

  • Auth — вход в систему;

  • Logout — выход из системы;

  • Session expired — истечение срока действия сессии.

result

Результат события. Возможные значения:

  • Success — успешно;

  • Failed — с ошибкой.

message

Сообщение в случае ошибки

audit_auth_adb

 

Таблица содержит дополнительную информацию о неудачных попытках авторизации в ADB.

Столбец Описание

auth_id

Идентификатор записи о событии авторизации. Ссылается на audit_auth.id (см. таблицу audit_auth)

pid

Идентификатор процесса, в рамках которого зафиксировано событие

database

Название базы данных, к которой выполнялось подключение

port

Номер порта, использованный для подключения

segment

Идентификатор сегмента. Ссылается на gp_segment_configuration.content. Дополнительную информацию можно получить в разделе Таблицы системного каталога → gp_segment_configuration статьи Таблицы

transaction

Идентификатор транзакции

cmd_count

Идентификатор команды

cluster

Название кластера ADB, к которому выполнялось подключение

audit_operation

 

Таблица содержит данные об операциях пользователей в ADB Control. Дополнительную информацию по приведенным ниже параметрам можно найти в разделе Operations статьи Аудит.

Столбец Описание

id

Уникальный идентификатор записи об операции

object_name

Название объекта, над которым осуществлена операция

object_type

Тип объекта, над которым осуществлена операция. Возможные значения:

operation_type

Тип операции, которая была применена к объекту object_name. Возможные значения:

  • Cancel — отмена;

  • Create — создание;

  • Delete — удаление;

  • Resource group change — изменение ресурсной группы;

  • Terminate — прерывание;

  • Update — обновление;

  • Archive — архивация;

  • Activate — активация.

operation_result

Результат операции. Возможные значения:

  • Success — операция успешно завершена;

  • Failed — операция завершена с ошибкой;

  • Denied — операция отклонена.

operation_time

Дата и время выполнения операции

username

Имя пользователя, выполнившего операцию

session

Идентификатор сессии ADB Control

hostname

IP-адрес хоста, с которого была инициирована операция

diffs

Информация об изменении атрибутов объекта object_name в JSON-формате. По каждому измененному атрибуту содержатся:

  • name — название атрибута;

  • oldValue — предыдущее значение;

  • newValue — новое значение.

Пример:

[
    {
        "name":"CLUSTER_ARCHIVED",
        "oldValue":true,
        "newValue":false
    }
]
cluster

 

Таблица содержит информацию о кластерах ADB, выбранных в ADB Control для выгрузки метрик и событий во внешнюю БД.

Столбец Описание

id

Уникальный идентификатор кластера

name

Название кластера

cluster_query_metric

 

Таблица хранит статистику потребления системных ресурсов командами на уровне кластера. Дополнительную информацию можно получить в разделе Метрики, собираемые для команд статьи Мониторинг команд.

Столбец Описание

query_id

Идентификатор команды. Ссылается на query.id (см. таблицу query)

cpu_usage_total

Общее время потребления CPU за время выполнения команды (в секундах)

cpu_usage_percent_sum

Объем использованного CPU на конец выполнения команды (в процентах)

cpu_usage_percent_avg

Средний объем использованного CPU на конец выполнения команды (в процентах)

cpu_usage_percent_skew

Показатель, отражающий "перекос" (skew) в потреблении CPU по сегментам кластера на конец выполнения команды (в процентах)

mem_sum

Объем использованной памяти RAM на конец выполнения команды (в байтах)

mem_max

Максимальная величина использованного объема памяти RAM на конец выполнения команды (в байтах)

mem_avg

Средний объем использованной памяти RAM на конец выполнения команды (в байтах)

mem_skew

Показатель, отражающий "перекос" (skew) в потреблении RAM по сегментам кластера на конец выполнения команды (в процентах)

vmem_sum

Объем использованной виртуальной памяти на конец выполнения команды (в байтах)

vmem_max

Максимальная величина использованного объема виртуальной памяти на конец выполнения команды (в байтах)

vmem_avg

Средний объем использованной виртуальной памяти на конец выполнения команды (в байтах)

vmem_skew

Показатель, отражающий "перекос" (skew) в потреблении виртуальной памяти по сегментам кластера на конец выполнения команды (в процентах)

spill

Объем spill-файлов, присутствовавших на сегмент-хостах (исключая мастер) на конец выполнения команды (в байтах)

spill_hosts

Объем spill-файлов, присутствовавших на всех хостах (включая мастер) на конец выполнения команды (в байтах)

spill_max

Максимальный объем созданных spill-файлов на конец выполнения команды (в байтах)

spill_skew

Показатель, отражающий "перекос" (skew) в объеме созданных на хостах кластера spill-файлов (в процентах) на конец выполнения команды

read_bytes_total

Общий объем прочитанных данных за время выполнения команды (в байтах)

read_bytes_sum

Объем прочитанных данных на конец выполнения команды (в байтах)

read_bytes_max

Максимальный объем прочитанных данных на конец выполнения команды (в байтах)

read_bytes_avg

Усредненный показатель скорости чтения данных в секунду на конец выполнения команды (в байтах)

read_bytes_skew

Показатель, отражающий "перекос" в чтении данных по сегментам кластера на конец выполнения команды (в процентах)

write_bytes_total

Общий объем записанных данных за время выполнения команды (в байтах)

write_bytes_sum

Объем записанных данных на конец выполнения команды (в байтах)

write_bytes_max

Максимальный объем записанных данных на конец выполнения команды (в байтах)

write_bytes_avg

Усредненный показатель скорости записи данных в секунду на конец выполнения команды (в байтах)

write_bytes_skew

Показатель, отражающий "перекос" (skew) в записи данных на конец выполнения команды (в процентах)

query

 

Таблица содержит информацию о завершенных SQL-командах, зафиксированных в ADB Control.

Столбец Описание

query_id

Уникальный идентификатор команды

status

Статус команды. Возможные значения:

  • Done — успешно завершенные команды.

  • Cancelled — отмененные команды (в рамках отмены либо прерывания соответствующей транзакции).

  • Error — команды, во время выполнения которых произошла ошибка.

  • Unknown — команды, итоговый статус которых не был получен. Устанавливается по тайм-ауту для запросов в статусах Queued, Running, Cancelling, по которым не оказалось соответствующих записей в системном представлении pg_stat_activity.

pid

Идентификатор процесса, в рамках которого запущена команда

submitted

Дата и время отправки команды пользователем

run_at

Дата и время начала выполнения команды

finish_at

Дата и время завершения выполнения команды

username

Имя пользователя, запустившего команду

database

Название базы данных, в которой запущена команда

resource_group

Название ресурсной группы, назначенной команде

planner

Название оптимизатора запросов, используемого для построения плана выполнения команды. Возможные значения:

  • GPORCA — план запроса построен с использованием оптимизатора GPORCA (optimizer = on).

  • Fallbacked — после неудачной попытки построения плана с помощью GPORCA (optimizer = on) использован оптимизатор Postgres.

  • Legacy — план запроса построен с помощью Postgres query optimizer (optimizer = off).

querytext

Текст SQL-запроса

plantext

Текст плана выполнения запроса

session_id

Идентификатор сессии, в рамках которой запущена команда

cluster_id

Идентификатор кластера ADB. Ссылается на cluster.id (см. таблицу cluster)

queued_time

Время, проведенное командой в очереди на выполнение (в часах, минутах, секундах)

run_time

Время выполнения команды (в часах, минутах, секундах)

sql_id

Идентификатор, являющийся общим для SQL-команд с одинаковой структурой

tags

Теги запроса

query_error

 

Таблица содержит информацию об ошибках, возникших в ходе выполнения SQL-команд.

Столбец Описание

id

Уникальный идентификатор записи об ошибке в выполнении команды

query_id

Идентификатор команды. Ссылается на query.id (см. таблицу query)

seg_id

Идентификатор сегмента. Ссылается на gp_segment_configuration.content. Дополнительную информацию можно получить в разделе Таблицы системного каталога → gp_segment_configuration статьи Таблицы

slice_id

Идентификатор слайса плана, при выполнении которого возникла ошибка

message

Текст сообщения об ошибке

resgroup_config_audit

 

Столбец Описание

cluster_id

Идентификатор кластера ADB. Ссылается на cluster.id (см. таблицу cluster)

group_id

Идентификатор ресурсной группы

datetime

Дата и время внесения изменения в конфигурацию ресурсной группы

group_name

Название ресурсной группы

limit_type

Тип измененного параметра ресурсной группы. Возможные значения:

  • CONCURRENCY

  • CPU_RATE_LIMIT

  • MEMORY_LIMIT

  • MEMORY_SHARED_QUOTA

  • MEMORY_SPILL_RATIO

  • CPUSET

Для получения информации о параметрах обратитесь к разделу Вкладка Configuration статьи Работа с ресурсными группами

value_from

Исходное значение измененного параметра ресурсной группы

value_to

Новое значение измененного параметра ресурсной группы

username

Имя пользователя, выполнившего изменение

resgroup_status

 

Таблица хранит статистику использования ресурсных групп. Дополнительную информацию можно получить в разделе Вкладка Statistic статьи Работа с ресурсными группами.

Столбец Описание

cluster_id

Идентификатор кластера ADB. Ссылается на cluster.id (см. таблицу cluster)

group_id

Идентификатор ресурсной группы

datetime

Дата и время сбора статистики

group_name

Название ресурсной группы

num_running

Количество транзакций, которые на момент datetime выполнялись в рамках ресурсной группы

num_queueing

Количество транзакций, которые на момент datetime находились в очереди на выполнение в рамках ресурсной группы

num_queued

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

num_executed

Общее количество транзакций, выполненных в рамках ресурсной группы за все время наблюдений

total_queue_duration

Общее время пребывания транзакций в очереди в рамках ресурсной группы за все время наблюдений (в часах, минутах, секундах)

resgroup_status_per_segment

 

В таблице хранится статистика потребления системных ресурсов ресурсными группами в разрезе кластерных сегментов. Дополнительную информацию можно получить в разделе Детали ресурсной группы → Usage статьи Работа с ресурсными группами.

Столбец Описание

cluster_id

Идентификатор кластера ADB. Ссылается на cluster.id (см. таблицу cluster)

group_id

Идентификатор ресурсной группы

hostname

Название хоста, для которого показана статистика

segment_id

Идентификатор сегмента. Ссылается на gp_segment_configuration.content. Дополнительную информацию можно получить в разделе Таблицы системного каталога → gp_segment_configuration статьи Таблицы

datetime

Дата и время сбора статистики

cpu

Процентная доля использования CPU ресурсной группой на текущем сегменте

memory_used

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

memory_available

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

memory_quota_used

Использованный на текущем сегменте объем RAM, гарантированно зафиксированной для транзакций ресурсной группы (в байтах)

memory_quota_available

Доступный на текущем сегменте объем RAM, гарантированно зафиксированной для транзакций ресурсной группы (в байтах)

memory_shared_used

Использованный на текущем сегменте объем RAM, выделенной транзакциям ресурсной группы для совместного потребления (в байтах)

memory_shared_available

Доступный на текущем сегменте объем RAM, выделенной транзакциям ресурсной группы для совместного потребления (в байтах)

session

 

Таблица содержит информацию о сессиях, зафиксированных в ADB Control.

Столбец Описание

cluster_id

Идентификатор кластера ADB. Ссылается на cluster.id (см. таблицу cluster)

datetime

Дата и время получения информации о сессии

datid

OID базы данных

datname

Имя базы данных

pid

Идентификатор процесса

sess_id

Идентификатор сессии

usesysid

OID пользователя, выполнившего подключение

usename

Имя пользователя, выполнившего подключение

application_name

Имя приложения, с помощью которого выполнено подключение

client_addr

IP-адрес клиента. Значение поля null указывает на использование Unix-сокета на сервере либо выполнение внутреннего процесса (например, autovacuum)

client_hostname

Имя хоста, с которого подключен клиент. Значение client_hostname формируется в результате обратного DNS-поиска по значению поля client_addr. Поле заполняется только для IP-соединений, если серверный конфигурационный параметр (GUC) log_hostname установлен в on

client_port

Номер TCP-порта, используемого клиентом для взаимодействия с бэкендом, либо -1 в случае использования Unix-сокета

backend_start

Время начала процесса на стороне бэкенда

xact_start

Время начала транзакции

query_start

Время начала выполнения команды

state_change

Время последнего изменения значения поля state

waiting

Логический признак ожидания снятия блокировки. Принимает значение true в случае ожидания, иначе false

state

Текущий статус сессии. Возможные значения:

  • active — запрос выполняется на стороне бэкенда.

  • idle — бэкенд ожидает новой команды со стороны клиента.

  • idle in transaction — на стороне бэкенда запущена транзакция, однако в текущий момент в ней нет активных команд.

query

Текст последней запущенной в рамках сессии команды. Если state = Active, в поле показывается текст текущей команды

waiting_reason

Причина, по которой серверный процесс находится в режиме ожидания. Возможные значения:

  • lock — блокировка;

  • replication — репликация;

  • resgroup — очередь в ресурсной группе.

rsgid

OID ресурсной группы либо 0, если определение невозможно (дополнительную информацию можно получить в статье pg_stat_activity документации Greenplum)

rsgname

Наименование ресурсной группы либо unknown, если определение невозможно (дополнительную информацию можно получить в статье pg_stat_activity документации Greenplum)

rsgqueueduration

Время пребывания команды в очереди (если применимо)

transaction

 

Таблица содержит информацию о завершенных транзакциях, зафиксированных в ADB Control.

Столбец Описание

txn_id

Уникальный идентификатор транзакции в ADB Control

status

Статус транзакции. Возможные значения:

  • Committed — успешно завершенные транзакции.

  • Aborted — прерванные транзакции.

  • Unknown — транзакции, итоговый статус которых не был получен. Устанавливается по тайм-ауту для транзакций в статусе Active, по которым не оказалось соответствующих записей в системном представлении pg_stat_activity.

pid

Идентификатор процесса, в рамках которого запущена транзакция

start_time

Дата и время запуска транзакции

end_time

Дата и время завершения транзакции

username

Имя пользователя, запустившего транзакцию

database

Название базы данных, в которой запущена транзакция

resource_group

Название ресурсной группы, назначенной транзакции

session_id

Идентификатор сессии, в рамках которой запущена транзакция

cluster_id

Идентификатор кластера ADB, в котором запущена транзакция. Ссылается на cluster.id (см. таблицу cluster)

tags

Теги транзакции

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней