深入解读面向微服务的分布式秒级监控系统Infinsight
背景
在云服务环境中,服务的质量一向是云服务厂商关注的重点,为了最大的保证云服务质量,以及在出现故障时能够协助用户对故障进行快速的定位,监控服务在其中起着非常重要的作用。
目前,许多云厂商提供的监控服务多在分钟级,这种级别的监控服务对于瞬息万变的服务变化,往往粒度过大了。尤其是针对某些瞬间的资源抖动,以及短暂的慢查询,分钟级的监控数据往往无法发现这些细微的问题,很多隐患也就此淹没掉。
因此,针对以上场景,拥有一套具备细粒度、实时监控能力的监控系统,就变得迫在眉睫。
简介
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致力于为用户提供最简单最便捷的监控服务,并提供相关的配置模版以及配置脚本,通过默认配置,标准化模版,使用户无需进行复杂的配置,服务的特点如下:
- Infinsight是一个无agent系统,使用本地客户端对目标服务进行远程采集,所以Infinsight可以实现最小化单机部署。
- Infinsight是一个准实时系统,一方面可以以1秒为最小粒度进行高精度的数据采集,另一方面能够以很高的时效性展示系统的当前状态,目标服务任何细微的变化都可以在1秒以内通过可视化页面进行展示。
- Infinsight是一个高性能的服务,可以在单机规模对上万个进程进行监控(实际情况需要根据机器性能进行评估),数据查询性能为毫秒级
- Infinsight具有非常高的数据压缩比,能够在TB级的存储规模,存储万亿级的数据,可实现以很低的成本保存上万实例一个月的秒级粒度数据。根据线上实际服务情况,MongoDB的数据压缩率比为32:1,Redis Proxy服务数据压缩比为80:1。
- Infinsight无需指定监控服务的schema,Infinsight会自动抓取目标服务的全部数据,如果用户需要对监控项进行增删,只需要按照格式(bson、json、key-value)增加或删除对应的监控项目即可,Infinsight会自动根据格式感知到监控项的变化,进行自动化的适配。
- Infinsight是一个可进行分布式水平扩展的服务,用户只需要对已部署的Infinsight服务进行原样拷贝,在其他机器上直接启动即可,Infinsight会自动进行服务注册,并根据拓扑结构自动进行负载均衡。
- Infinsight支持灵活的前端计算功能,用户可以根据简单的逻辑需求通过对数据进行简单计算从而实现灵活的监控能力
未来规划
Infinsight后续会继续纳入更多的常用服务监控,例如kafka、flink等,为大多数用户解决常见服务的监控问题。在此基础上,不断借助开源的力量,吸纳更多领域从业人员和技术专家们提供针对监控服务可视化模版,给更多的用户提供更专业更美观的服务体验。
技术细节
详细技术细节,参考github wiki: Infinsight技术文档
开源
目前Infinsight已经在github上开源:Infinsight
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
网络直播系统的架构,基础版直播间搭建
直播行业从2013年发展至今,行业逐步规范,功能逐步增加,前几天,斗鱼直播平台宣布自己又获得了一轮融资,此次融资金额近40亿,那么大家想不想知道网络直播系统的架构呢?本文将从三个版块讲述一个简单的网络直播系统的架构是怎么样的,不说废话,开始吧 一、首页部分 网络直播系统的首页大致会有这么几个模块:顶部/底部导航、分类列表、推荐列表 1、顶部/底部导航 顶部/底部导航通常会有这样几项菜单:关注、直播、视频、附近 、排行、搜索、个人等 1) 关注:用户注册后,点击进入该菜单可以看到自己关注的主播的动态信息,点击直播信息可以直接进入直播间内观看直播 2) 直播列表:在该列表中会有所有在线直播的主播直播间缩略图,通常会依据一定算法(依据推荐值、曝光量。粉丝数等数据计算)排列。 3) 视频列表:主播发布的短视频可以在此处看到,点击进入短视频页面,还可双击点赞、评论留言,该功能被用于主播与用户正在非直播时间内进行社交活动。 4) 附近功能:利用定位系统,计算用户与其它开启定位功能的主播之间的距离,以实现社交活动。 5) 排行榜功能:该功能中可能会有多个榜单,如收益榜、贡献榜等,每个榜单下会有小榜单...
- 下一篇
网站建设之PageAdmin Cms建站系统安装教程
现在很多站长或网络公司进行网站建设,后台大多都是使用一些成熟的网站管理系统,很大程度提升网站建设的效率,最近小编陆续发布了国内一些知名网站管理系统的安装教程,今天小编给大家介绍一下PageAdmin网站管理系统的安装,PageAdmin是目前使用最广的网站系统之一,开源可以免费下载,采用.net开发,mvc架构,用户众多,功能强大,具有很好的扩展性和灵活性,受到很多网络公司和站长的青睐,下面不赘述,直接上安装教程。 1、首先去官网下载PageAdmin系统安装包,如果本机或服务器安装,请参考:PageAdmin安装配置教程 (本站其他系列,或自行到官方网站看教程),如果购买的是网站空间,通过ftp上传PageAdmin文件压缩包到你购买的网站空间,然后解压,输入你的网站空间绑定的域名即可打开安装界面。 2、输入域名后,默认打开PageAdmin网站系统的安装界面,如下图: 3、点击下一步,进行权限检测,如下图: 4、检测通过后点击下一步进入设置界面,在这里设置网站的主域名,约束方式默认即可,后台目录默认admin,可以自行修改。 数据库设置:本机或服务器请参考sql配置教程(本站搜索或...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度