速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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:001283

评论

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

ORACLE进阶(一) 通过EXPDP IMPDP命令实现导dmp

No Silver Bullet

oracle DMP 7月月更

设计电商秒杀系统

大眼喵

「架构实战营」

OpenHarmony应用开发之ETS开发方式中的Image组件

坚果

HarmonyOS Open Harmony OpenHarmony 3.1 Release 7月月更 harmony

SpingCloud集成zookeeper实现服务注册并访问

AI乔治

Python|函数和模块

AXYZdong

7月月更

x86汇编语言-从实模式到保护模式 笔记

贾献华

7月月更

远程办公之大家一同实现合作编辑资料和开发文档 | 社区征文

Tech技术攻关

远程办公 协同办公 7月日更 初夏征文

毕业总结

大眼喵

「架构实战营」

rxjs Observable filter Operator 的实现原理介绍

汪子熙

typescript 响应式编程 angular RXJS 7月月更

项目协作的进度如何推进| 社区征文

卢卡多多

初夏征文

聊聊支付流程的设计与实现逻辑

Java 架构

模块九作业

天琪实刚亮

毕业总结

天琪实刚亮

NFT新的契机,多媒体NFT聚合平台OKALEIDO即将上线

西柚子

NFT新的契机,多媒体NFT聚合平台OKALEIDO即将上线

小哈区块

Python 入门指南之开胃菜

海拥(haiyong.site)

7月月更

自动渗透测试工具核心功能简述

穿过生命散发芬芳

渗透测试 7月月更

TOGAF认证自学宝典V2.0

涛哥 数字产品和业务架构

企业架构 TOGAF

远程办公工具分享|社区征文

如浴春风

初夏征文

架构实战营 - 第 6 期 毕业总结

乐邦

「架构实战营」

远程办公之如何推进跨部门项目协作 | 社区征文

Tech技术攻关

远程办公 7月日更 项目协调 初夏征文 工作协调

【LeetCode】在每个树行中找最大值Java题解

Albert

LeetCode 7月月更

聊聊Flink框架中的状态管理机制

百思不得小赵

大数据 flink 状态 7月月更

cgroup简介

总想做点什么

Cgroups

Vuex(二)

小恺

7月月更

「Docker 那些事儿」还不会安装Docker?建议看这篇就够了

Albert Edison

7月月更

一入“远程”终不悔,几人欢喜几人愁。| 社区征文

法医

初夏征文

Jenkins抛弃Java 8拥抱Java 11

FunTester

深入理解 SQL 中的 Grouping Sets 语句

元闰子

sql spark spark SQL

疫情常态化大背景下,关于远程办公的思考|社区征文

如浴春风

初夏征文

TCP拥塞控制详解 | 3. 设计空间

俞凡

算法 网络 TCP拥塞控制

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