9.3. Проблемы с экспортёром prometheus #

Экспортёр prometheus не предназначен для обработки и передачи больших объёмов метрик.

Рассмотрим сценарий, в котором в базе данных Postgres Pro содержится 10 000 таблиц и 10 000 индексов. Используем следующий расширенный набор плагинов:

В этом сценарии ожидается следующая нагрузка:

Если на сервере доступно меньше 3 ГиБ оперативной памяти, работа коллектора может быть прекращена в рамках уничтожения процессов при нехватке памяти. При этом другие процессы затронуты не будут.

В этой конфигурации коллектор создаёт более 390 000 записей с метриками.

Используйте таблицу ниже, чтобы оценить количество метрик.

Имя плагинаКоличество метрик на объект
tables31 на таблицу
indexes6 на индекс (+1, если у индекса недопустимое значение)
bloat_tables1 на таблицу
bloat_indexes1 на индекс

Поэтому для 100 000 таблиц и 100 000 индексов количество метрик для перечисленных выше плагинов составит не менее 3 900 000.

При передаче сотен тысяч метрик через экспортёр prometheus с использованием pull-модели в журналах pgpro-otel-collector может встретиться следующая ошибка:

{
    "level": "error",
    "ts": "2025-09-05T17:40:25.575+0300",
    "msg": "error encoding and sending metric family: write tcp 127.0.0.1:8889->127.0.0.1:44930: write: broken pipe\n",
    "resource": {
        "service.instance.id": "62cc1e9c-a53f-423e-9c6f-41b1f6a0872a",
        "service.name": "pgpro-otel-collector",
        "service.version": "v0.4.0"
    },
    "otelcol.component.id": "prometheus",
    "otelcol.component.kind": "exporter",
    "otelcol.signal": "metrics"
}

Это ошибка указывает на то, что экспортёр prometheus не может скачать метрики за отведённое время. Чтобы исправить эту проблему, используйте следующие обходные решения: