写点什么

MeilleursAgents 是如何监控分布式任务队列的

  • 2018-03-04
  • 本文字数:1106 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

MeilleursAgents 网站能够列出资产卖家的资产及其评估的价格,该网站分享了他们基于Celery 的分布式任务队列是如何监控的。由Python、StatsD、Bucky、Graphite 和Grafana 联合组成的管道能够监控任务的生命周期和执行率。

该文主要关注他们是如何监控Celery 运行的。 Celery 是一个由 Python 编写的分布式任务队列,它使用 broker- 客户端模式来分配任务给工作者(worker)。监控分布式任务队列是非常困难的,因为工作者节点是分布式的,很难跟踪特定请求的状态,如果跨多个系统的话,则会更加困难。但是,这种情况下的监控是关于整体成功 / 失败以及执行率的。每个阶段任务的累积数量,即已接收的(received)、已处理的(processed),也能反映出任务队列是否有速度减缓的情况。InfoQ 联系到了 MeilleursAgents 的工程主管 Pierre Boeuf 来学习这一话题。

指标收集管道包含 Python 客户端,它会监听 Celery 事件并使用 StatsD API 将数据推送至 StatsD 。然后,数据会被发送至 Bucky,Bucky 会将数据写入到 Graphite 中。 Bucky 会运行一个服务器,将传入的指标数据进行处理并转换成 Graphite 能够理解的格式。Bucky 所接收的指标可以是 StatsD 或 Collectd 这种指标工具所收集到的原始数据,如果 Graphite 无法理解传入的指标格式的话,那么 Bucky 就派上用场了。在 MeilleursAgents,Graphite 安装时使用了 Whisper 作为后端数据库。Boeuf 说团队在使用 Graphite 中还没有遇到扩展性方面的问题:

我们遇到的唯一扩展性相关的问题是因为将 StatsD 和 Graphite 放到了同一台服务器上。随着请求的增加,它出现了过载,所以我们现在在每台机器上都有本地 Bucky,它会推送指标数据。

Grafana 用来作为查询指标的前端。监控项包括任务、broker 以及工作者。按照 Boeuf 的说法,Web 和数据团队会使用仪表盘。

图片来源: https://medium.com/meilleursagents-engineering/how-we-monitor-asynchronous-tasks-da25728173d6?__s=6cjguhzuufdark8he4bm

他们组合使用 diffseries (在 Graphite 中,抽取时间序列的方式)和 Grafana着色(coloring)相关的配置可视化高亮显示可能存在的问题,比如红色背景代表某个应该为零的指标出现了非零的状况。 NewRelic Google Cloud Monitoring ,前者是一个外部工具,后者是产品所部署的云环境的一部分,这两个工具会负责告警部分。另外,NewRelic 还会监控 Celery 进程本身,确保它们处于运行状态。Grafana 也有内置的告警支持以及像 Pagerduty OpsGenie 这样的集成服务,但是团队并没有采用它们。

查看英文原文 Monitoring Distributed Task Queues at MeilleursAgents

2018-03-04 18:001648

评论

发布
暂无评论
发现更多内容

清华毕业大牛带你深入解析JVM,附五大实战技术文档,总计1024M

Geek_0c76c3

Java 数据库 开源 程序员 开发

初识Java,一个简单的自我介绍

六月暴雪飞梨花

Java 后端 10月月更

深度思考:到底什么是面向接口编程?

闫同学

10月月更

首版发布!2022年AlibabaJava中高级架构师面试手册(对标P5-P8)

Geek_0c76c3

Java 数据库 开源 程序员 开发

还是 “月饼” 后续,玩转炫彩 “月饼” 之 问题说明

矜辰所致

开发板 ESP32-C3 10月月更

推荐一个人工智能应用落地的应用

felix

公司刚来的阿里p8,看完我构建的springboot框架,甩给我一份文档

Geek_0c76c3

Java 数据库 开源 程序员 架构

史上最全Spring Cloud Alibaba全套笔记,嘎嘎顶

程序知音

Java 程序员 微服务 SpringCloud 后端技术

SQL优化思路+经典案例分析

程序知音

GitHub上惊现阿里大佬手记,这是真把微服务、容器和K8S讲清楚了

Geek_0c76c3

Java 开源 程序员 数据 开发

从0开始,用Go语言搭建一个简单的后端业务系统

闫同学

10月月更

一文搞懂MySQL中一条SQL语句是如何执行的

闫同学

10月月更

【C语言难点突破】动态内存知识详解

Geek_65222d

10月月更

“我学数学,是为了拯救公主!”

图灵社区

小说 数学 奇幻

阿里微服务架构到底多牛逼:深入解析Apache Dubbo与实战

Geek_0c76c3

Java 数据库 开源 程序员 架构

一文搞懂Go搭建Restful接口

闫同学

10月月更

深入浅出Docker容器数据卷

闫同学

10月月更

一文带你搞懂HTTP和RPC协议的异同

闫同学

10月月更

高并发系统简单玩!Alibaba全新出品亿级并发设计速成笔记真香

Geek_0c76c3

Java 数据库 开源 程序员 开发

“我学数学,是为了拯救公主!”

图灵教育

小说 数学 奇幻

深度思考:为什么需要泛型?

闫同学

10月月更

一文搞懂SaaS、PaaS、IaaS的概念和异同

闫同学

10月月更

腾讯Offer已拿,这99道算法高频面试题别漏了,80%都败在算法上

Geek_0c76c3

Java 数据库 开源 程序员 架构

完美!首份把架构三原则拆开来讲的“架构师宝典”,电子版已上线

Geek_0c76c3

Java 数据库 开源 程序员 开发

探索云原生之“翻译翻译,什么是云原生”

闫同学

10月月更

我是如何学习一门新技术的

闫同学

10月月更

面试突击88:加入事务和嵌套事务有什么区别?

王磊

Java 面试

GitHub无抗手!MySQL DBA攻坚指南一出,阿里数据库专家都解脱了

Geek_0c76c3

Java 数据库 开源 程序员 开发

毕业季,说一说自己从学生初入职场的感受

闫同学

10月月更

黑幕!阿里P8爆出学透这份算法面试文档,不再怕任何大厂算法题

Geek_0c76c3

Java 数据库 开源 程序员 开发

一文搞懂从浏览器输入一个URL到页面出现都经历了哪些过程

闫同学

10月月更

MeilleursAgents是如何监控分布式任务队列的_DevOps & 平台工程_Hrishikesh Barua_InfoQ精选文章