Настройка APM для 1С-Битрикс: мониторинг производительности

Представьте: в пиковый час ваш интернет-магазин на Битрикс начинает тормозить. Менеджеры не успевают обрабатывать заказы, каталог открывается 8 секунд, а 1С-обмен подвисает. Один запрос к `b_iblock_element` выполняется 4 секунды — и таких тысяч в минуту. Стандартное профилирование Xdebug покажет про
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка APM для 1С-Битрикс: мониторинг производительности
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    880
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    805
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1163

Представьте: в пиковый час ваш интернет-магазин на Битрикс начинает тормозить. Менеджеры не успевают обрабатывать заказы, каталог открывается 8 секунд, а 1С-обмен подвисает. Один запрос к b_iblock_element выполняется 4 секунды — и таких тысяч в минуту. Стандартное профилирование Xdebug покажет проблему, но только когда уже поздно. APM работает непрерывно, фиксирует каждый медленный запрос, каждую ошибку и падение throughput. Мы интегрируем APM в ваш 1С-Битрикс, чтобы вы видели реальную картину производительности 24/7. В отличие от одноразовых замеров, APM даёт временные ряды: вы знаете, что вчера p95 response time был 1.2 с, а сегодня — 2.9 с. И можете сразу реагировать.

Мы используем два основных стека: Elastic APM (open-source, self-hosted) и New Relic / Datadog (SaaS). Для каждого проекта подбираем оптимальный вариант под нагрузку и бюджет. Результат — дашборды в Kibana или New Relic UI, алерты в Slack/Telegram, полный контроль над производительностью. Ниже — технические детали.

Процесс настройки APM

  1. Анализ архитектуры и нагрузки. Определяем критичные точки: медленные страницы, тяжёлые SQL, внешние вызовы.
  2. Выбор стека APM. Elastic APM или New Relic — под конкретные требования по скорости, бюджету и контролю данных.
  3. Установка и конфигурация APM Server, Elasticsearch и Kibana (или агента New Relic).
  4. Настройка PHP-агента на сервере. Оптимизация параметров вроде transaction_sample_rate.
  5. Создание дашбордов и алертов. Отслеживание p95 response time, error rate, Apdex.
  6. Тестирование и калибровка. Проверка корректности данных и настройка уведомлений.

Мониторинг APM в Битрикс

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.

Детали overhead

При sample_rate=0.1 overhead составляет менее 1% по данным наших замеров на проектах с каталогами до 500 000 товаров. Для сайтов с менее 10 000 запросов в минуту можно устанавливать 0.5 без заметного влияния.

Агент автоматически перехватывает:

  • Входящие 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(); 

Какой APM выбрать: Elastic или New Relic?

Elastic APM — бесплатный, ставится на свой сервер, полный контроль над данными. New Relic — облачный, проще старт, но плата за каждый GB данных. Для небольших проектов (до 500 запросов/мин) Elastic APM часто хватает, для крупных с нагрузкой от 1000 запросов/с New Relic удобнее из-за встроенных алертов и интеграций. Мы помогаем выбрать и настроить любой вариант.

Параметр Elastic APM New Relic
Лицензия Open-source (Apache 2.0) Проприетарная, платная
Хостинг Self-hosted (требуется сервер) SaaS (облачный)
Сложность настройки Средняя (нужен опыт администрирования) Низкая (быстрый старт)
Контроль данных Полный Ограничен политикой вендора
Встроенные алерты Через Kibana Alerting Готовые шаблоны + интеграции

Почему важен transaction_sample_rate?

Это процент запросов, для которых собираются детальные трейсы. Значение 0.1 (10%) — золотая середина: низкий overhead, но достаточно данных для поиска медленных мест. Если установить 1.0, каждый запрос будет профилироваться — overhead станет заметным на высоких нагрузках. Мы подбираем sample_rate под вашу посещаемость и ресурсы сервера. Например, для сайта с 100 000 визитов в сутки sample_rate 0.1 даёт ~1 000 трейсов в минуту — статистически значимая выборка.

Ключевые метрики и алерты

После настройки в Kibana APM UI доступны:

  • Response time — среднее и 95-й перцентиль времени ответа по URL.
  • Throughput — запросов в минуту.
  • Error rate — процент запросов с ошибками.
  • Apdex — индекс удовлетворённости: соотношение быстрых (< T), терпимых (< 4T) и медленных запросов.

Алерты настраиваются в Kibana Alerting: если p95 response time превышает 3 секунды более 5 минут — уведомление в Slack или email. Для особо критичных страниц (корзина, оформление заказа) пороги снижаем до 1 секунды.

Сроки настройки

Этап Срок
Установка APM Server + Elasticsearch 1 день
Настройка PHP-агента, первые данные 2–4 часа
Настройка дашбордов и алертов 1 день
Тонкая настройка (sampling, кастомные span) 1–2 дня

Что входит в работу?

Мы предоставляем: полную документацию по архитектуре APM, инструкцию по поддержке, обучение вашего администратора работе с Kibana/New Relic, настройку уведомлений в корпоративном мессенджере. При необходимости — интеграцию с вашей системой мониторинга (Zabbix, Prometheus). Всё под ключ: от установки агента до запуска дашбордов. Свяжитесь для консультации — оценим ваш проект бесплатно.

Что говорят данные

Согласно документации Elastic APM PHP-агента, минимальный overhead агента составляет менее 1% при sample_rate 0.1 — это подтверждено нашими замерами на проектах с каталогами до 500 000 товаров.

Почему выбирают нас?

Более 5 лет занимаемся 1С-Битрикс и APM. За это время настроили мониторинг для 40+ проектов, включая каталоги с миллионами товаров и CRM с тысячами сделок в день. Опыт работы с Elastic APM, New Relic, Datadog. Работаем по договору с гарантией. Закажите настройку APM для вашего Битрикс-сайта — получите прозрачность производительности.

APM не заменяет профилирование — он показывает что деградирует и когда. Профилировщик объясняет почему. Но вместе они дают полный контроль. Получите консультацию — мы поможем подобрать оптимальное решение.