Реалізація дашборда статистики парсингу
Дашборд статистики парсингу моніторить здоров'я системи збору даних. Показує: успішні запити, блокування, швидкість на джерело, зміни ефективності у часі.
Ключові метрики
| Метрика | Опис |
|---|---|
| Success Rate | % успішних запитів за період |
| Requests/min | Швидкість обходу |
| Items/hour | Швидкість збору даних |
| Error Rate | % помилок 4xx/5xx |
| Proxy Health | % робочих прокси у пулі |
| Queue Depth | Довжина черги URL |
| Avg Response Time | Середнє час відповіді джерела |
Зберігання метрик
Спеціалізовані інструменти ефективніше PostgreSQL для часових рядів:
# TimescaleDB (розширення PostgreSQL)
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');
Grafana Dashboard
{
"dashboard": {
"title": "Scraper Health",
"panels": [
{
"title": "Success Rate %",
"targets": [{
"expr": "rate(scraper_requests_ok[1m]) / (rate(scraper_requests_ok[1m]) + rate(scraper_requests_fail[1m])) * 100"
}]
},
{
"title": "Queue Depth",
"targets": [{
"expr": "scraper_queue_depth"
}]
}
]
}
}
Сигнали
- alert: HighErrorRate
expr: rate(scraper_requests_fail[5m]) / rate(scraper_requests_total[5m]) > 0.1
for: 10m
annotations:
summary: "Scraper {{ $labels.scraper_id }} error rate high"
- alert: ProxyPoolDepleted
expr: scraper_proxy_health < 0.3
annotations:
summary: "Less than 30% proxies working"
Часова шкала
Базовий збір метрик—2–3 дні. Дашборд з сигналами—3–5 днів.







