CrawlerMonitor

UPDATE: 2020.4.14

Introduction

本项目在 Celery 分布式爬虫的基础上构建监控方案 Demo,在编写 Statsd + InfluxDB 方案代码进行调研过程中,转向了 Prometheus 的怀抱 ,使用 Grafana 对监控序列进行可视化,爬虫部分目前只完成对下载和解析进行简单解耦,反爬部分和代码结构优化等后续会陆续进行完善。

QuickStart

本项目环境为 Ubuntu 16.04 LTS 以及使用 Python 3.6.5 (Anaconda), 安装执行流程默认适配上述环境,具体各部分安装配置请移步 快速安装,其中包括 RabbitMQ、MongoDB、Python 相关库、 Celery (推荐使用 4.1.1 版本)、Prometheus、Grafana 等安装配置,操作启动控制请参考 快速启动,可分为手动启动和后台运行。后续会考虑 docker 容器化。启动三个实例 worker 跑了几分钟,从 MongoDB 导出的几千条 Json 数据 此处 。

FlowChart

简单画个流程图:

Metrics

通过调研发现,在statsd 和 prometheus 的客户端均有对 metrics 的实现,后者在类型上支持较为丰富一点,这里使用 prometheus metrics 在 task 和 worker 层面设计监控指标,其设计如下表,并采用 worker,task,results 三个主要标签维度进行合理划分,各个类型 metric 的定义和使用详细可见 Prometheus官网 以及对应的 Python 客户端。

Type

Name

Worker

Task

Results

Gauge

workers_state

Counter

workers_processed

Gauge

workers_active

Counter

tasks_counter

Summary

tasks_runtime

Info

tasks_info

这里只涉及任务和工作单元层面,爬虫异常层面仍需进一步设计指标

ScreenShot

Grafana 监控界面 Dashboard 模板

获取 Dashboard 模板: 直接在 Grafana 里 import 粘贴 https://grafana.com/dashboards/9970/ 即可。

TODO-LIST

python分布式框架celery项目开发_本项目在 Celery 分布式爬虫的基础上构建监控方案 Demo...相关推荐

  1. Python+Django框架Web应用开发-欧阳桫-专题视频课程

    Python+Django框架Web应用开发-237人已学习 课程介绍         系统介绍使用Django框架开发Web应用程序,当然,依然水煮风格 课程收益     掌握Django框架的使用 ...

  2. 粒子群优化算法分布式电源选址定容 matlab源代码,分析了分布式电源接入配电网前后对网络损耗的影响,在此基础上提出采用混合模拟退火算法的改进粒子群优化算法进行分布式电源选址和定代码按照高水平文章复现

    (1)粒子群优化算法分布式电源选址定容 如图12 matlab源代码,代码按照高水平文章复现,保证正确 分析了分布式电源接入配电网前后对网络损耗的影响,在此基础上提出采用混合模拟退火算法的改进粒子群优 ...

  3. python全栈开发下载_网易云课堂Python Flask框架全栈开发,全套视频教程学习资料通过百度云网盘下载...

    适用人群 1.想使用Python快速开发网站的. 2.前端开发者,想学习后端开发逻辑的. 3.有编程经验,想学习Flask的. 课程概述 本套课程的目标是从零基础开始,使用Flask框架开发企业级的项 ...

  4. python开发商城实战视频_商城项目实战_商城项目实战教程_商城项目实战视频教程 _课课家...

    本套餐将包括两个重磅性的课程与一个赠送学习的课程,分别为SpringBoot实战视频教程与RabbitMQ实战教程跟SSM整合开发之poi导入导出Excel.目的是为了让各位小伙伴可以从零基础一步一个 ...

  5. 网易云课堂Python Flask框架全栈开发(200课全)

    适用人群 1.想使用Python快速开发网站的. 2.前端开发者,想学习后端开发逻辑的. 3.有编程经验,想学习Flask的. 课程概述 本套课程的目标是从零基础开始,使用Flask框架开发企业级的项 ...

  6. 最新网易云课堂Python Flask框架全栈开发(完整版)

    适用人群 1.想使用Python快速开发网站的. 2.前端开发者,想学习后端开发逻辑的. 3.有编程经验,想学习Flask的. 课程概述 本套课程的目标是从零基础开始,使用Flask框架开发企业级的项 ...

  7. 最新网易云课堂Python Flask框架全栈开发

    适用人群 1.想使用Python快速开发网站的. 2.前端开发者,想学习后端开发逻辑的. 3.有编程经验,想学习Flask的. 课程概述 本套课程的目标是从零基础开始,使用Flask框架开发企业级的项 ...

  8. 2018最新网易云课堂Python Flask框架全栈开发

    适用人群 1.想使用Python快速开发网站的. 2.前端开发者,想学习后端开发逻辑的. 3.有编程经验,想学习Flask的. 课程概述 本套课程的目标是从零基础开始,使用Flask框架开发企业级的项 ...

  9. 最新网易云课堂Python Flask框架全栈开发(完整)

    适用人群 1.想使用Python快速开发网站的. 2.前端开发者,想学习后端开发逻辑的. 3.有编程经验,想学习Flask的. 课程概述 本套课程的目标是从零基础开始,使用Flask框架开发企业级的项 ...

最新文章

  1. Go 知识点(08) — 对未初始化的 channel 进行读写操作
  2. 今天开始记录自己苹果开发博客旅程!~
  3. libevent多线程
  4. dwcs6连接不上access数据库_dw连接access数据库步骤
  5. ros 安装c++编译的可执行文件
  6. SAP License:SAP HANA CLOUD MM 实施的坑
  7. 很多人都忽视了账号基建重要性
  8. Java 多线程 4:wait() 和 notify()/notifyAll()
  9. Mozilla 修复已遭利用的两个火狐浏览器 0day
  10. Linux下screen的简单介绍
  11. 大数据统计分析架构-netty部分
  12. 蓝桥杯 人民币金额大写 格式转换
  13. Minimum supported Gradle version is 4.10.1. Current version is 4.6.
  14. java毕业设计培训学校教学管理平台源码+lw文档+mybatis+系统+mysql数据库+调试
  15. 微信商户号 API 密钥、API 证书配置
  16. 互联网创业公司常见失败原因是什么?
  17. 【蓝桥杯】——七段数码管的运用
  18. 转换工具推荐:如何将PDF文档转换为PPT演示文稿
  19. AtCoder Beginner Contest 285解题报告
  20. Java课程设计——象棋(201521123042 姚佳希)

热门文章

  1. 【Kafka】kafka Java api 获取 kafka topic 或者 partition 占用的磁盘大小
  2. 【Java】优雅停机时的一点思考
  3. 83-spark2.2的DataFrame使用以及以前版本SqlContext的隐式引用
  4. 95-230-026-源码-WordCount走读-本地运行SubmitJob的过程
  5. 【JVM】JVM 调优之 -XX 参数
  6. Mac下安装MySQL 5.7.28并且修改root密码
  7. mac下flink集群安装
  8. mac下antlr4命令使用
  9. 【Hbase】HBase数据快速导入之ImportTsv
  10. 这一次搞懂 Spring 的 Bean 实例化原理