HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

评论

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

Spring 中 @Qualifier 注解还能这么用?

江南一点雨

Java spring

开放原子开源基金会开源安全委员会七月新增成员单位

开放原子开源基金会

开放原子开源基金会

持续交付-Pipeline入门

霍格沃兹测试开发学社

简洁又优雅!Controller层代码就该这么写!

java易二三

Java 程序员 面试 计算机 八股文

浅谈测试需求分析

霍格沃兹测试开发学社

接口协议之抓包分析 TCP 协议

霍格沃兹测试开发学社

技术分享 | app自动化测试(Android)-- 参数化用例

霍格沃兹测试开发学社

使用Fastmonkey进行iosMonkey测试初探

霍格沃兹测试开发学社

802.11ac VS 802.11ax represents chips IPQ4019 and IPQ5018-support MU-MIMO-OFDMA-TWT technology

wifi6-yiyi

wifi6 wifi5

落地大模型应知必会(3): 如何构建多任务的LLM应用

Baihai IDP

人工智能 AI LLM 白海科技 落地大模型应用

Health Kit基于数据提供专业方案,改善用户睡眠质量

HarmonyOS SDK

HMS Core

传统企业的智能化IPD(产品集成开发)转型

禅道项目管理

山东布谷科技直播软件源码Nginx服务器横向扩展:搭建更稳定的平台服务

山东布谷科技

nginx 软件开发 服务器 源码搭建 直播软件源码

Kafka入门

霍格沃兹测试开发学社

对线面试官 - TCP经典面试题

派大星

TCP/IP Java 面试题

Linux之select、poll、epoll讲解

java易二三

Linux 程序员 计算机

智奇数美:用下沉思维做产品,深挖呼叫中心产业新蓝海

江湖老铁

Apache Paimon 在同程旅行的实践进展

Apache Flink

大数据 flink 实时计算

JaCoCo助您毁灭线上僵尸代码 | 京东物流技术团队

京东科技开发者

Java JACOCO 企业号 8 月 PK 榜 僵尸代码

《Java极简设计模式》第01章:单例模式(Singleton)

冰河

Java 程序员 设计模式 架构师 java基础

矩阵起源入选《2023中国数据库领域最具商业合作价值企业盘点》

MatrixOrigin

数据库 云原生 超融合 MatrixOrigin 矩阵起源

实力!云起无垠获ISC 2023创新独角兽沙盒大赛“创新能力奖”

云起无垠

秒杀库存解决方案

Java研究者

架构 高性能 秒杀 电商系统 库存系统

干货 | 在Docker 上搭建持续集成平台 Jenkins

霍格沃兹测试开发学社

推荐工具!使终端便于 DevOps 和 Kubernetes 使用

SEAL安全

git Kubernetes zsh DevOps工具 企业号 8 月 PK 榜

基于飞桨图学习框架实现的城市地点动态关系挖掘

飞桨PaddlePaddle

人工智能 paddle 百度飞桨 开发者说

接口测试框架实战(一) | Requests 与接口请求构造

霍格沃兹测试开发学社

InCopy 2023 for mac(专业排版软件) v18.3中文激活版

mac

苹果mac Windows软件 InCopy 2023 IC2023 排版软件

技术分享 | app自动化测试(Android)--显式等待机制

霍格沃兹测试开发学社

AIGC热潮涌动 HashData如何降低大模型应用门槛?

酷克数据HashData

LangChain系列-02. LLM基础

无人之路

openai ChatGPT langchain

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