写点什么

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

评论

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

汽车行业产品经理备忘录(作业三)

Rui

产品经理训练营作业00

KingSwim

一个button的成长过程

德育处主任

CSS html css3 html/css 28天写作

如何恶意使用微信视频号 | 视频号 28 天 (12)

赵新龙

28天写作

智能手表

张老蔫

28天写作

Mybatis【12】-- Mybatis多条件怎么查询?

秦怀杂货店

mybatis

产品经理训练营第一章作业

铭白

产品经理

产品经理训练营 - 第一章作业

joelhy

产品经理训练营

经常觉得每天时间不够用,试试合批吧!

Justin

心理学 时间管理 28天写作

Soul学习笔记---运行 soul-examples-dubbo(三)

fightingting

Soul网关

云原生动态周报 | KubeEdge被评为2020十大边缘计算开源项目

华为云原生团队

云计算 云原生 边缘计算 华为云 边缘技术

听说没,原来Python抢京东的飞天茅台作者没更新,现在又来了一个Go语言版本的

谙忆

产品经理00期训练营第一周作业 4班

mas

产品经理训练营

如何处理消息队列中的重复消息

废材姑娘

RocketMQ

ReentrantLock原理分析

旺旺

Java ReentrantLock JUC lock

绩效管理,上下同心者胜(三)

一笑

管理 绩效 28天写作

一张自查清单

熊斌

学习 个人总结 成长笔记 28天写作

经验说丨华为云视频Cloud Native架构下实践

华为云开发者联盟

架构 微服务 华为云 CloudNative

第1周总结

老元宵

Soul 网关实践 04|dubbo 服务接入网关

哼干嘛

芯片领域产品经理的发展

Lujohn

产品经理 芯片 产品经理训练营 极客大学产品经理训练营 PM

深入剖析RSA密钥原理及实践

vivo互联网技术

算法 https 公钥加密 rsa

期货合约系统软件开发|期货合约APP开发

系统开发

个人

z

心仪的岗位

正午看星星

作业

第 1 周作业

老元宵

Soul 学习笔记---搭建编译项目(一)

fightingting

Soul网关

Java学习(一)

灵霄

java基础

项目管理系列(6)-能力成熟度

Ian哥

28天写作

轻松几步教你将React Native 项目运行在Web端

华为云开发者联盟

html 大前端 Web API React Native

甲方日常 86

句子

工作 随笔杂谈 日常

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