NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

评论

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

可能是Java 8 Optional最佳实践

ES_her0

28天写作

大小厂必问Java后端面试题(含答案)

yes

Java 面试 后端

SpringBoot之自定义启动异常堆栈信息打印

false℃

产品训练营--第四期作业

曦语

产品训练营

诊所数字化:搭建网络路径的信息铺设策略

boshi

数字化转型 医疗 七日更 28天写作

著名的Java并发编程大师都这么说了,你还不知道伪共享么!

看点代码再上班

Java 后端

你的面试专属!JVM G1GC的算法+实现,90张图+33段代码

Java架构追梦

Java 架构 JVM 调优 G1GC

IDEA 敏捷开发技巧——后缀完成

程序员小航

Java 后端 IDEA

EMC设计中电缆屏蔽使用方法

不脱发的程序猿

二月春节不断更 电路设计 EMC 电子产品 电缆屏蔽

Golang代码测试:一点到面用测试驱动开发

华为云开发者联盟

测试 TDD 代码 Go 语言

《经济学人》2021年2月20日刊精彩文章导读及资源下载

wbliu85

Kafka.02 - Topic 介绍

insight

kafka 2月春节不断更

日记 2021年2月20日(周六)

Changing Lin

2月春节不断更

电子产品中EMC隔离设计的方法

不脱发的程序猿

二月春节不断更 电路设计 EMC 电子产品

Elasticsearch踩坑记之深度分页

topsion

大数据 elasticsearch 深度分页

Elasticsearch filter vs. query 对比

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

【LeetCode】数组的度Java题解

Albert

算法 LeetCode 28天写作 2月春节不断更

全网最新、最全面蚂蚁金服面经分享:简历模板/面试题库/Java核心技术笔记

比伯

Java 编程 程序员 面试 技术宅

APM(应用性能监控) 行业认知系列 - 一

东风微鸣

APM Trace 可观察性

构建万物可信互联的基石,带你深度剖析区块链跨链的关键技术,满满是干货!

华为云开发者联盟

区块链 智能合约 云原生 跨链技术 分布式账本技术

架构设计篇之微服务实战笔记(一)

小诚信驿站

架构师 刘晓成 小诚信驿站 28天写作 架构师成长笔记

如何 0 改造,让单体/微服务应用成为Serverless Application

阿里巴巴云原生

Docker Serverless 容器 微服务 云原生

APM 行业认知系列 - 三

东风微鸣

APM Trace 可观察性

读书总结2020

IT民工大叔

#读书

LoadRunner测试中遇见的不可思议的问题及其解决方法

陈磊@Criss

LeetCode题解:53. 最大子序和,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Java实体映射利器---MapStruct

是小毛吖

Java MapStruct

【STM32】CubeMX+HAL 点亮 LED

AXYZdong

硬件 stm32 2月春节不断更

APM 行业认知系列 - 二

东风微鸣

APM Trace 可观察性

数据库的两个好帮手:pagehack和pg_xlogdump

华为云开发者联盟

数据库 故障 GaussDB pagehack pg_xlogdump

重大更新!一文了解京东通用目标重识别开源库FastReID V1.0

京东科技开发者

AI 监控

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