Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Managed Service for PostgreSQL
  • Начало работы
    • Все инструкции
      • Просмотр логов кластера
      • Диагностика производительности
      • Мониторинг состояния кластера и хостов
      • Подключение к DataLens
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Активировать сбор статистики
  • Получить статистику по сессиям
  • Получить статистику по запросам
  • Получить информацию о плане выполнения запроса
  1. Пошаговые инструкции
  2. Логи и мониторинг
  3. Диагностика производительности

Диагностика производительности в Managed Service for PostgreSQL

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 14 апреля 2026 г.
  • Активировать сбор статистики
  • Получить статистику по сессиям
  • Получить статистику по запросам
  • Получить информацию о плане выполнения запроса

Managed Service for PostgreSQL предоставляет встроенный инструмент для диагностики производительности кластера СУБД. Этот инструмент помогает анализировать метрики производительности PostgreSQL для сессий и запросов.

О том, как выявить и устранить проблемы с производительностью кластера, см. в разделах Анализ производительности и оптимизация и Поиск проблем с производительностью кластера.

Активировать сбор статистикиАктивировать сбор статистики

Консоль управления
CLI
Terraform
REST API
gRPC API

При создании кластера или изменении его настроек:

  1. Включите опцию Сбор статистики (по умолчанию отключена).

  2. Настройте Интервал сбора сессий и Интервал сбора запросов. Допустимые значения:

    • для сессий — от 5 до 86400 секунд;
    • для запросов — от 60 до 86400 секунд.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

Чтобы включить сбор статистики, передайте параметр --performance-diagnostics в команде изменения кластера:

yc managed-postgresql cluster update <имя_или_идентификатор_кластера> \
    ...
    --performance-diagnostics enabled=true,`
                             `sessions-sampling-interval=<интервал_сбора_сессий>,`
                             `statements-sampling-interval=<интервал_сбора_запросов> \
    ...

Допустимые значения параметров:

  • sessions-sampling-interval — от 5 до 86400 секунд.
  • statements-sampling-interval — от 60 до 86400 секунд.
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

    Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.

  2. Чтобы настроить сбор статистики, добавьте в блок config блок performance_diagnostics:

    resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
      ...
      config {
        ...
        performance_diagnostics {
          enabled                      = <активация_сбора_статистики>
          sessions_sampling_interval   = <интервал_сбора_сессий>
          statements_sampling_interval = <интервал_сбора_запросов>
        }
        ...
      }
      ...
    }
    

    Где:

    • enabled — активация сбора статистики: true или false.
    • sessions_sampling_interval — интервал сбора сессий от 5 до 86400 секунд.
    • statements_sampling_interval — интервал сбора запросов от 60 до 86400 секунд.
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Ограничения по времени

    Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:

    • создание, в том числе путем восстановления из резервной копии, — 30 минут;
    • изменение — 60 минут;
    • удаление — 15 минут.

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

    Как изменить эти ограничения?

    Добавьте к описанию кластера блок timeouts, например:

    resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" {
      ...
      timeouts {
        create = "1h30m" # Полтора часа
        update = "2h"    # 2 часа
        delete = "30m"   # 30 минут
      }
    }
    
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Чтобы включить сбор статистики при создании кластера:

    1. Воспользуйтесь методом Cluster.Create и добавьте параметр configSpec.performanceDiagnostics в команду cURL по созданию кластера:

      curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters' \
        --data '{
                  "configSpec": {
                    "performanceDiagnostics": {
                      "enabled": <активировать_сбор_статистики>,
                      "sessionsSamplingInterval": "<интервал_сбора_сессий>",
                      "statementsSamplingInterval": "<интервал_сбора_запросов>"
                    },
                    ...
                  },
                  ...
                }'
      

      Где configSpec.performanceDiagnostics — настройки сбора статистики:

      • enabled — активация сбора статистики: true или false.
      • sessionsSamplingInterval — интервал сбора сессий. Допустимые значения — от 5 до 86400 секунд.
      • statementsSamplingInterval — интервал сбора запросов. Допустимые значения — от 60 до 86400 секунд.
    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  3. Чтобы включить сбор статистики при изменении существующего кластера:

    1. Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL:

      Важно

      Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

      curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>' \
        --data '{
                  "updateMask": "configSpec.performanceDiagnostics",
                  "configSpec": {
                    "performanceDiagnostics": {
                      "enabled": <активировать_сбор_статистики>,
                      "sessionsSamplingInterval": "<интервал_сбора_сессий>",
                      "statementsSamplingInterval": "<интервал_сбора_запросов>"
                    }
                  }
                }'
      

      Где configSpec.performanceDiagnostics — настройки сбора статистики:

      • enabled — активация сбора статистики: true или false.
      • sessionsSamplingInterval — интервал сбора сессий. Допустимые значения — от 5 до 86400 секунд.
      • statementsSamplingInterval — интервал сбора запросов. Допустимые значения — от 60 до 86400 секунд.
    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Чтобы включить сбор статистики при создании кластера:

    1. Воспользуйтесь методом ClusterService.Create и добавьте параметр config_spec.performance_diagnostics в команду grpcurl по созданию кластера:

      grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "config_spec": {
                "performance_diagnostics": {
                  "enabled": <активировать_сбор_статистики>,
                  "sessions_sampling_interval": "<интервал_сбора_сессий>",
                  "statements_sampling_interval": "<интервал_сбора_запросов>"
                },
                ...
              },
              ...
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.postgresql.v1.ClusterService.Create
      

      Где config_spec.performance_diagnostics — настройки сбора статистики:

      • enabled — активация сбора статистики: true или false.
      • sessions_sampling_interval — интервал сбора сессий. Допустимые значения — от 5 до 86400 секунд.
      • statements_sampling_interval — интервал сбора запросов. Допустимые значения — от 60 до 86400 секунд.
    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  4. Чтобы включить сбор статистики при изменении существующего кластера:

    1. Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl:

      Важно

      Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

      Формат перечисления настроек
      "update_mask": {
          "paths": [
              "<настройка_1>",
              "<настройка_2>",
              ...
              "<настройка_N>"
          ]
      }
      
      grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "update_mask": {
                "paths": [
                  "config_spec.performance_diagnostics"
                ]
              },
              "config_spec": {
                "performance_diagnostics": {
                  "enabled": <активировать_сбор_статистики>,
                  "sessions_sampling_interval": "<интервал_сбора_сессий>",
                  "statements_sampling_interval": "<интервал_сбора_запросов>"
                }
              }
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.postgresql.v1.ClusterService.Update
      

      Где config_spec.performance_diagnostics — настройки сбора статистики:

      • enabled — активация сбора статистики: true или false.
      • sessions_sampling_interval — интервал сбора сессий. Допустимые значения — от 5 до 86400 секунд.
      • statements_sampling_interval — интервал сбора запросов. Допустимые значения — от 60 до 86400 секунд.
    2. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Получить статистику по сессиямПолучить статистику по сессиям

