抓取监控看板:统计数据、成功率监控

📂 所属阶段:第六阶段 — 运维与监控(工程化篇)


1. 监控指标

class MonitoringPipeline:
    def __init__(self):
        self.stats = {
            'total_items': 0,
            'success_items': 0,
            'failed_items': 0,
            'start_time': time.time(),
        }
    
    def process_item(self, item, spider):
        self.stats['total_items'] += 1
        if self.validate(item):
            self.stats['success_items'] += 1
        else:
            self.stats['failed_items'] += 1
        return item
    
    def close_spider(self, spider):
        elapsed = time.time() - self.stats['start_time']
        success_rate = self.stats['success_items'] / self.stats['total_items']
        spider.logger.info(f"Success rate: {success_rate:.2%}")
        spider.logger.info(f"Elapsed: {elapsed:.2f}s")

2. 可视化看板

# 使用 Grafana + Prometheus
# 或 ELK Stack 进行监控

# 关键指标:
# - 爬取速度(items/s)
# - 成功率(%)
# - 错误率(%)
# - 内存占用(MB)
# - CPU 占用(%)

3. 小结

监控的好处:

1. 实时掌握爬虫状态
2. 及时发现问题
3. 优化爬虫性能
4. 预测资源需求

关键指标:
- 吞吐量:items/s
- 成功率:%
- 错误率:%
- 资源占用:CPU、内存

💡 记住:监控是运维的眼睛。没有监控,你就是盲人。


🔗 扩展阅读