Налаштування APM: моніторинг продуктивності сайту та додатків

Уявіть: сайт гальмує, користувачі скаржаться, а ви не розумієте, у чому справа. Стандартні логи та метрики сервера не показують, який саме SQL-запит виконується 3 секунди або чому контролер зависає на 2 секунди. **APM** (Application Performance Monitoring) вирішує цю проблему — він відстежує продукт

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Налаштування APM: моніторинг продуктивності сайту та додатків
Складний
~3-5 днів

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1422
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1287
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    984
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1250
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    986
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1000

Уявіть: сайт гальмує, користувачі скаржаться, а ви не розумієте, у чому справа. Стандартні логи та метрики сервера не показують, який саме SQL-запит виконується 3 секунди або чому контролер зависає на 2 секунди. APM (Application Performance Monitoring) вирішує цю проблему — він відстежує продуктивність на рівні коду. В одному з проєктів на Laravel ми виявили, що повільний запит до таблиці orders займав 3.2 секунди через відсутність індексу. APM показав це через 5 хвилин після встановлення. Ми налаштовуємо APM, щоб ви бачили повну картину: від HTTP-запиту до відповіді бази даних. APM дає відповіді на питання: який ендпоінт найповільніший? яка функція жере процесор? де відбувається витік пам'яті? З APM ви не гадаєте — ви знаєте. Наш досвід включає впровадження для 20+ проєктів із навантаженням до 1 млн запитів на день — 5+ років на ринку.

Які проблеми вирішує APM?

  • Повільні SQL-запити. Один неоптимізований запит може додавати секунди до часу відповіді. APM показує повний стек викликів і час виконання кожного запиту.
  • N+1 запити ORM. Типова проблема Laravel і Django: цикл по колекції породжує сотні запитів до бази. Трасування виявляють це миттєво.
  • Вузькі місця в коді. Flamegraph профілювання показує, яка функція споживає найбільше процесора або пам'яті.
  • Помилки та винятки. APM автоматично збирає stack trace і пов'язує з конкретним запитом.

Як працює трасування запитів?

Кожен вхідний HTTP-запит отримує унікальний ідентифікатор (trace ID). На кожному етапі — контролер, сервіс, ORM, SQL, Redis — створюються спани. Спани містять час початку, тривалість, статус та атрибути (наприклад, SQL-текст). Всі спани об'єднуються в трасування, яке візуалізується як waterfall-діаграма. Ми використовуємо семплювання (10–20% запитів), щоб не перевантажувати продакшен.

Які метрики продуктивності контролювати?

Ключові метрики для оцінки якості роботи додатку:

Метрика Цільове значення Опис
p95 latency < 500 мс Час відповіді для 95% запитів
Error rate < 0.1% Частка запитів із помилками
Apdex > 0.95 Частка швидких запитів

Ці SLO-метрики допомагають об'єктивно оцінити, як додаток справляється з навантаженням.

Чому OpenTelemetry — найкращий вибір?

OpenTelemetry — це вендор-нейтральний стандарт збору трасувань і метрик. Один SDK відправляє дані в будь-яку APM-систему: Jaeger, Zipkin, Datadog, New Relic, Grafana Tempo. Ви не залежите від одного вендора і можете змінити бекенд без переписування коду.

// bootstrap/telemetry.php use OpenTelemetry\API\Globals; use OpenTelemetry\SDK\Trace\TracerProviderFactory; use OpenTelemetry\Contrib\Otlp\OtlpHttpSpanExporter; $exporter = OtlpHttpSpanExporter::fromConnectionString( 'http://otel-collector:4318', 'myapp', '1.0.0' ); $tracerProvider = (new TracerProviderFactory())->create($exporter); Globals::registerInitializer(fn() => $tracerProvider); 

Ми підключаємо middleware для трасування HTTP-запитів і слухачі для SQL-запитів. Все це працює без зміни бізнес-логіки.

import { NodeSDK } from '@opentelemetry/sdk-node'; import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'; import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'; const sdk = new NodeSDK({ resource: new Resource({ 'service.name': 'myapp-api', 'service.version': process.env.APP_VERSION || '1.0.0', }), traceExporter: new OTLPTraceExporter({ url: 'http://otel-collector:4318/v1/traces', }), instrumentations: [getNodeAutoInstrumentations({ '@opentelemetry/instrumentation-express': { enabled: true }, '@opentelemetry/instrumentation-pg': { enabled: true }, '@opentelemetry/instrumentation-redis': { enabled: true }, })], }); sdk.start(); 

Гарантуємо, що інструментація не впливає на продуктивність продакшену — ми використовуємо семплювання (наприклад, 10% запитів).

Що входить у налаштування APM?

  1. Аналіз інфраструктури — визначаємо точки збору даних: HTTP, SQL, Redis, черги.
  2. Встановлення OpenTelemetry SDK — налаштування для вашого стеку (PHP, Node.js, Python, Go).
  3. Інтеграція з бекендом — підключення Grafana Tempo, Sentry Performance або іншого інструменту.
  4. Створення дашбордів — візуалізація latency, error rate, Apdex, SLO.
  5. Налаштування алертів — сповіщення при перевищенні порогів (p95 > 1 с, error rate > 1%).
  6. Документація та навчання — опис архітектури збору та інструкції для команди.

Строки реалізації

Задача Строк
Sentry Performance (швидкий старт) 0.5 дня
OpenTelemetry + Grafana Tempo (self-hosted) 3–4 дні
Datadog/New Relic APM 1–2 дні
Повна інструментація (HTTP + DB + Redis + черги) 2–3 дні
SLO дашборди та алерти +1–2 дні

Вартість розраховується індивідуально залежно від складності. Ми оцінюємо проєкт безкоштовно.

Чому варто впровадити APM?

Без APM ви витрачаєте години на пошук вузьких місць. З ним — отримуєте готові дашборди та алерти за кілька днів. APM скорочує час пошуку вузьких місць у 10 разів порівняно з ручним аналізом логів. Наш досвід впровадження включає проєкти з високим навантаженням (мільйони запитів на день). Ми гарантуємо, що налаштування прозоре і не вимагає змін у бізнес-логіці. APM окупається за рахунок скорочення часу на налагодження та підвищення стабільності додатку.

Зв'яжіться з нами, щоб ми оцінили ваш проєкт. Замовте налаштування APM під ключ — отримайте повний контроль над продуктивністю. Отримайте консультацію з налаштування APM для вашого проєкту — ми оцінимо складність і запропонуємо оптимальне рішення.