如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

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

评论

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

TiDB增强型 StatefulSet 控制器--Advanced StatefulSet

TiDB 社区干货传送门

集群管理 管理与运维 安装 & 部署 扩/缩容

前端二面高频手写面试题

helloworld1024fd

JavaScript

RocketMQ Connect 构建流式数据处理平台

Apache RocketMQ

RocketMQ Connect

手把手教你成为荣耀开发者:应用管理指南

荣耀开发者服务平台

前端 快应用 荣耀 honor 应用集成

TiDB Operator扩缩容和集群的管理

TiDB 社区干货传送门

集群管理 管理与运维 安装 & 部署 扩/缩容

社招前端常考手写面试题总结

helloworld1024fd

JavaScript

星环数据云平台 TDC 3.1 发布,新增滚动重启、存储回收站等八大核心功能

星环科技

重写Nacos服务发现:多个服务器如何跨命名空间,访问公共服务?

LigaAI

Java 测试 nacos 测试环境 12 月 PK 榜

别再秃头背锅了!这个小技巧统计第三方接口耗时很安逸

Java永远的神

Java 程序员 后端 架构师 springboot

聊聊电商系统架构, 常见的9个大坑

Java全栈架构师

程序员 后端 架构师 电商 系统秒杀

【12.9-12.16】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动

【敏捷转型,效能提升】敏捷转型实践系列分享

京东科技开发者

敏捷 敏捷团队 效能度量 效能提升 #DevOps

性能最大提升60%,阿里云发布基于第四代英特尔至强的第八代ECS实例

云布道师

阿里云

TiCDC 在多种场景的新特性的应用

TiDB 社区干货传送门

安装 & 部署 OLTP 场景实践

搜电充电:创新“服务卡片”,让即时充电更便捷

HarmonyOS开发者

HarmonyOS

公交车LED电子路牌宣传效果更好吗

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

XTransfer技术专家亮相Flink Forward Asia 2022

XTransfer技术

破记录!国产数据库KunDB 单节点TPC-C事务性能超180万tpmC

星环科技

几个常见的js手写题,你能写出来几道

helloworld1024fd

JavaScript

中移链合约常用开发介绍 (一)开发基本流程

BSN研习社

中移链

GaiaX开源解读 | 给Stretch(Rust编写的Flexbox布局引擎)新增特性,我掉了好多头发

阿里巴巴文娱技术

开源 rust 后端 rust语言 GaiaX

全球首家!星环科技通过3TB TPCx-AI测试,实现大数据与AI的完美融合

星环科技

将渲染计算搬到云端,开启低成本、强交互、沉浸式体验

阿里云CloudImagine

云计算 阿里云 云渲染 串流

实现Promise的原型方法--前端面试能力提升

helloworld1024fd

JavaScript

深度剖析 | 【JVM深层系列】[HotSpotVM研究系列] JVM调优的"标准参数"的各种陷阱和坑点分析(攻克盲点及混淆点)「 1 」

码界西柚

JVM 12 月 PK 榜 调优参数 调优技术

五大亮点来袭!神州云科冬季发布会报名通道开启,千份精美礼品等你来拿!

通明湖

从TiDB搭建到监控闭环

TiDB 社区干货传送门

监控 管理与运维

Lightning checksum failed 报错实践案例

TiDB 社区干货传送门

必会vue面试题总结

bb_xiaxia1998

Vue

民航二所马勇:数据安全防护体系的探索与思考

极盾科技

数据安全

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