Налаштування Synthetic Monitoring (регулярні перевірки критичних шляхів)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

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

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

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування Synthetic Monitoring (регулярні перевірки критичних шляхів)
Середня
~2-3 робочих дні
Часті питання

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

Етапи розробки

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

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

Налаштування Synthetic Monitoring (регулярні перевірки критичних шляхів)

Synthetic Monitoring — імітація дій реального користувача за розписанням. Скрипт відкриває браузер, проходить через сценарій (наприклад, оформлення замовлення), та записує: працює ли кожен крок, скільки часу займає, де з'явилися помилки? Це виявляє проблеми до того, як їх помітять користувачі.

Різниця від uptime моніторингу

Простий ping на GET / — це не synthetic monitoring. Він перевіряє, що сервер відповідає. Synthetic monitoring перевіряє, що бізнес-функції працюють:

  • Користувач може зареєструватися
  • Пошук повертає результати
  • Додавання в кошик працює
  • Платіжна форма відкривається

Критичні шляхи для моніторингу

Пріоритет — шляхи, від яких залежить виручка та утримання:

E-commerce:

  1. Пошук товару → сторінка товару → додати в кошик → почати оформлення
  2. Логін → особистий кабінет → історія замовлень
  3. Реєстрація нового користувача

SaaS програма:

  1. Логін → дашборд → ключова функція
  2. Створення нового об'єкту (проект/документ/задача)
  3. API ендпоінти (для B2B клієнтів)

Контент-сайт:

  1. Пошук → результати → стаття
  2. Форма підписки на розсилку
  3. Форма зворотного зв'язку

Playwright-based synthetic monitoring з Checkly

// checkly: checkout-flow.spec.js
const { chromium } = require('playwright')
const { expect } = require('@playwright/test')

async function checkoutFlow() {
  const browser = await chromium.launch()
  const page = await browser.newPage()

  try {
    // Крок 1: Відкрити каталог
    await page.goto('https://example.com/catalog')
    await expect(page.locator('.product-grid')).toBeVisible()

    // Крок 2: Відкрити перший товар
    await page.locator('.product-card').first().click()
    await expect(page.locator('[data-testid="product-title"]')).toBeVisible()

    // Крок 3: Додати в кошик
    await page.locator('[data-testid="add-to-cart"]').click()
    await expect(page.locator('[data-testid="cart-count"]')).toContainText('1')

    // Крок 4: Перейти в кошик
    await page.goto('https://example.com/cart')
    await expect(page.locator('.cart-items')).toContainText('1 товар')

    console.log('Checkout flow: PASS')
  } finally {
    await browser.close()
  }
}

Datadog Synthetic Tests

# Створити Synthetic Browser Test через API
import requests

test_config = {
    "name": "Checkout Flow - Production",
    "type": "browser",
    "config": {
        "request": {
            "url": "https://example.com",
            "method": "GET"
        }
    },
    "options": {
        "tick_every": 300,  # Кожні 5 хвилин
        "min_failure_duration": 120,
        "min_location_failed": 2,
        "retry": {"count": 2, "interval": 300}
    },
    "locations": [
        "aws:eu-west-1",
        "aws:us-east-1",
        "aws:ap-northeast-1"
    ],
    "status": "live",
    "tags": ["team:frontend", "env:production"]
}

requests.post(
    "https://api.datadoghq.com/api/v1/synthetics/tests/browser",
    headers={"DD-API-KEY": API_KEY, "DD-APPLICATION-KEY": APP_KEY},
    json=test_config
)

Playwright + GitHub Actions: self-hosted synthetic monitoring

Для мінімального бюджету — GitHub Actions Cron:

# .github/workflows/synthetic-monitoring.yml
name: Synthetic Monitoring

on:
  schedule:
    - cron: '*/5 * * * *'  # Кожні 5 хвилин
  workflow_dispatch:

jobs:
  check-critical-paths:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Playwright
        run: npx playwright install chromium

      - name: Run synthetic checks
        env:
          APP_URL: ${{ vars.PRODUCTION_URL }}
          TEST_USER_EMAIL: ${{ secrets.SYNTHETIC_USER_EMAIL }}
          TEST_USER_PASSWORD: ${{ secrets.SYNTHETIC_USER_PASSWORD }}
        run: npx playwright test tests/synthetic/

      - name: Notify on failure
        if: failure()
        run: |
          curl -X POST "$SLACK_WEBHOOK" \
            -d '{"text": "Synthetic monitoring FAILED: checkout flow"}'
        env:
          SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}

Обмеження: GitHub Actions Cron не гарантує точний час запуску — затримка до 5-15 хвилин. Для точного 1-хвилинного моніторингу потрібен managed сервіс.

Управління тестовими даними

Синтетичні тести потребують тестові аккаунти та дані:

  • Окремий [email protected] користувач з production-аккаунтом
  • Платіжний метод: тестова карта Stripe (4242 4242 4242 4242)
  • Замовлення від синтетичного користувача позначати тегом, виключати з бізнес-аналітики
  • Регулярно очищувати тестові дані (кошик, чорновики)

Метрики та алерти

Ключові метрики synthetic monitoring:

  • Availability % — відсоток успішних запусків
  • Step duration — час кожного кроку окремо
  • Total flow duration — загальний час сценарію
  • First failure step — на якому кроці сломалось

Алерт: якщо 2 з 3 перевірок з різних регіонів завершилися помилкою → critical alert у PagerDuty.

Часовий графік

  • Checkly / Datadog Synthetic (managed) — 2-3 дні на сценарії
  • GitHub Actions cron + Playwright — 2-3 дні
  • Тестові аккаунти + очистка даних — 1 день
  • Алерти + інтеграція з управлінням інцидентами — 1 день