Консоль управления
gRPC API
  1. Перейдите в сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Диагностика производительности → Сессии.

Для просмотра статистики по сессиям:

  1. Задайте интересующий временной интервал.
  2. (Опционально) Настройте фильтры.
  3. Выберите нужный срез данных.

Чтобы показать или скрыть отдельные категории, нажмите на имя категории в легенде графика.

Для просмотра истории запросов в рамках сессии:

  1. Задайте интересующий временной интервал.
  2. (Опционально) Настройте фильтры.
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом PerformanceDiagnosticsService.ListRawSessionStates и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/perf_diag_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "from_time": "<левая_граница_временного_диапазона>",
            "to_time": "<правая_граница_временного_диапазона>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.PerformanceDiagnosticsService.ListRawSessionStates
    

    Где:

    • from_time — левая граница временного диапазона в формате RFC-3339. Пример: 2024-09-18T15:04:05Z.
    • to_time — правая граница временного диапазона, формат аналогичен from_time.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Подробнее про отображаемые сведения см. в документации PostgreSQL.

Получить статистику по запросамПолучить статистику по запросам

Консоль управления
gRPC API
  1. Перейдите в сервис Managed Service for PostgreSQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Диагностика производительности → Запросы.

Для просмотра статистики запросов за интервал:

  1. Выберите интересующий временной интервал.
  2. (Опционально) Настройте фильтры.

Чтобы получить сведения об относительном изменении статистических характеристик запросов:

  1. В поле Интервал 1 выберите временной интервал, статистика за который будет основой для расчетов.
  2. В поле Интервал 2 выберите временной интервал, статистика за который будет сравниваться со статистикой первого интервала.
  3. (Опционально) Настройте фильтры.

Например, пусть в первом интервале было выполнено 10 запросов SELECT * FROM cities, а во втором — 20. Тогда при сравнении статистических данных разница по метрике количество запросов (столбец Calls в таблице) будет равняться +100%.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом PerformanceDiagnosticsService.ListRawStatements и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/perf_diag_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "cluster_id": "<идентификатор_кластера>",
            "from_time": "<левая_граница_временного_диапазона>",
            "to_time": "<правая_граница_временного_диапазона>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.postgresql.v1.PerformanceDiagnosticsService.ListRawStatements
    

    Где:

    • from_time — левая граница временного диапазона в формате RFC-3339. Пример: 2024-09-18T15:04:05Z.
    • to_time — правая граница временного диапазона, формат аналогичен from_time.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Подробнее про отображаемые сведения см. в документации расширений pg_stat_statements и pg_stat_kcache.

Получить информацию о плане выполнения запросаПолучить информацию о плане выполнения запроса

Модуль auto_explain позволяет логировать план выполнения медленных запросов автоматически, обходясь без команды EXPLAIN. Это полезно для отслеживания неоптимизированных запросов. Логирование выполняется в общий лог PostgreSQL.

Чтобы включить логирование запросов, измените настройки СУБД:

  1. В поле Shared preload libraries выберите значение auto_explain.

  2. Включите настройку Auto explain log analyze.

  3. Задайте настройки модуля auto_explain:

    Важно

    Установка значения 0 для настройки Auto explain log min duration или включение настройки Auto explain log timing могут существенно снизить производительность кластера.

    • Auto explain log buffers
    • Auto explain log min duration
    • Auto explain log nested statements
    • Auto explain log timing
    • Auto explain log triggers
    • Auto explain log verbose
    • Auto explain sample rate

Была ли статья полезна?

Предыдущая
Просмотр логов кластера
Следующая
Мониторинг состояния кластера и хостов
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»