Налаштування 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
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • 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 не замінює профілювання — він показує що деградує та коли. Профілювальник пояснює чому. Але разом вони дають повний контроль. Отримайте консультацію — ми допоможемо підібрати оптимальне рішення.