---
title: 'Мониторинг кластера, нод и баз данных PostgreSQL для 1С'
sidebar_label: 'Мониторинг кластера, нод и баз данных'
sidebar_position: 9
description: 'Как отслеживать состояние нод, баз данных и кластера PostgreSQL для 1С и как экспортировать метрики в формате Prometheus'
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import {CustomTable} from '@selectel/docux/components'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import CopyIcon from '@selectel/docux/icons/copy'

# Мониторинг кластера, нод и баз данных PostgreSQL для 1С

В облачных базах данных PostgreSQL для 1С вы можете отслеживать состояние кластера.

Для оценки общего состояния кластера [посмотрите его статус](#view-cluster-status).

Для более детального анализа некоторые метрики можно посмотреть в виде графиков в панели управления:

* [метрики нод кластера](#view-cluster-node-status);
* [метрики баз данных](#view-database-state);
* [метрики пулера соединений](#view-pooler-state).

Полный набор доступных метрик можно [экспортировать в формате Prometheus](#export-metrics-in-prometheus-format).

При анализе графиков учитывайте, что время в панели управления соответствует времени на вашем устройстве и не зависит от региона, где размещен кластер.

:::note

Например, вы создали кластер в Ташкенте, в пуле uz-1.
На устройстве, с которого вы зашли в панель управления, установлен часовой пояс Москвы.
Время на графиках метрик будет отображаться в часовом поясе Москвы.

:::

## Посмотреть статус кластера \{#view-cluster-status}

1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
2. Откройте вкладку **Активные**.
3. В строке кластера посмотрите статус.

<CustomTable>
  <table>
    <tbody>
      <tr>
        <th>ACTIVE</th>
        <td>Кластер доступен</td>
      </tr>

      <tr>
        <th>CREATING</th>
        <td>Кластер создается</td>
      </tr>

      <tr>
        <th>UPDATING</th>
        <td>Кластер обновляется</td>
      </tr>

      <tr>
        <th>RESIZING</th>
        <td>Кластер масштабируется</td>
      </tr>

      <tr>
        <th>ERROR</th>
        <td>Произошла ошибка, [создайте тикет](https://my.selectel.ru/tickets/create/)</td>
      </tr>

      <tr>
        <th>DISK FULL</th>

        <td>
          Диск заполнен, кластер работает только на чтение.
          Чтобы кластер работал на чтение и запись, [очистите диск](/managed-databases/postgresql-for-1c/use-disk-space.mdx#disk-cleanup) или [масштабируйте кластер](/managed-databases/postgresql-for-1c/resize-cluster.mdx) и выберите конфигурацию с бóльшим размером диска
        </td>
      </tr>

      <tr>
        <th>DEGRADED</th>
        <td>Часть нод кластера недоступна</td>
      </tr>

      <tr>
        <th>DELETING</th>
        <td>Кластер удаляется</td>
      </tr>
    </tbody>
  </table>
</CustomTable>

## Посмотреть состояние нод кластера \{#view-cluster-node-status}

1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
2. Откройте вкладку **Активные**.
3. Откройте страницу кластера → вкладка **Мониторинг**.
4. В блоке **Мониторинг кластера** нажмите **Ноды кластера**.
5. Выберите ноды, метрики которых хотите посмотреть.
6. Посмотрите доступные [метрики нод кластера](#cluster-node-metrics).

### Метрики нод кластера в панели управления \{#cluster-node-metrics}

<CustomTable>
  <table data-sticky>
    <tbody>
      <tr>
        <th>Память</th>
        <td>Занятая память без учета кэша и буферов операционной системы в процентах или гигабайтах</td>
      </tr>

      <tr>
        <th>vCPU</th>
        <td>На сколько процентов загружены ядра нод кластера</td>
      </tr>

      <tr>
        <th>CPU iowait</th>
        <td>Cколько процентов времени процессор потратил на ожидание ввода/вывода</td>
      </tr>

      <tr>
        <th>Диск</th>

        <td>
          Занятое место на диске в процентах или гигабайтах.
          Учитывает часть дискового пространства, зарезервированную под служебные нужды и недоступную для размещения баз данных.
          Подробнее о резервировании дискового пространства в инструкции [Использование дискового пространства в кластере PostgreSQL для 1С](/managed-databases/postgresql-for-1c/use-disk-space.mdx)
        </td>
      </tr>

      <tr>
        <th>Load Average</th>

        <td>
          Среднее значение загрузки системы за период времени.
          Показывает, какое количество процессов обрабатывается ядрами кластера.
          Показатель представлен в виде трех значений — за одну минуту, пять минут и 15 минут.
          Эти значения должны быть не больше, чем количество ядер на ноде
        </td>
      </tr>

      <tr>
        <th>OOM</th>

        <td>
          Количество процессов, которые завершились ошибкой `Out of Memory` из-за нехватки оперативной памяти
        </td>
      </tr>

      <tr>
        <th>Нагрузка диска</th>

        <td>
          Скорость чтения и записи данных в КБ/с или количество операций чтения и записи в секунду
        </td>
      </tr>

      <tr>
        <th>Нагрузка сети</th>
        <td>Количество бит или пакетов, отправленных и принятых через сетевой интерфейс</td>
      </tr>
    </tbody>
  </table>
</CustomTable>

## Посмотреть состояние баз данных \{#view-database-state}

1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
2. Откройте вкладку **Активные**.
3. Откройте страницу кластера → вкладка **Мониторинг**.
4. В блоке **Мониторинг кластера** нажмите **Базы данных**.
5. Выберите ноды, метрики которых хотите посмотреть.
6. Посмотрите доступные [метрики баз данных](#database-metrics).

### Метрики баз данных в панели управления \{#database-metrics}

<CustomTable>
  <table data-sticky>
    <tbody>
      <tr>
        <th>Размер файла статистики</th>
        <td>Общий размер файла статистики в килобайтах</td>
      </tr>

      <tr>
        <th>Попадание в кэш</th>
        <td>Какой процент данных в запросе был прочитан из кэша — отношение `blks_hit` к сумме `blks_hit` и `blks_read`</td>
      </tr>

      <tr>
        <th>Операции со строками</th>

        <td>
          Количество строк, затронутых операциями в выбранной базе данных в секунду:

          <ul>
            <li> `tup_deleted` — количество строк, удаленных операциями в секунду;</li>
            <li> `tup_fetched` — количество строк, извлеченных операциями в секунду;</li>
            <li> `tup_inserted` — количество строк, вставленных операциями в секунду;</li>
            <li> `tup_returned` — количество строк, возвращенных операциями в секунду;</li>
            <li> `tup_updated` — количество строк, обновленных операциями в секунду</li>
          </ul>
        </td>
      </tr>

      <tr>
        <th>Locks</th>
        <td>Количество блокировок в каждой базе данных кластера</td>
      </tr>

      <tr>
        <th>Deadlocks</th>
        <td>Количество взаимных блокировок в каждой базе данных</td>
      </tr>

      <tr>
        <th>Транзакции</th>
        <td>Количество транзакций в секунду в каждой базе данных кластера</td>
      </tr>

      <tr>
        <th>Подключения</th>
        <td>Количество подключений к каждой базе данных кластера и суммарное количество подключений ко всем базам данных</td>
      </tr>

      <tr>
        <th>Размер временных файлов</th>
        <td>Общий размер временных файлов в килобайтах</td>
      </tr>

      <tr>
        <th>Размер WAL-файлов</th>
        <td>Общий размер WAL-файлов в мегабайтах</td>
      </tr>

      <tr>
        <th>Время выполнения самого долгого запроса</th>
        <td>Время выполнения самого долгого запроса в каждой базе данных кластера за период времени</td>
      </tr>

      <tr>
        <th>Размер БД</th>
        <td>Общий размер выбранной базы данных в мегабайтах</td>
      </tr>
    </tbody>
  </table>
</CustomTable>

## Посмотреть состояние пулера соединений \{#view-pooler-state}

1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
2. Откройте вкладку **Активные**.
3. Откройте страницу кластера → вкладка **Мониторинг**.
4. В блоке **Мониторинг кластера** нажмите **Пулер соединений**.
5. Выберите ноды, метрики которых хотите посмотреть.
6. Посмотрите доступные [метрики пулера соединений](#pooler-metrics).

### Метрики пулера соединений в панели управления \{#pooler-metrics}

<CustomTable>
  <table data-sticky>
    <tbody>
      <tr>
        <th>Максимальное время ожидания клиента в очереди</th>
        <td>Максимальное время ожидания клиента в очереди в выбранной базе данных в секундах</td>
      </tr>

      <tr>
        <th>Время ожидания ответа от сервера</th>
        <td>Время ожидания ответа от ноды в выбранной базе данных в секундах</td>
      </tr>

      <tr>
        <th>Активные подключения к серверу</th>
        <td>Количество серверных соединений, связанных с клиентами, в выбранной базе данных</td>
      </tr>

      <tr>
        <th>Подключения клиентов к пулу</th>

        <td>
          Количество подключений клиентов к пулу в выбранной базе данных:

          <ul>
            <li> `pools_client_active_connections` — количество подключений клиентов, связанных с серверными соединениями или простаивающих без запросов;</li>
            <li> `pools_client_waiting_connections` — количество подключений клиентов, где запрос отправлен, но соединения с нодой еще нет</li>
          </ul>
        </td>
      </tr>
    </tbody>
  </table>
</CustomTable>

## Экспортировать метрики в формате Prometheus \{#export-metrics-in-prometheus-format}

Историческая информация для кластеров недоступна — метрики запрашиваются только в режиме реального времени. Список всех метрик, которые поддерживаются в облачных базах данных, и их описание можно посмотреть в таблице [Метрики в формате Prometheus](#metrics-in-prometheus-format).

1. [Получите токен](#get-token).
2. [Получите метрики в формате Prometheus](#get-prometheus-metrics).

### 1. Получить токен \{#get-token}

Токен дает доступ к метрикам всех кластеров [проекта](/access-control/projects/about-projects.mdx) в одном [пуле](/infrastructure/locations.mdx#pool).

1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.

2. Откройте вкладку **Активные**.

3. Откройте страницу кластера → вкладка **Мониторинг**.

4. В блоке **Токены для Prometheus** нажмите **Создать токен**.
   Токен будет сгенерирован автоматически.

5. Скопируйте токен. Для этого в строке токена нажмите <CopyIcon />.

### 2. Получить метрики в формате Prometheus \{#get-prometheus-metrics}

<Tabs queryString="get-prometheus-metrics">
  <TabItem value="config" default>
    <TabItemLabel>
      Конфигурационный файл
    </TabItemLabel>

    1. Добавьте в конфигурационный файл Prometheus:

       ```yaml
       scrape_configs:
         - job_name: get-metrics-from-dbaas
           scrape_interval: 1m
           static_configs:
             - targets:
               - '<domain>'
           scheme: https
           authorization:
             type: Bearer
             credentials: <token>
       ```

       Укажите:

       * `<domain>` — домен Managed Databases API. Это часть URL для обращения к API без `https://` и `/v1`, например `ru-3.dbaas.selcloud.ru`.
         URL зависит от [региона и пула](/infrastructure/locations.mdx#selectel-infrastructure), можно посмотреть в [списке URL](/api/urls/);
       * `<token>` — токен, который вы скопировали при [получении токена](#get-token) на шаге 5.

    2. Откройте в браузере страницу, на которой будут доступны метрики в формате Prometheus:

       ```bash
       http://<ip_address>:9090/targets
       ```

       Укажите `<ip_address>` — IP-адрес, на котором установлен Prometheus.

    3. Самостоятельно настройте мониторинг и алерты для кластеров баз данных.
  </TabItem>

  <TabItem value="cli">
    <TabItemLabel>
      CLI
    </TabItemLabel>

    1. Откройте CLI.

    2. Чтобы получить метрики, отправьте запрос:

       ```bash
       curl -L "https://<domain>/metrics" -H "Authorization: Bearer <token>"
       ```

       Укажите:

       * `<domain>` — домен Managed Databases API. Это часть URL для обращения к API без `https://` и `/v1`, например `ru-3.dbaas.selcloud.ru`.
         URL зависит от [региона и пула](/infrastructure/locations.mdx#selectel-infrastructure), можно посмотреть в [списке URL](/api/urls/);
       * `<token>` — токен, который вы скопировали при [получении токена](#get-token) на шаге 5.

       В ответе появятся доступные метрики в формате Prometheus.

    3. Самостоятельно настройте мониторинг и алерты для кластеров баз данных.
  </TabItem>
</Tabs>

### Метрики в формате Prometheus \{#metrics-in-prometheus-format}

Метрики в формате Prometheus предоставляются для всех кластеров. Конкретный кластер можно найти по идентификатору кластера базы данных в лейбле `ds_id`.

<Tabs queryString="metrics-in-prometheus-format">
  <TabItem value="infrastructure" default>
    <TabItemLabel>
      Метрики уровня инфраструктуры
    </TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <tbody>
          <tr>
            <th>dbaas\_memory\_percent</th>
            <td>Занятая память без учета кэша и буферов операционной системы (RAM) в процентах</td>
          </tr>

          <tr>
            <th>dbaas\_memory\_bytes</th>
            <td>Занятая память без учета кэша и буферов операционной системы (RAM) в байтах</td>
          </tr>

          <tr>
            <th>dbaas\_oom\_count</th>
            <td>Количество процессов, которые завершились ошибкой `Out of Memory` из-за нехватки оперативной памяти</td>
          </tr>

          <tr>
            <th>dbaas\_cpu</th>
            <td>Использование vCPU на нодах кластера базы данных в процентах</td>
          </tr>

          <tr>
            <th>dbaas\_cpu\_iowait</th>
            <td>Время ожидания ввода/вывода в процентах</td>
          </tr>

          <tr>
            <th>dbaas\_disk\_percent</th>

            <td>
              Занятое место на диске в процентах.
              Учитывает часть дискового пространства, зарезервированную под служебные нужды и недоступную для размещения баз данных.
              Подробнее о резервировании дискового пространства в инструкции [Использование дискового пространства в кластере PostgreSQL для 1С](/managed-databases/postgresql-for-1c/use-disk-space.mdx)
            </td>
          </tr>

          <tr>
            <th>dbaas\_disk\_bytes</th>

            <td>
              Занятое место на диске в байтах.
              Учитывает часть дискового пространства, зарезервированную под служебные нужды и недоступную для размещения баз данных.
              Подробнее о резервировании дискового пространства в инструкции [Использование дискового пространства в кластере PostgreSQL для 1С](/managed-databases/postgresql-for-1c/use-disk-space.mdx)
            </td>
          </tr>

          <tr>
            <th>dbaas\_disk\_read\_iops</th>
            <td>Количество операций чтения в секунду</td>
          </tr>

          <tr>
            <th>dbaas\_disk\_write\_iops</th>
            <td>Количество операций записи в секунду</td>
          </tr>

          <tr>
            <th>dbaas\_disk\_read\_bytes</th>
            <td>Скорость чтения данных с диска в байтах в секунду</td>
          </tr>

          <tr>
            <th>dbaas\_disk\_write\_bytes</th>
            <td>Скорость записи данных на диск в байтах в секунду</td>
          </tr>

          <tr>
            <th>dbaas\_node\_load1</th>
            <td>Среднее значение загрузки системы за одну минуту. Показывает, какое количество процессов обрабатывается ядрами кластера</td>
          </tr>

          <tr>
            <th>dbaas\_node\_load5</th>
            <td>Среднее значение загрузки системы за пять минут. Показывает, какое количество процессов обрабатывается ядрами кластера</td>
          </tr>

          <tr>
            <th>dbaas\_node\_load15</th>
            <td>Среднее значение загрузки системы за 15 минут. Показывает, какое количество процессов обрабатывается ядрами кластера</td>
          </tr>

          <tr>
            <th>dbaas\_network\_receive\_bytes</th>
            <td>Количество байт, принятых через сетевой интерфейс</td>
          </tr>

          <tr>
            <th>dbaas\_network\_transmit\_bytes</th>
            <td>Количество байт, отправленных через сетевой интерфейс</td>
          </tr>

          <tr>
            <th>dbaas\_network\_receive\_packets</th>
            <td>Количество пакетов, принятых через сетевой интерфейс в секунду</td>
          </tr>

          <tr>
            <th>dbaas\_network\_transmit\_packets</th>
            <td>Количество пакетов, отправленных через сетевой интерфейс в секунду</td>
          </tr>

          <tr>
            <th>dbaas\_role</th>

            <td>
              Роль ноды:

              <ul>
                <li>`0` — роль неизвестна;</li>
                <li>`1` — мастер;</li>
                <li>`2` — реплика</li>
              </ul>
            </td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="application">
    <TabItemLabel>
      Метрики уровня приложения
    </TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <tbody>
          <tr>
            <th>dbaas\_connections</th>

            <td>
              Количество активных соединений с процессом PostgreSQL <br />
              Например, можно использовать лейблы:

              <ul>
                <li>`ds_name` — имя кластера базы данных;</li>
                <li>`datname` — имя базы данных.</li>
              </ul>
            </td>
          </tr>

          <tr>
            <th>dbaas\_total\_connections</th>
            <td>Общее количество установленных соединений с процессом PostgreSQL</td>
          </tr>

          <tr>
            <th>dbaas\_max\_tx\_duration</th>
            <td>Время выполнения самого долгого запроса в секундах</td>
          </tr>

          <tr>
            <th>dbaas\_xact\_commit\_rollback</th>

            <td>
              Количество транзакций в секунду в каждой базе данных кластера. <br />
              Например, можно использовать лейблы:

              <ul>
                <li>`ds_name` — имя кластера базы данных;</li>
                <li>`datname` — имя базы данных.</li>
              </ul>
            </td>
          </tr>

          <tr>
            <th>dbaas\_tup\_deleted</th>
            <td>Количество строк в секунду, удаленное запросами в базе данных</td>
          </tr>

          <tr>
            <th>dbaas\_tup\_fetched</th>
            <td>Количество строк в секунду, извлеченное запросами в базе данных</td>
          </tr>

          <tr>
            <th>dbaas\_tup\_inserted</th>
            <td>Количество строк в секунду, вставленное запросами в базе данных</td>
          </tr>

          <tr>
            <th>dbaas\_tup\_returned</th>
            <td>Количество строк в секунду, возвращенное запросами в базе данных</td>
          </tr>

          <tr>
            <th>dbaas\_tup\_updated</th>
            <td>Количество строк в секунду, измененное запросами в базе данных</td>
          </tr>

          <tr>
            <th>dbaas\_xact\_commit</th>
            <td>Количество зафиксированных транзакций в секунду в базе данных</td>
          </tr>

          <tr>
            <th>dbaas\_xact\_rollback</th>
            <td>Количество транзакций в секунду в базе данных, для которых был выполнен откат</td>
          </tr>

          <tr>
            <th>dbaas\_cache\_hit\_ratio</th>
            <td>Процент данных в запросе, которые были прочитаны из кэша — отношение `blks_hit` к сумме `blks_hit` и `blks_read`</td>
          </tr>

          <tr>
            <th>dbaas\_deadlocks</th>

            <td>
              Количество взаимных блокировок в секунду в каждой базе данных. <br />
              Например, можно использовать лейблы:

              <ul>
                <li>`ds_name` — имя кластера базы данных;</li>
                <li>`datname` — имя базы данных.</li>
              </ul>
            </td>
          </tr>

          <tr>
            <th>dbaas\_locks</th>

            <td>
              Количество блокировок в секунду в каждой базе данных кластера.
              Например, можно использовать лейблы:

              <ul>
                <li>`ds_name` — имя кластера базы данных;</li>
                <li>`datname` — имя базы данных.</li>
              </ul>
            </td>
          </tr>

          <tr>
            <th>dbaas\_pg\_pgss\_query\_texts\_size\_bytes</th>
            <td>Размер файла со статистикой от `pg_stat_statements` в байтах</td>
          </tr>

          <tr>
            <th>dbaas\_pg\_total\_wals\_size\_bytes</th>
            <td>Размер каталога с WAL-файлами в байтах</td>
          </tr>

          <tr>
            <th>dbaas\_pg\_tmp\_size\_bytes</th>
            <td>Размер временных файлов PostgreSQL в байтах</td>
          </tr>

          <tr>
            <th>dbaas\_databases\_size\_bytes</th>

            <td>
              Общий размер базы данных в байтах. <br />
              Например, можно использовать лейбл `datname` — имя базы данных
            </td>
          </tr>

          <tr>
            <th>dbaas\_pg\_trx\_max\_age</th>
            <td>Количество транзакций, выполненных после последней заморозки с помощью операции VACUUM FREEZE или AUTOVACUUM</td>
          </tr>

          <tr>
            <th>dbaas\_pg\_trx\_percent\_before\_vacuum\_freeze</th>
            <td>Показывает, насколько возраст самой ранней транзакции в базе данных приблизился к порогу, после которого PostgreSQL принудительно запускает операцию VACUUM FREEZE. Порог определяется параметром `autovacuum\_freeze\_max\_age`</td>
          </tr>

          <tr>
            <th>dbaas\_pg\_trx\_percent\_before\_wraparound\_risk</th>
            <td>Показывает, насколько возраст самой ранней транзакции в базе данных приблизился к порогу, после которого возможно переполнение идентификаторов транзакций (wraparound)</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>
</Tabs>

<Formbricks />
