Реализация дашборда статистики парсинга (успехи, ошибки, скорость)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Реализация дашборда статистики парсинга (успехи, ошибки, скорость)
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Реализация дашборда статистики парсинга (успехи, ошибки, скорость)

Дашборд статистики парсинга — инструмент мониторинга здоровья системы сбора данных. Показывает: сколько запросов успешно обработано, где возникают блокировки, насколько быстро работает каждый источник, как меняется эффективность во времени.

Ключевые метрики

Метрика Описание
Success Rate % успешных запросов за период
Requests/min Скорость обхода (requests per minute)
Items/hour Скорость сбора данных
Error Rate % запросов с ошибками 4xx/5xx
Proxy Health % рабочих прокси в пуле
Queue Depth Длина очереди URL для обхода
Avg Response Time Среднее время ответа источника

Хранение метрик

Для временных рядов — специализированные инструменты эффективнее PostgreSQL:

# 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);

TimescaleDB автоматически партиционирует данные по времени — запросы на недельные/месячные срезы работают быстро даже при миллионах строк.

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>
  );
}

Алерты

Порог success rate < 80% — автоматическое уведомление в Telegram с деталями: какой прокси/источник упал.

Сроки

Дашборд с TimescaleDB, REST API и React-визуализацией: 5–8 рабочих дней.