> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Интеграция с Prometheus

> Собирайте метрики Managed Postgres в Prometheus, Grafana, Datadog или любой коллектор, совместимый с OpenMetrics

export const TrackedLink = ({href, eventName, children, ...rest}) => {
  const handleClick = () => {
    try {
      if (typeof window !== "undefined" && window.galaxy && eventName) {
        window.galaxy.track(eventName, {
          interaction: "click"
        });
      }
    } catch (e) {}
  };
  return <a href={href} onClick={handleClick} {...rest}>
      {children}
    </a>;
};

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

export const galaxyOnClick = eventName => () => {
  try {
    if (typeof window !== "undefined" && window.galaxy && eventName) {
      window.galaxy.track(eventName, {
        interaction: "click"
      });
    }
  } catch (e) {}
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Beta feature. 
                <u>
                    <a href="/docs/beta-and-experimental-features#beta-features">
                        Learn more.
                    </a>
                </u>
            </span>
        </div>;
};

Managed Postgres предоставляет две конечные точки метрик, совместимые с Prometheus,
в [ClickHouse Cloud API][cloud-api]:

| Конечная точка | Путь                                                   | Возвращает                                               |
| -------------- | ------------------------------------------------------ | -------------------------------------------------------- |
| Организация    | `/v1/organizations/{orgId}/postgres/prometheus`        | Метрики для всех сервисов Managed Postgres в организации |
| Экземпляр      | `/v1/organizations/{orgId}/postgres/{pgId}/prometheus` | Метрики для одного сервиса                               |

