深入解读面向微服务的分布式秒级监控系统Infinsight

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 背景 在云服务环境中,服务的质量一向是云服务厂商关注的重点,为了最大的保证云服务质量,以及在出现故障时能够协助用户对故障进行快速的定位,监控服务在其中起着非常重要的作用。 目前,许多云厂商提供的监控服务多在分钟级,这种级别的监控服务对于瞬息万变的服务变化,往往粒度过大了。

背景

在云服务环境中,服务的质量一向是云服务厂商关注的重点,为了最大的保证云服务质量,以及在出现故障时能够协助用户对故障进行快速的定位,监控服务在其中起着非常重要的作用。

目前,许多云厂商提供的监控服务多在分钟级,这种级别的监控服务对于瞬息万变的服务变化,往往粒度过大了。尤其是针对某些瞬间的资源抖动,以及短暂的慢查询,分钟级的监控数据往往无法发现这些细微的问题,很多隐患也就此淹没掉。

因此,针对以上场景,拥有一套具备细粒度、实时监控能力的监控系统,就变得迫在眉睫。

简介

Infinsight是一个使用golang语言编写的面向微服务,提供秒级监控能力的分布式监控服务,借助MongoDB进行配置管理和数据持久化,以及借助Grafana进行可视化展示,为用户提供从采集、存储到展示的完整的监控平台。

Infinsight目前服务于MongoDB和Redis云数据库,为数以万计的用户服务提供全面且准实时的监控服务。Infinshgit对MongoDB和Redis服务每秒近千项指标进行实时采集,并对数据进行压缩存储,数据压缩比基于线上统计:MongoDB(32:1)、Redis Proxy(80:1),这使得我们仅用了不到30TB的存储容量,确保了7*30天数万亿的全量秒级数据留存,以方便追查历史问题,以及进行各种数据分析。

并且,Infinsight的开源版本已经在github上发布,除削减了和内部系统的耦合功能以外,完整的保留了Infinsight的全部功能。

应用场景举例

Infinsight是面向微服务的监控系统,是一个无agent系统,所以需要服务自身具备服务状态查询能力。

目前Infinsight可以提供:mysql、redis、mongodb三款常用数据库的监控能力。并且,在数据库监控能力之外,还提供了http+json的通用监控能力。

用户只需要配置好所需的服务类型和需要监控的服务的IP:PORT,Infinsight便会自动抓取服务的全部state信息,并提供默认的展示模版,用户几乎不需要太多的配置即可快速搭建专业的监控服务平台。

正是基于Infinsight灵活高效的部署能力,用户除了可以基于Infinsight对服务进行常规化监控,还能够针对测试服务通过热插拔的形式,随时部署,随时注销,极大的提高了服务测试和预发布环境下对服务性能指标的控制能力。这对于服务测试的临时监控需求、新服务上线的初期监控需求,在相关配套设施没有建设完善时,Infinsight可以极大的节省在服务稳定性管理上的人力成本。

此外,由于Infinsight是一个面向微服务的无agent系统,这也就决定了Infinsight具备对于服务的混合监控能力。用户服务无论在云上、云下,还是跨云部署,只要具备良好的网络连通性,Infinshgit都可以对整体系统进行全面的监控,不会受到由于无权部署agent而缺乏监控能力的问题。并且,由于服务自身就是agent,所以也节省了部署agent的资源开销,对于服务自身来说,1qps几乎没有任何资源消耗。

功能介绍

Infinsight致力于为用户提供最简单最便捷的监控服务,并提供相关的配置模版以及配置脚本,通过默认配置,标准化模版,使用户无需进行复杂的配置,服务的特点如下:

1

  1. Infinsight是一个无agent系统,使用本地客户端对目标服务进行远程采集,所以Infinsight可以实现最小化单机部署。
  2. Infinsight是一个准实时系统,一方面可以以1秒为最小粒度进行高精度的数据采集,另一方面能够以很高的时效性展示系统的当前状态,目标服务任何细微的变化都可以在1秒以内通过可视化页面进行展示。
  3. Infinsight是一个高性能的服务,可以在单机规模对上万个进程进行监控(实际情况需要根据机器性能进行评估),数据查询性能为毫秒级
  4. Infinsight具有非常高的数据压缩比,能够在TB级的存储规模,存储万亿级的数据,可实现以很低的成本保存上万实例一个月的秒级粒度数据。根据线上实际服务情况,MongoDB的数据压缩率比为32:1,Redis Proxy服务数据压缩比为80:1。
  5. Infinsight无需指定监控服务的schema,Infinsight会自动抓取目标服务的全部数据,如果用户需要对监控项进行增删,只需要按照格式(bson、json、key-value)增加或删除对应的监控项目即可,Infinsight会自动根据格式感知到监控项的变化,进行自动化的适配。
  6. Infinsight是一个可进行分布式水平扩展的服务,用户只需要对已部署的Infinsight服务进行原样拷贝,在其他机器上直接启动即可,Infinsight会自动进行服务注册,并根据拓扑结构自动进行负载均衡。
  7. Infinsight支持灵活的前端计算功能,用户可以根据简单的逻辑需求通过对数据进行简单计算从而实现灵活的监控能力

