Зауважте: коли ваш парсинг обробляє мільйони запитів на день, без дашборда ви сліпі. Помилки накопичуються, проксі падають, а ви дізнаєтеся про це через годину. Дашборд статистики парсингу вирішує: бачити здоров'я системи в реальному часі, реагувати на збої за хвилини, оптимізувати швидкість збору. Ми розробляємо такі дашборди під ключ з урахуванням ваших джерел даних та інфраструктури. Більше 5 років на ринку, 50+ успішних проєктів — наш досвід гарантує стабільність. Оцінимо ваш проєкт за 1 день. Замовте консультацію, щоб обговорити вашу задачу.
Ключові метрики
| Метрика | Опис |
|---|---|
| Success Rate | % успішних запитів за період |
| Requests/min | Швидкість обходу (requests per minute) |
| Items/hour | Швидкість збору даних |
| Error Rate | % запитів із помилками 4xx/5xx |
| Proxy Health | % робочих проксі в пулі |
| Queue Depth | Довжина черги URL для обходу |
| Avg Response Time | Середній час відповіді джерела |
Рішення проблеми падіння проксі
Уявіть: пул із 200 проксі, 15% з них періодично відвалюються. Без моніторингу ви втрачаєте до 30% пропускної здатності. Ми вбудовуємо в дашборд метрику Proxy Health: якщо її значення падає нижче 95%, алерт надсилається в Telegram. Аналітика показує, що середній час відновлення скорочується з 40 до 8 хвилин. Додатково ми налаштовуємо автоматичну ротацію проксі: при падінні health нижче порогу проксі виключається з пулу, а його навантаження перерозподіляється на робочі адреси. Це знижує кількість втрачених запитів на 20%. Ми також відстежуємо час відповіді та помилки по кожному проксі, що дозволяє точково замінювати проблемні IP. У нещодавньому проєкті для агрегатора електронної комерції це знизило загальний рівень помилок з 12% до 3.5% за перший тиждень. Зв'яжіться з нашими інженерами для обговорення ваших метрик.
Які метрики критично важливі для моніторингу парсингу?
Із набору метрик особливу увагу варто приділити Success Rate та Proxy Health. Success Rate показує частку успішних відповідей — якщо він падає нижче 90%, значить джерело блокує запити або проксі перевантажені. Proxy Health відстежує працездатність кожного проксі: якщо health падає, система автоматично виключає проксі з ротації. Також важливий Avg Response Time — різке зростання часто сигналізує про проблеми з мережею або перевантаження цільового сервера. Ми рекомендуємо налаштовувати дашборд так, щоб усі три метрики відображалися на головному екрані.
Чому TimescaleDB підходить для метрик парсингу?
Для часових рядів спеціалізовані інструменти ефективніші за стандартний PostgreSQL. TimescaleDB — це розширення PostgreSQL з автоматичним партиціонуванням за часом. Запити на тижневі або місячні зрізи виконуються швидко навіть при 10 млн рядків. В одному проєкті ми зберігали 500 млн записів — агрегація займала менше 2 секунд. Крім того, TimescaleDB підтримує стиснення даних, що скорочує об'єм сховища в 5–10 разів без втрати продуктивності.
# TimescaleDB (розширення PostgreSQL)
import psycopg2
CREATE TABLE scraper_metrics (
time TIMESTAMPTZ NOT NULL DEFAULT NOW(),
scraper_id INTEGER,
requests_ok INTEGER DEFAULT 0,
requests_fail INTEGER DEFAULT 0,
items_scraped INTEGER DEFAULT 0,
avg_resp_ms FLOAT,
proxy_used TEXT
);
SELECT create_hypertable('scraper_metrics', 'time');
CREATE INDEX ON scraper_metrics (scraper_id, time DESC);
API для дашборду
@app.get('/api/v1/stats/overview')
async def get_overview(scraper_id: int, period: str = '24h'):
interval = {'1h': '1 hour', '24h': '24 hours', '7d': '7 days'}[period]
rows = await db.fetch(f'''
SELECT
time_bucket('5 minutes', time) AS bucket,
SUM(requests_ok) AS ok,
SUM(requests_fail) AS fail,
SUM(items_scraped) AS items,
AVG(avg_resp_ms) AS avg_ms
FROM scraper_metrics
WHERE scraper_id = $1
AND time > NOW() - INTERVAL '{interval}'
GROUP BY bucket
ORDER BY bucket
''', scraper_id)
return {
'timeline': [dict(r) for r in rows],
'totals': {
'requests': sum(r['ok'] + r['fail'] for r in rows),
'success_rate': sum(r['ok'] for r in rows) / max(sum(r['ok'] + r['fail'] for r in rows), 1),
'items': sum(r['items'] for r in rows),
}
}
Візуалізація
import { LineChart, Line, XAxis, YAxis, Tooltip, ResponsiveContainer } from 'recharts';
function MetricsChart({ data }: { data: TimelinePoint[] }) {
return (
<ResponsiveContainer width="100%" height={300}>
<LineChart data={data}>
<XAxis dataKey="bucket" tickFormatter={d => format(new Date(d), 'HH:mm')} />
<YAxis />
<Tooltip />
<Line dataKey="ok" stroke="#22c55e" name="Успішних" strokeWidth={2} dot={false} />
<Line dataKey="fail" stroke="#ef4444" name="Помилок" strokeWidth={2} dot={false} />
</LineChart>
</ResponsiveContainer>
);
}
Алерти
Приклад налаштування алерту
Threshold success rate < 80% — automatic notification to Telegram with details: which proxy or source failed. Configured for your scenarios. For example, you can set different thresholds for different sources or add escalation via email for repeated failures.
Порівняння сховищ метрик
| Сховище | Продуктивність | Складність | Підходить для |
|---|---|---|---|
| TimescaleDB | Висока (автопартиціонування) | Середня | Часові ряди, до 10 млн рядків/день |
| InfluxDB | Дуже висока | Вища (окремий стек) | Надвеликі об'єми |
| PostgreSQL | Низька (без розширень) | Низька | Малі об'єми |
Як ми будуємо дашборд: процес роботи
- Аналітика — вивчаємо ваші джерела даних і вимоги до метрик. Визначаємо критичні KPI. Оцінюємо об'єм даних і частоту оновлення. Проводимо інтерв'ю з вашою командою, щоб виявити вузькі місця.
- Проєктування схеми — обираємо інструменти (TimescaleDB, FastAPI, React). Проєктуємо структуру таблиць та API-ендпоінтів. Враховуємо майбутнє масштабування.
- Реалізація API — пишемо бекенд для збору та агрегації метрик. Обробляємо до 10 000 запитів на секунду. Використовуємо асинхронні воркери для мінімізації затримок.
- Фронтенд — розробляємо інтерфейс з графіками та алертами. Використовуємо Recharts для інтерактивних графіків. Додаємо фільтри за часом та scraper_id.
- Тестування — перевіряємо на навантаженні до 1000 запитів/сек. Виправляємо вузькі місця. Проводимо UAT з вашою командою.
- Деплой — розгортаємо на вашому сервері або хмарі. Налаштовуємо моніторинг самого дашборду. Даємо інструкції з експлуатації.
Що входить в роботу
- Документація API у форматі OpenAPI
- Вихідний код дашборду (бекенд та фронтенд)
- Інструкція з розгортання
- Навчання команди (до 2 годин)
- Гарантія на код 3 місяці
Строки
Дашборд з TimescaleDB, REST API та React-візуалізацією: 5–8 робочих днів. Оцінимо ваш проєкт за 1 день. Зв'яжіться з нами для консультації — запропонуємо архітектуру під ваше навантаження. Замовте оцінку прямо зараз, щоб отримати індивідуальну пропозицію. Отримайте індивідуальний кошторис за 1 день — надішліть заявку.