<Note>
  Конечная точка на уровне организации возвращает метрики максимум для 100 сервисов. Если в вашей
  организации более 100 сервисов Managed Postgres, [обратитесь в
  поддержку](https://clickhouse.com/support/program).
</Note>

<div id="authentication">
  ## Аутентификация
</div>

Эта конечная точка использует те же \[ключи API], что и остальной OpenAPI; см.
[руководство по OpenAPI](/ru/products/managed-postgres/openapi), чтобы узнать,
как их создать и где посмотреть идентификаторы вашей организации и сервиса.

```bash theme={null}
KEY_ID=mykeyid
KEY_SECRET=mykeysecret
ORG_ID=myorgid
PG_ID=mypgid
```

<div id="scrape-org">
  ## Сбор метрик со всех сервисов организации
</div>

```bash theme={null}
curl -s --user "$KEY_ID:$KEY_SECRET" \
    "https://api.clickhouse.cloud/v1/organizations/$ORG_ID/postgres/prometheus"
```

<div id="scrape-instance">
  ## Сбор метрик с одного сервиса
</div>

```bash theme={null}
curl -s --user "$KEY_ID:$KEY_SECRET" \
    "https://api.clickhouse.cloud/v1/organizations/$ORG_ID/postgres/$PG_ID/prometheus"
```

<div id="sample-response">
  ## Пример ответа
</div>

```response theme={null}
# HELP PostgresServiceInfo Информация о сервисе PostgreSQL, включая статус и версию.
# TYPE PostgresServiceInfo gauge
PostgresServiceInfo{clickhouse_org="ca04a310-730d-4ce0-93dd-39f2cd2d5e6f",postgres_service="0c330583-6396-86d0-82cd-ed0f23b0d38c",postgres_service_name="my-postgres",postgres_status="running",postgres_version="18"} 1

# HELP PostgresServer_ActiveConnections Количество активных подключений по состоянию.
# TYPE PostgresServer_ActiveConnections gauge
PostgresServer_ActiveConnections{clickhouse_org="ca04a310-730d-4ce0-93dd-39f2cd2d5e6f",postgres_service="0c330583-6396-86d0-82cd-ed0f23b0d38c",postgres_service_name="my-postgres",state="active"} 1
PostgresServer_ActiveConnections{clickhouse_org="ca04a310-730d-4ce0-93dd-39f2cd2d5e6f",postgres_service="0c330583-6396-86d0-82cd-ed0f23b0d38c",postgres_service_name="my-postgres",state="idle"} 4

# HELP PostgresServer_CacheHitRatio Коэффициент попаданий в буферный кэш: блоки, обслуженные из кэша, по отношению к общему числу запрошенных блоков (%).
# TYPE PostgresServer_CacheHitRatio gauge
PostgresServer_CacheHitRatio{clickhouse_org="ca04a310-730d-4ce0-93dd-39f2cd2d5e6f",postgres_service="0c330583-6396-86d0-82cd-ed0f23b0d38c",postgres_service_name="my-postgres"} 100
```

Полный список метрик и их значений см. в
[справочнике по метрикам](/ru/products/managed-postgres/monitoring/metrics).

<div id="configuring-prometheus">
  ## Настройка Prometheus
</div>

Эта конфигурация опрашивает конечную точку на уровне организации каждые 60 секунд:

```yaml theme={null}
scrape_configs:
  - job_name: "managed-postgres"
    scheme: https
    metrics_path: "/v1/organizations/<ORG_ID>/postgres/prometheus"
    static_configs:
      - targets: ["api.clickhouse.cloud"]
    basic_auth:
      username: <KEY_ID>
      password: <KEY_SECRET>
    honor_labels: true
    scrape_interval: 60s
```

Конечная точка обновляет метрики раз в минуту. Опрос чаще, чем
`60s`, дублирует сэмплы и приводит к ступенчатому графику на
панелях Gauge.

Установите `honor_labels: true`, чтобы метки `postgres_service` и
`postgres_service_name` из конечной точки сохранялись, а не
перезаписывались Prometheus.

Чтобы собирать метрики только для одного сервиса, добавьте `/<PG_ID>` к `metrics_path`.

<div id="grafana-dashboard">
  ## Готовая панель мониторинга Grafana
</div>

Готовая панель мониторинга Grafana визуализирует все метрики,
доступные через конечную точку: сортируемую таблицу сервисов,
загрузку CPU и памяти, использование диска с оповещениями о
превышении пороговых значений, подключения по состоянию, транзакции и
долю откатов, активность кортежей, I/O, хранилище по отдельным базам
данных и взаимные блокировки.

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/qT0j4CNmQubVqREl/images/managed-postgres/monitoring/grafana-dashboard.png?fit=max&auto=format&n=qT0j4CNmQubVqREl&q=85&s=a497fb8c4a42a8f02c1bb875dbabfe1a" alt="Панель мониторинга Grafana для сервисов Managed Postgres" size="md" border width="1863" height="1306" data-path="images/managed-postgres/monitoring/grafana-dashboard.png" />

<div id="import-dashboard">
  ### Импорт панели мониторинга
</div>

<Steps>
  <Step>
    #### Скачайте JSON панели мониторинга

    <TrackedLink href={'/ru/examples/managed-postgres-grafana-dashboard.json'} download="managed-postgres-grafana-dashboard.json" eventName="docs.managed_postgres_grafana_dashboard.download">Скачать JSON панели мониторинга</TrackedLink>.
  </Step>

  <Step>
    #### Откройте импорт в Grafana

    Перейдите в **Dashboards → New → Import**. Загрузите JSON‑файл или вставьте его содержимое.
  </Step>

  <Step>
    #### Выберите источник данных Prometheus

    Когда появится запрос для `DS_PROMETHEUS`, выберите источник данных Prometheus, который собирает метрики с конечной точки, настроенной в [предыдущем разделе](#configuring-prometheus).
  </Step>
</Steps>

Для развертываний Grafana с provisioning поместите JSON в каталог
provisioning для панелей мониторинга. Grafana сопоставит ссылку `${DS_PROMETHEUS}`
с источником данных Prometheus, доступным в экземпляре.

<div id="template-variables">
  ### Переменные шаблона
</div>

Панель мониторинга использует три переменные:

* **Источник данных** — источник данных Prometheus, на котором основана панель мониторинга.
* **Сервис** — фильтр с возможностью множественного выбора по `postgres_service_name`.
  По умолчанию выбрано *All*; выберите один или несколько сервисов, чтобы применить их ко всем панелям.
* **Интервал опроса** — скрытая константа, по умолчанию `60s`. Определяет
  вычисление `$__rate_interval` в Grafana. Измените это значение в
  JSON, если у вас используется другой интервал опроса.

<div id="drill-in">
  ### Отфильтруйте данные по одному сервису для детального анализа
</div>

Несколько панелей предназначены для детального анализа после фильтрации по одному
сервису с помощью переменной **Service**. Например, на панели CPU by mode
в стек складываются `user`, `system`, `iowait`, `steal` и другие режимы CPU,
чтобы вы могли понять, связан ли всплеск с работой прикладного кода, ядра,
ожиданием диска или конкуренцией за ресурсы гипервизора.

<div id="third-party-integrations">
  ## Интеграция с Grafana и Datadog
</div>

Эта конечная точка имеет ту же структуру, что и [конечная точка Prometheus для ClickHouse
](/ru/products/cloud/features/monitoring/prometheus), поэтому описанные там конфигурации Grafana Cloud, Grafana
Alloy и агента OpenMetrics для Datadog
применимы и здесь. Укажите в `metrics_path` путь организации или
экземпляра Managed Postgres вместо пути ClickHouse.

[cloud-api]: /products/cloud/features/admin-features/api "Cloud API"

[API keys]: /products/cloud/features/admin-features/api/openapi "Управление ключами API"