未来规划

Infinsight后续会继续纳入更多的常用服务监控,例如kafka、flink等,为大多数用户解决常见服务的监控问题。在此基础上,不断借助开源的力量,吸纳更多领域从业人员和技术专家们提供针对监控服务可视化模版,给更多的用户提供更专业更美观的服务体验。

技术细节

详细技术细节,参考github wiki: Infinsight技术文档

开源

目前Infinsight已经在github上开源:Infinsight

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
存储 监控 负载均衡
构建高效微服务架构:服务治理与监控的实践
构建高效微服务架构:服务治理与监控的实践
|
4月前
|
存储 监控 负载均衡
微服务架构中的服务治理与监控技术
【8月更文挑战第3天】微服务架构中的服务治理与监控是确保系统稳定、高效运行的重要手段。通过构建注册中心实现服务的自动注册和发现,通过部署监控工具实现对服务的全面监控,可以有效地提高系统的可靠性和可用性。未来,随着技术的不断发展,服务治理与监控技术也将不断完善和优化,为微服务架构的广泛应用提供更加坚实的支撑。
|
4月前
|
Prometheus 监控 Cloud Native
微服务的监控与可观测性
【8月更文第29天】在微服务架构中,确保每个服务的健康状态和性能表现是非常重要的。为了达到这一目标,我们需要实施一套完整的监控和可观测性方案。本篇文章将介绍如何通过日志、指标和追踪来监测微服务的状态和性能,并提供相应的代码示例。
508 0
|
6月前
|
存储 运维 Prometheus
微服务监控:确保分布式系统的可观察性与稳定性
微服务监控:确保分布式系统的可观察性与稳定性
|
7月前
|
存储 设计模式 运维
探索微服务架构下的系统监控策略
【5月更文挑战第30天】 在当今的软件开发领域,微服务架构已成为一种流行的设计模式,它通过将应用程序拆分为一系列小型、松耦合的服务来提高系统的可维护性和扩展性。然而,这种分布式的特性也带来了新的挑战,尤其是在系统监控方面。本文将深入探讨在微服务架构下,如何实施有效的系统监控策略,确保服务的高可用性和性能优化。我们将讨论监控的关键指标、工具选择以及面对复杂微服务环境下的监控策略设计。
|
存储 监控 NoSQL
【微服务】分布式如何利用Skywalking实现链路追踪与监控?
微服务下的分布式如何实现链路追踪和监控。
1009 1
【微服务】分布式如何利用Skywalking实现链路追踪与监控?
|
SQL 运维 监控
高性能数据访问中间件 OBProxy(三):问题排查和服务运维
1 引言 上篇文章我们讲解了 OBProxy 的安装部署,在实践时,大家还可能因为机器环境、操作顺序不对等问题导致安装部署失败,这时候可以到OceanBase的开源社区 问答板块提问,会有专业的工程师回答你的问题。完成了 OBProxy 的安装部署后,就可以使用 OBProxy 访问 OceanBase 数据库了。 如果刚开始使用 OBProxy ,排查问题和运维 OBProxy 是大家将要遇到的
267 7
高性能数据访问中间件 OBProxy(三):问题排查和服务运维
|
存储 监控 数据可视化
ELK搭建(一):实现分布式微服务日志监控
本次我们搭建的目标是通过ELK来收集微服务中的日志。本期主要以实操、快速搭建为主进行讲解,部分基础概念不做过多描述,后续会再单独出几期博客说明。更多ELK搭建可以关注本专栏,后续会持续输出。
467 0
ELK搭建(一):实现分布式微服务日志监控
|
数据可视化 搜索推荐 Java
微服务架构 | 10. 分布式追踪
微服务的调试问题会比较复杂,可以使用分布式追踪解决;
292 1
微服务架构 | 10. 分布式追踪
|
存储 运维 监控
微服务架构谈(6):从监控到故障定位(下)
微服务架构谈(6):从监控到故障定位(下)
601 0
微服务架构谈(6):从监控到故障定位(下)