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

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

640 (1).gif

原创: 伯邑

背景

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

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

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

简介

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致力于为用户提供最简单最便捷的监控服务,并提供相关的配置模版以及配置脚本,通过默认配置,标准化模版,使用户无需进行复杂的配置,就可以轻松实现如下监控能力

image.png

通过配置管理,动态增删需要监控的服务类型,并通过标准模版直接加载Grafana可视化页面,无需复杂的配置过程。

通过配置管理,可通过第三方手段动态增删需要监控的IP:PORT。

无需提前注册监控项schema,系统自适应监控项的变化,随时抓去全部监控信息。

可保证30天秒级数据的存储,6小时内数据查询平均延时小于5ms

支持前端灵活计算,支持四则运算和差值运算,更加友好的进行数据展示,可表达更丰富的逻辑含义。

支持多指标的正则表匹配,可将符合某一特征的多个指标,聚合在一张图表内,方便进行数据对比。

可单机部署,也可以分布式部署。在分布式部署环境下,可做到灵活的线性扩展。

未来规划

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

技术细节

详细技术细节,请参考github wiki:

https://github.com/aliyun/infinsight/wiki/Infinsight%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3

开源

目前Infinsight已经在github上开源,详细请戳:https://github.com/aliyun/infinsight

相关文章
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1519 3
|
11月前
|
存储 安全 Java
管理 Spring 微服务中的分布式会话
在微服务架构中,管理分布式会话是确保用户体验一致性和系统可扩展性的关键挑战。本文探讨了在 Spring 框架下实现分布式会话管理的多种方法,包括集中式会话存储和客户端会话存储(如 Cookie),并分析了它们的优缺点。同时,文章还涵盖了与分布式会话相关的安全考虑,如数据加密、令牌验证、安全 Cookie 政策以及服务间身份验证。此外,文中强调了分布式会话在提升系统可扩展性、增强可用性、实现数据一致性及优化资源利用方面的显著优势。通过合理选择会话管理策略,结合 Spring 提供的强大工具,开发人员可以在保证系统鲁棒性的同时,提供无缝的用户体验。
242 0
|
Kubernetes 大数据 调度
Airflow vs Argo Workflows:分布式任务调度系统的“华山论剑”
本文对比了Apache Airflow与Argo Workflows两大分布式任务调度系统。两者均支持复杂的DAG任务编排、社区支持及任务调度功能,且具备优秀的用户界面。Airflow以Python为核心语言,适合数据科学家使用,拥有丰富的Operator库和云服务集成能力;而Argo Workflows基于Kubernetes设计,支持YAML和Python双语定义工作流,具备轻量化、高性能并发调度的优势,并通过Kubernetes的RBAC机制实现多用户隔离。在大数据和AI场景中,Airflow擅长结合云厂商服务,Argo则更适配Kubernetes生态下的深度集成。
1433 34
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
477 5
|
10月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
11月前
|
存储 算法 安全
“卧槽,系统又崩了!”——别慌,这也许是你看过最通俗易懂的分布式入门
本文深入解析分布式系统核心机制:数据分片与冗余副本实现扩展与高可用,租约、多数派及Gossip协议保障一致性与容错。探讨节点故障、网络延迟等挑战,揭示CFT/BFT容错原理,剖析规模与性能关系,为构建可靠分布式系统提供理论支撑。
491 2
|
11月前
|
机器学习/深度学习 算法 安全
新型电力系统下多分布式电源接入配电网承载力评估方法研究(Matlab代码实现)
新型电力系统下多分布式电源接入配电网承载力评估方法研究(Matlab代码实现)
321 3
|
数据采集 缓存 NoSQL
分布式新闻数据采集系统的同步效率优化实战
本文介绍了一个针对高频新闻站点的分布式爬虫系统优化方案。通过引入异步任务机制、本地缓存池、Redis pipeline 批量写入及身份池策略,系统采集效率提升近两倍,数据同步延迟显著降低,实现了分钟级热点追踪能力,为实时舆情监控与分析提供了高效、稳定的数据支持。
554 1
分布式新闻数据采集系统的同步效率优化实战
|
人工智能 搜索推荐 前端开发
从代码到心灵对话:我的CodeBuddy升级体验之旅(个性化推荐微服务系统)
本文分享了使用CodeBuddy最新版本的深度体验,重点探讨了Craft智能体、MCP协议和DeepSeek V3三大功能。Craft实现从对话到代码的无缝转化,大幅提升开发效率;MCP协议打通全流程开发,促进团队协作;DeepSeek V3则将代码补全提升至新境界,显著减少Bug并优化跨语言开发。这些功能共同塑造了AI与程序员共生的未来模式,让编程更高效、自然。
1178 15
|
JSON Java 数据格式
微服务——SpringBoot使用归纳——Spring Boot中的全局异常处理——处理系统异常
本文介绍了在Spring Boot项目中如何通过创建`GlobalExceptionHandler`类来全局处理系统异常。通过使用`@ControllerAdvice`注解,可以拦截项目中的各种异常,并结合`@ExceptionHandler`注解针对特定异常(如参数缺失、空指针等)进行定制化处理。文中详细展示了处理参数缺失异常和空指针异常的示例代码,并说明了通过拦截`Exception`父类实现统一异常处理的方法。虽然拦截`Exception`可一劳永逸,但为便于问题排查,建议优先处理常见异常,最后再兜底处理未知异常,确保返回给调用方的信息友好且明确。
1588 0
微服务——SpringBoot使用归纳——Spring Boot中的全局异常处理——处理系统异常