Настройка APM (Application Performance Monitoring) для 1С-Битрикс
APM — это постоянное наблюдение за производительностью приложения в реальном времени: время ответа, количество ошибок, медленные запросы, деградация под нагрузкой. В отличие от профилировщиков (Xdebug, Blackfire), которые запускаются вручную, APM работает непрерывно и сигнализирует до того, как клиенты начали жаловаться.
Из чего состоит APM для Битрикс
Для 1С-Битрикс практически используются два стека: Elastic APM (open-source, self-hosted) и New Relic / Datadog (SaaS). Принцип одинаков — PHP-агент перехватывает выполнение запросов и отправляет метрики в центральное хранилище.
Elastic APM — схема:
PHP-агент (elastic-apm-php) → APM Server → Elasticsearch → Kibana (APM UI)
Установка PHP-агента:
# Debian/Ubuntu
curl -L -O https://github.com/elastic/apm-agent-php/releases/download/v1.x.x/apm-agent-php_Linux_x86-64.deb
dpkg -i apm-agent-php_Linux_x86-64.deb
В php.ini:
extension=elastic_apm.so
elastic_apm.server_url=http://apm-server:8200
elastic_apm.service_name=bitrix-site
elastic_apm.environment=production
elastic_apm.transaction_sample_rate=0.1
transaction_sample_rate=0.1 — профилируется 10% запросов. На нагруженных сайтах 100% даёт ощутимый overhead.
Что мониторит APM в Битрикс
Агент автоматически перехватывает:
- Входящие HTTP-запросы — время ответа, статус, URL, метод.
-
SQL-запросы — к
b_iblock_element,b_sale_order,b_crm_dealи всем остальным таблицам. Видно время, тело запроса, план выполнения. -
Внешние HTTP-вызовы —
curl_exec,file_get_contents. Запросы к 1С, платёжным системам, внешним API. -
Исключения —
\Bitrix\Main\SystemException, необработанные ошибки.
Для кастомных операций (длинный import-скрипт, тяжёлая агрегация) создаём span вручную:
use Elastic\Apm\ElasticApm;
$transaction = ElasticApm::getCurrentTransaction();
$span = $transaction->beginCurrentContextSpan('import.products', 'custom');
// ... логика импорта ...
$span->end();
Ключевые метрики и алерты
После настройки в Kibana APM UI доступны:
- Response time — среднее и 95-й перцентиль времени ответа по URL.
- Throughput — запросов в минуту.
- Error rate — процент запросов с ошибками.
- Apdex — индекс удовлетворённости: соотношение быстрых (< T), терпимых (< 4T) и медленных запросов.
Алерты настраиваются в Kibana Alerting: если p95 response time превышает 3 секунды более 5 минут — уведомление в Slack или email.
Сроки настройки
| Этап | Срок |
|---|---|
| Установка APM Server + Elasticsearch | 1 день |
| Настройка PHP-агента, первые данные | 2–4 часа |
| Настройка дашбордов и алертов | 1 день |
| Тонкая настройка (sampling, кастомные span) | 1–2 дня |
APM не заменяет профилирование — он показывает что деградирует и когда. Профилировщик объясняет почему.







