写点什么

Crisp 是如何实现可扩展微服务监控的

  • 2018-03-29
  • 本文字数:1214 字

    阅读完需:约 4 分钟

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

Crisp 的工程团队分享了他们在监控微服务技术栈方面的经验。他们开源了使用Rust 编写的Vigil 监控项目,该项目是一组拉取/ 推送的探针,用于为多种语言收集健康数据,它包含了一个状态仪表盘并且能够与其他外部告警工具集成。

Crisp 为 Web 站点提供了实时的方案。Crisp 的监控工具,名为 Vigil,包含了探针和一个仪表盘,该仪表盘能够展现探针所收集的各种微服务的状态。Vigil 的探针分为两类:轮询(poll)和推送(push)。轮询探针会阶段性地通过TCP 或HTTP 轮询服务,并基于给定的预期值检查响应内容和响应时间。推送探针通过集成微服务的源码来实现,它会在服务进程内阶段性地发送状态信息给Vigil。这种模式在监控系统中是很常见的,大多数系统这两种方式都支持,只是会加关注其中的某一种。Vigil 是使用 Rust 编写的,在开源之前已经作为内部项目运行好几年了。

Crisp 每月会提供超多 10 亿次的请求。它们的后端有 40 多个不同的微服务,大多数都不是 HTTP 的。服务间的通信通过 RabbitMQ 来实现。有一些基于 HTTP 的微服务,如 REST API,会位于负载均衡器之后。另外,还有大约 20 个守护进程,如 Postfix 和 MongoDB。

每个微服务都会在多个节点上运行,每个节点会通过 replica 标识符来进行标识。节点的状态可以通过仪表盘来获取,可以查看该节点的状态是健康、病态(sick)还是已经死亡(dead)。在判断服务节点处于“病态”时,在两种模型中,分别按照不同的方式来确定,在推送模型中,是因为所报告的系统负载(CPU 或 RAM)超过了一个阈值,而在轮询模型中,则是因为服务的响应消耗了太多的时间。服务的死亡状态表明它可能已经宕机了。

InfoQ 采访了 Crisp 的 CTO Valerian Saliou,以了解 Vigil 如何进行内部和外部监控的更多信息:

当 Web 节点中的某一个节点宕机时,如果微服务节点是按照推送模式监控的话,我们马上就会知道,因为这意味着节点停机后,它就不会发送报告了,Vigil 将会自动触发一个“Down”提醒到 Slack,然后会显示到公开的状态页中,并且会精确定位宕机的节点。

Saliou 说到,对于终端用户外部端点的监控,Vigil 在 https://api.crisp.chat 上会检查 API,通过一个轮询探针检查公开访问的状态是否为 OK。另外,相同 API 的微服务还会通过推送方式进行报告,这就是在 Crisp 的状态页的“Web”分组和“Relay”分组会看到两个对该 API 引用的原因。

Vigil 的推送集成支持多种语言: Rust , node Go 。它还与第三方的工具进行了集成,如 Slack 和 Email,但是还没有对其他常见告警工具的支持,如 Nagios 和 PagerDuty。在 Crisp,Vigil 目前以单节点方式运行。冗余功能目前还没有日程表,Saliou 说因为它的目标是“拥有一个简单的状态页面,足以完成任务,并让 SaaS 开发人员 / 系统管理员能够轻松访问一个不需任何成本的状态页面”。

查看英文原文 Monitoring Microservices at Scale at Crisp

2018-03-29 19:002150

评论

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

「48小时极速反馈」阿里云实时计算Flink广招天下英雄

Apache Flink

大数据 flink

一文看懂:企业该如何正确实施ERP?ERP系统实施必要性讲解

优秀

ERP

打造可分析的监控报表体系,让洞察更精准高效

嘉为蓝鲸

智能监控 IT运维 数据监控 IT监控 IT运维监控

YashanDB数据库的网络隔离与安全防护措施

数据库砖家

区块链RWA系统开发周期

北京木奇移动技术有限公司

区块链开发 软件外包公司 RWA开发

YashanDB数据库的索引与搜索性能优化

数据库砖家

YashanDB数据库的特点与行业应用场景详解

数据库砖家

嘉为蓝鲸CMeas研发效能洞察平台:研发效能周报按周期自动推送领导邮箱,数据统计零疏漏

嘉为蓝鲸

DevOps 研发效能 研发效能度量 研发效能洞察平台

Go面试题从浅入深高频必刷「2025版」

王中阳Go

Go

YashanDB数据库的网络安全配置及管理建议

数据库砖家

五问五答,详解算子级血缘助企业数据管理主动防控与高效协同

Aloudata

数据血缘 数据变更 主动元数据 算子级血缘

MyEMS:让能源管理从 “专业门槛” 走向 “全员参与”

开源能源管理系统

开源 开源能源管理系统

区块链Web3项目费用评估方法

北京木奇移动技术有限公司

区块链开发 软件外包公司 RWA开发

YashanDB数据库的数据完整性保障机制

数据库砖家

哪个CAD软件既可以CAD看图又可以绘图?

在路上

cad CAD看图软件 CAD看图王

从零开始学MCP(7) | 实战:用 MCP 构建论文分析智能体

测吧(北京)科技有限公司

数字化工厂及五大核心系统(ERP、PLM、MES、WMS、QMS)

万界星空科技

数字化 ERP mes QMS 制造业工厂

智能体防御 | 一文了解 3 种系统提示词加固方法

火山引擎开发者社区

智能体 系统提示词

Vibe Coding 从入门到实践

火山引擎开发者社区

AI 火山引擎

Agent 架构综述:从 Prompt 到 Context

火山引擎开发者社区

Prompt 大型语言模型LLM

2025年,如何成为不被AI淘汰的技术人?

咕泡科技

人工智能 大模型 咕泡ai 咕泡科技 咕泡大模型

哈尔滨工业大学鲲鹏昇腾科教创新孵化中心成立

极客天地

事件管理升级指南:ITSM系统靠自动化与协同让IT运维效率“撑杆跳”

嘉为蓝鲸

ITSM IT服务管理中心 IT服务管理 IT流程管理 ITIL事件管理

MyEMS 开源能源管理系统:技术架构驱动的能源管理革新

开源能源管理系统

开源 能源管理系统

抽象层破绽:Behringer Wing混音器与DigiMixer的技术适配挑战

qife122

系统集成 软件抽象

CAD中如何快速查找批注?3秒定位,告别手动查找!

在路上

cad cad看图 CAD看图王

CST基础教程:如何从SYZ参数提取电容C和电感L --- 双端口

思茂信息

cst电磁仿真 CST软件 CST Studio Suite

嘉为蓝鲸CCI持续集成平台Stage准入:让CI/CD从“自动跑”到“可控跑”,部署更放心

嘉为蓝鲸

DevOps 研发效能 持续集成 CI/CD 持续集成平台

破界新生!MyEMS 开源能源管理系统重构智慧能源新范式

开源能源管理系统

开源 开源能源管理系统

DeepSeek-V3.1 上线火山方舟

火山引擎开发者社区

字节跳动 火山引擎 DeepSeek 火山方舟

YashanDB数据库的未来创新趋势与市场展望

数据库砖家

Crisp是如何实现可扩展微服务监控的_DevOps & 平台工程_Hrishikesh Barua_InfoQ精选文章