背景

随着流量业务的高速发展以及已经到来的5G时代,业务支撑系统的规模不断增大、服务不断增多,业务、应用和系统运行性能指标数据持续以指数级的速度增长,每日计费话单量已突破百亿。系统监控的实时性、准确性的能力不足成为运维工作的瓶颈。

江苏移动IT运维团队携手新大陆以SRE理念为指导,结合实时监控“高并发写入”、“低查询延时,高查询并发”、“轻量级存储”等实际诉求,深入研究时序数据库的特性和适用程度,打造符合自身系统运维特点的性能管理平台,实现百亿级话单处理过程的实时全景监控分析。

时序库选型

目前市场较流行的时序数据库产品有Prometheus、Graphite、InfluxDB、OpenTSDB等,我们比对了这些产品的使用范围、优缺点。

通过比较,我们发现 Prometheus 最适合搭建BOSS运维监控系统。单个的Prometheus实例就能实现每秒上百万的采样,同时支持对于采集数据的快速查询。Prometheus对于采样数据进行压缩存储,16字节的采样数据平均只需要1.37个字节的存储空间,极大减少了存储资源占用。查询实时数据时,磁盘I/O平均负载小于1%。

性能管理平台架构设计

本方案中运维人员以Prometheus时序库为中心,实现与应用相关的所有实时监控数据的采集、清洗、存储,并实时展现系统总体和各环节、各独立应用处理性能、趋势性的预测和智能分析,准确掌握系统运行健康度。

图1 系统架构

  1. 根据业务系统的部署,我们在双中心各部署一套Prometheus集群。

  2. 对于系统、应用日志、Java应用我们采用拉取方式采集指标数据;对于应用、业务、组件的性能指标数据采用推送网关(pushgateway)暂存数据,然后再由Prometheus拉取的方式采集。

  3. 为保证实时采集和查询的高性能,采集prometheus时序库中保存短期内较近数据,同时写入一份到远程的历史时序库中。

  4. 可视化展示和实时告警通过负载均衡从prometheus和历史库中采集数据。

适配性改造

在部署和使用过程中我们发现原生Prometheus存在一些不足,为此我们进行了一些适配改造工作。

1、夯实高可用能力:原生的Prometheus部署都是单点的,不足以保证数据可用性,为此我们通过服务注册的方式实现了Prometheus的高可用性。集群启动时每个节点都尝试获取锁,获取成功的节点成为主节点执行任务,若主节点宕机,从节点获取锁成为主节点并接管服务。

图2 高可用能力实现方式

2、优化数据存储方式:在Prometheus节点上保存短周期数据用于告警实时触发和展现,引入InfluxDB用于实时传输并保存长周期的历史数据,保证采集数据的连续性并为后续数据挖掘提供资源支撑。

3、自研改造推送网关组件:在实际使用过程中我们发现推送网关(pushgateway)中的数据有较大概率被重复采集到Prometheus中,容易产生错误的性能数据和误告警。为此我们在Prometheus的采集方法中增加从pushgateway拉取数据后主动删除数据的保障机制,确保数据采集的唯一性。

4、拓展集成数据展示方式:性能数据可视化展示原先采用Grafana原生组件,但是使用过程中发现插件配置灵活性不足,难以展现多种形式关联指标数据的情形。因此我们自研了可视化工具,实现涵盖系统、应用、业务性能等多维度指标的个性化展示,实时掌控系统健康状态。

5、更改时区:原生的Prometheus查询指标时页面显示的指标趋势图是根据GMT时间显示的,与北京时间相差8小时,为此我们将源码中获取时间的方式修改成从本地系统时间获取,成功解决了该问题。

指标采集范围

结合实际运维场景及需求,整体指标采集分为两个方面,性能指标和业务指标:

实时展示

通过对各类指标数据加工汇聚,生成BOSS系统健康度统一视图, 涵盖各应用性能、业务量、各类服务调用量及响应时间等,可以灵活通过多种维度实时展示指标数据,支持下钻到具体应用、具体进程性能指标,快速实时掌握第一手运维监控数据,实现“运维监控一张图”,大幅提升系统监控和分析效率,有效节约运维人力资源。

图3 实时全景视图

趋势预测及异常检测

海量的性能时序数据是运维的宝贵数据资产沉淀,对基础数据进行有效的建模分析和规划,辅以合理的算法学习,实现部分场景的智能化分析和监测,将大幅提升运维效能,目前已应用于以下运维场景:

  1. 性能预测:通过对应用处理速度的实时监控、历史数据比对分析,自动计算应用处理最大速度,实时准确预测完成待处理话单所需时间。

  2. 业务趋势预测:通过对时序库中存储大量系统和业务指标数据按天、周、月维度进行平均、加权序时平均、移动平均、加权移动平均、特列统计等分析,预测未来话单处理趋势、系统资源利用趋势,为系统容量管理提供合理依据。

  3. 异常检测:通过对数据进行环比分析、同比分析、均值变化分析、相同时间窗口内数据的均值和标准差分析、局部数据波动分析、周期性特征分析等算法及时发现业务处理异常。

图4 性能预测场景示意

总结与展望

目前性能管理平台能满足每秒10万级的监控指标入库,支撑百亿级话单处理过程的实时监控。可通过对这些海量数据的分析,实现容量、性能、故障的精准定位和预测,并前置性地做好应对措施以规避问题的产生和蔓延。

该性能平台已成功应用在BOSS系统,未来将进一步总结经验并持续改进提升,陆续向其他业务支撑领域和管信领域进行推广。

支撑江苏移动百亿级话单实时监控是这样实现的相关推荐

  1. java时序图工具_基于时序数据库,实现百亿级话单实时全景监控分析

    背景 随着流量业务的高速发展以及已经到来的5G时代,业务支撑系统的规模不断增大.服务不断增多,业务.应用和系统运行性能指标数据持续以指数级的速度增长,每日计费话单量已突破百亿.系统监控的实时性.准确性 ...

  2. [NewLife.XCode]分表分库(百亿级大数据存储)

    NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量 ...

  3. [NewLife.XCode]百亿级性能

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...

  4. 揭秘阿里百亿级云客服实时分析架构是怎么炼成的?

    揭秘阿里百亿级云客服实时分析架构是怎么炼成的? 淘宝.天猫每天有上亿个不同的买卖家进行对话,产生百亿条聊天记录.对客服聊天记录的实时分析是实现智能客服的基础.本文主要分享云客服的整体架构,包括实时分析 ...

  5. GitHub置顶半个月!78w字百亿级并发设计(全彩PDF),竟出自京东

    高并发系统 想要设计一个高并发的系统,就要从根源出发.为什么会有高并发?高并发又有哪些厉害之处呢?其实很简单,刚开始系统都是连接数据库的,但是数据库在支撑到每秒并发两三千上万的时候,很多系统是支撑不住 ...

  6. 我国老年相亲市场的现状分析:百亿级市场的难点与机遇

    随着我国老龄化程度日趋严重,独居老人的数量也在增加.早在2015年,60岁及以上老年人口中空巢老人占比达到51.3%,空巢已经取代传统的与子女同住的家庭居住模式,成为中国老年人最主要的居住方式.201 ...

  7. 从零到百亿级,揭秘科大讯飞广告平台架构演进之路

    作者:仉乾隆 https://www.infoq.cn/article/PkWo_g6G5YGaXEiT8lm9 广告.电商和游戏是互联网变现的三个最主要手段,而电商中除了直接卖东西的部分,其他本质上 ...

  8. 日访问量百亿级的应用如何做缓存架构设计

    作者:陈波,新浪微博技术专家,著有<深入分布式缓存> 来自:公众号-中生代技术 全文:5588字28图 阅读时间:14分钟 微博日活跃用户1.6亿+,每日访问量达百亿级,面对庞大用户群的海 ...

  9. cassandra百亿级数据库迁移实践

    为什么80%的码农都做不了架构师?>>>    迁移背景 cassandra集群隔段时间出现rt飙高的问题,带来的影响就是请求cassandra短时间内出现大量超时,这个问题发生已经 ...

  10. Flink + Iceberg,腾讯百亿级实时数据入湖实战

    简介:上海站 Flink Meetup 分享内容,腾讯数据湖的百亿级数据场景落地的案例分享. 本文整理自腾讯数据湖研发高级工程师陈俊杰在 4 月 17 日 上海站 Flink Meetup 分享的&l ...

最新文章

  1. zabbix3.2.3安装部署
  2. python之numpy基础_Python知识普及:Numpy基础操作
  3. JVM内存模型知识点总结
  4. 【分享】LazyLoad延迟加载(按需加载)
  5. JSOUP 教程—— Java爬虫,简易入门,秒杀htmlparser
  6. put请求方式参数如何传_TP5请求(request)变量
  7. LeetCode 816. 模糊坐标
  8. 解决“在上下文中找不到 owin.Environment 项”
  9. html5 crop,HTML5内联SVG autocrop空格
  10. 朴素贝叶斯(Naive-Bayes)
  11. 分享一个Latex一页纸简历模板(中英文)
  12. 产生式系统有哪几种推理方式?各自的特点?
  13. php 各个版本,PHP各版本之间差异
  14. springboot大学校园网上图书馆信息管理系统的设计与实现小程序毕业设计源码091535
  15. 理解echo openssl概念、用法、常用参数
  16. 期望/概率dp 学习报告
  17. 表白神器-摩斯密码1121311233321113212313323332113
  18. 安卓5.0开发环境的搭建
  19. BrowserslistError: Unknown browser query `w`. Maybe you are using old Browserslist or made typo in q
  20. 手机射击游戏中弹幕的开发

热门文章

  1. 计算机主机技术标准规范,B级机房技术规范要求
  2. php版密码字典生成 原创,真空密码字典生成器-使用教程和下载
  3. 计算机应用基础题excel,计算机应用基础EXCEL练习题.doc
  4. 什么是代理服务器?【2022版指南】
  5. SpringMvc 最新jar包下载
  6. 数据库系统原理及mysql应用教程第二版_数据库系统原理及MySQL应用教程(第2版)...
  7. Maya2020入门:标题栏+菜单栏+状态栏
  8. DB2数据库添加 更改字段
  9. x5内核有什么优点_关于接入腾讯X5内核的一些坑(不断更新)
  10. 大众点评_token及登录分析