微服务应用性能分析实战07 数据可视化:多数据源让 Grafana 监控报警更高效

这篇具有很好参考价值的文章主要介绍了微服务应用性能分析实战07 数据可视化:多数据源让 Grafana 监控报警更高效。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这一讲我将带领你学习可视化监控套件 Grafana。Grafana 是一个开源的数据可视化的平台,所以它既不会监控应用,也不会产生监控数据,更不会对接原始数据进行分析存储。它仅专注数据可视化本身

本节内容,会先通过与上一节 Kibana 可视化套件对比,来讲述 Grafana 的核心设计。然后以实战视角,分享应用服务如何使用 Grafana 生成应用监控指标和落地实践。

为什么提起 Grafana 的设计,我就会关联上一节中的 APM 可视化平台 Kibana 呢?

有用过这两个可视化套件的同学可能觉得这两个产品有种说不出来的相似。比如仪表盘的构建基础都有丰富的可视化面板,开发人员都是在仪表盘通过动态的调整布局完成最终的仪表盘构建。

虽然 Grafana 默认主题是暗色,Kibana 主题是明亮色,但产品主题的外表差异,并不能掩盖内在相似这一事实。

那回到问题的答案。其相似的原因便是:Grafana 就是以 Kibana 3.0 的分支为基准进行产品演进的。

目前 Kibana 已经完全融入 Elastic 生态,而 Grafana 也站在巨人的肩膀上,在多数据源和面板,以及相应插件的生态上,有着非常亮眼的优势。

  • 如果是通过 Elastic Stack 对日志进行分析,或是为 Elasticsearch 集群提供可视化,那应该选取 Kibana 作为可视化监控平台;

  • 反之,如果被监控的场景需要聚合各种数据源,那应该选取 Grafana。

Grafana 的核心设计

接下来,我们就选取 Grafana 核心的两个设计:整合数据源和报警进行讲述。

1.整合数据源

目前 Grafana 官方已经支持了超过 30 多个数据源,像 InfluxDB、Prometheus、Elasticsearch 的数据源驱动都已经内置在安装包中,即使被监控的数据源没有在官方的支持列表中,也可以通过社区强大的插件生态,快速完成集成。

Grafana 在监控服务器节点的场景中,最常见的数据源是 Prometheus 和 Zabbix。

  • Prometheus

前者 Prometheus 数据源已经在官方的数据源支持列表中,

对于 Prometheus 如何集成指标数据,Grafana 在对接数据源后如何展示,你可以通过《16 | 指标体系:Prometheus 如何更完美地显示指标体系?》进行学习。

Prometheus 对容器资源的监控、支持非常友好,必定是未来容器化监控的主流监控基建。

  • Zabbix

但当下对物理节点的监控诉求还是很需要的。接下来,我将讲述 Grafana 如何通过插件生态,集成 Zabbix 数据源,完成对物理节点的性能指标监控。

Zabbix 是监控分布式系统的解决方案,其具备物理机性能监控和对网络状况的监控。使用客户端、服务端模式进行收集数据,即物理机安装 Zabbix Agent 客户端采集数据传送给服务端,通过 web 服务直接对接服务端完成展示。由于 Zabbix web 展示监控数据不理想,所以解决方案是通过 Grafana 集成 Zabbix 数据源完成监控数据的展示。

Zabbix 数据源属于非官方支持的数据源,需要从开放的插件生态引入,重启 Grafana 服务后,即可在数据源中看到 Zabbix 数据源。

2.多维度报警

相较于 Kibana 需要将用户升级为黄金用户以上级别才支持报警功能,Grafana 报警功能是完全开放的,只要将 Grafana 升级到 4.0 版本以上即可。

在报警配置界面,可以将报警信息发送至聊天工具 Slack、事件管理平台 PagerDuty 等在 Github 主流的报警媒介;也可以按照企业微信和钉钉的 API 开发文档,对接国内主流办公平台。通过配置报警媒介并集成监控数据源后,便能依据可视化面板的指标配置报警的规则了。

Grafana报警规则的设计是通过后台的一个调度程序,定时地通过查询引擎识别出当前可视化面板中的指标是否触及报警规则。如果触及,则调用报警媒介下达报警通知。

由于 Grafana 是可视化平台,监控数据的获取方式可视作为“拉模式”,且报警设计通过后台调度程序完成,所以此方案的设计来报警会稍许滞后。

下图为在平均响应时间超过 250 毫秒时,进行报警规则呈现。

除了可视化面板这一特色,Grafana 基于多种数据源数据指标的联动,更具备了多维度报警这一优势。基于丰富的数据源驱动的支持,一线开发通过 Grafana 便能快速完成应用服务的指标监控。这便是 Grafana 区别其他可视化监控平台的重要设计。

应用服务配置 Grafana 指标

互联网已经逐步告别了风口流量红利时代,现今留下来的多为行业独角兽。此时去研究竞争对手,还不如深耕自我实力,通过应用服务的提升,来提升用户使用体验。那如何深耕、提升自我的应用服务呢?

Grafana 就是不二之选,受益于协同开发和丰富数据源的设计,应用服务的干系人可以集思广益,一站式地将应用服务的核心指标监控梳理在一起。

下面以常见的用户行为监控和核心场景监控为例,与你分享我的实践经验。

1.用户行为监控

1)用户生命周期监控

常见生命周期分为如下图的 5 层,从用户接触产品到遗忘产品的整个过程中,我们可以通过监控分析用户在不同阶段的表现,有的放矢地优化产品体验,引导用户完成运营策略。

以电商 App 为例,通过 Grafana 快速构建起用户生命周期监控。

  • 导入期:在新用户调用注册接口时,通过埋点“来源”字段绘制折线,从而分析运营活动的拉新效果。

  • 成长期:新用户会通过新手任务来熟悉 App 的关键用法,并在这一过程中转化为核心用户。所以新手任务中每个步骤的友好度/易操作性非常重要。开发人员可以通过在各个步骤中埋点,通过柱状图分析出每个步骤的操作时间,从而推算出这一过程是否存在操作流程问题以及任务设置问题。

  • 成熟期:成熟期的用户标识有很多,如近三十天通过 App 购买过商品的即为活跃用户,我们可以通过集成订单表中的数据源完成监控。

  • 休眠&流失期:如多少天内不活跃的用户便可以标识为此层用户,开发人员可以通过集成操作日志数据源来完成此层用户的监控。

通过监控用户的这一完整生命周期,项目的干系人可以用相同的数据基准来驱动应用目标实现,并在建立数据的基础上完成自动机械化的精细运营策略投放,进而提升效率。

2)活跃用户监控

如果把用户生命周期比作在用户时间轴向的监控,那活跃用户监控就是对时间轴上每个点的切面监控。我们可以使用 Grafana 基于单点登录项目的用户会话数据源,来完成活跃用户的监控。

在当下应用服务容器化的背景下,企业通过对用户活跃度监控,可以更合理地根据用户活跃情况调整资源重心。

  • 在用户活跃度较高时,将资源倾斜到用户侧,扩容应用服务集群,给用户带来更好的产品体验。

  • 当用户活跃度较低时,资源倾斜到算法测,如通过机器学习完成用户画像的计算。研发也可以在此时上线发布新功能,对核心场景进行压测,确保线上用户负面反馈最小。

2.核心场景监控

业务场景的监控反映着用户使用产品的真实感受,有助于帮助开发人员优化相应的接口,进而提升系统的性能和稳定性。

核心场景监控可以通过如下四个指标进行开展。

  • 业务场景:通过一组相关联的数据或事件,来反映自然语言描述的业务场景。

  • 业务假设:通过业务场景可能在未来发生的事情做一系列的业务假设。

  • 监控方案:以业务场景的数据指标为依据,监控业务假设是否成立。

  • 关键举措:当假设成立时,启动一些应急举措。

根据上述内容作图,后期同学找我

下面我们以电商应用服务的通用场景为例,来简述核心场景的监控配置:

业务场景 业务假设 监控方案 关键举措
购买
  • 购买成功率小于四个九
  • 平均耗时大于几百毫秒
  • 接口埋点
  • Grafana 折线图
故障跟进
优惠券
  • 抵扣粒度大于一定比例
  • 某个商品红包大于一定金额
  • 巡检数据
下架商品
库存
  • 库存小于一定比例
  • 库存数据源监控
商家提醒

Grafana 落地实践

Grafana 是非常易用的可视化监控平台,在多数据的支撑下,项目干系人快速完成应用服务的指标监控。但是绘制可视化面板的指标查询命令非常占用资源,且每个应用的数据只有相关干系人才可以修改。

所以在下面的落地实践内容里,我将向你分享“预防拖垮核心资源”和“权限隔离”的实践经验。

1.预防拖垮核心资源

仪表盘中存在大量的面板,每个可视化面板都会调用聚合命令查询指标数据,所以仪表盘数据的展示非常占用系统资源。而且监控数据的查询时效要求相对较低,所以 Grafana 需要向所有项目干系人屏蔽“开放数据源配置”页面,由开发统一配置数据源的对应读库或统计库。

这样的优势在于所有使用 Grafana 的人员依然可以如以前一样,且使用的数据源有专人配置,所有指标查询语句均不会造成核心资源的占用。

开发人员可以根据数据源的类型梳理出对应资源占用少的数据源配置。

  • 对于关系型数据源:可以使用读写分离架构下的读库或离线库。

  • 对于搜索数据源:通过实时计算引擎将原始数据加工成指标数据进行存储。

  • 对于监控数据源:监控数据源专为 APM 而生,只需要拆解需求、查询即可,无须过度优化。

2.用户权限隔离

在落地 APM 可视化监控的过程中,我建议适当做一些防止数据泄漏的建设。固定用户类型权限设置显得过于简陋,而集成公司的登录系统和权限系统又不符合 APM 建设的重点。

那关于 Grafana 应该如何合理地控制权限呢?

我建议使用官方的“组织-用户”模式进行权限隔离。“组织”可看作是“应用服务”,用户则是通过在“组织”页面菜单中的邀请功能添加进来的。这样,不同组织的人员登录 Grafana 便能看到自己权限内部的仪表盘,当一个用户隶属于多个组织时,通过左上角的按钮即可进行组织的切换。

小结与思考

今天的课程,我带你学习了开箱即用的可视化平台 Grafana。对比上一讲的 Kibana,Grafana 在整合多数据源支持和报警能力上都有非常出色的表现。通过 Grafana 我们可以快速完成应用程序的指标监控,比如用户生命周期监控、业务的核心场景监控等。

相信你在工作中使用 Grafana 落地监控可视化的场景非常多。那么在仪表盘中,你整合了哪些数据源?完成了哪些监控场景?过程中得到了哪些收益,又遇到了哪些问题呢?

欢迎在评论区写下你的思考,期待与你讨论~文章来源地址https://www.toymoban.com/news/detail-450589.html


精选评论

到了这里,关于微服务应用性能分析实战07 数据可视化:多数据源让 Grafana 监控报警更高效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java web应用性能分析之客户端慢

    客户端慢的原因包括: 终端设备老化(手机、PAD、电脑年限久远、运行期间产生了很多垃圾未清除) 终端网络设备老化(路由器、交换机老化) 跟我们使用的手机一样,路由器也需要及时更新换代,否则硬件跟不上了,再高的宽带也带不来流畅的网速。其中传输协议对于路

    2024年04月24日
    浏览(23)
  • 微服务性能分析工具 Pyroscope 初体验

    Go 自带接口性能分析工具 pprof,较为常用的有以下 4 种分析: CPU Profiling: CPU 分析,按照一定的频率采集所监听的应用程序 CPU(含寄存器)的使用情况,可确定应用程序在主动消耗 CPU 周期时花费时间的位置; Memory Profiling: 内存分析,在应用程序进行堆分配时记录堆栈跟踪,

    2024年02月15日
    浏览(18)
  • 如何监测和优化阿里云服务器的性能?有哪些性能分析工具和指标?

    如何监测和优化阿里云服务器的性能?有哪些性能分析工具和指标? 阿里云服务器性能监测与优化是云计算服务中一个非常重要的环节。为了确保服务器稳定、高效地运行,我们需要对其性能进行监测,并在监测的基础上进行优化。本文将为您介绍如何监测和优化阿里云服务

    2024年02月11日
    浏览(35)
  • Linux服务器的性能监控与分析

     如上图所示,我们在命令vmstat后面添加了两个参数,1表示间隔一秒获取一次,10表示总共获取10次 我们一列一列数据来看: r:代表目前实际运行的指令队列,很高表示CPU很繁忙通常会CPU使用率过高 这个数据如果高于服务器CPU核数就可能出现瓶颈(需要结合后五列CPU使用百

    2024年02月12日
    浏览(36)
  • 性能测试分析案例-定位服务器丢包

    预先安装 docker、curl、hping3 等工具,如 apt install docker.io curl hping3。 案例是一个 Nginx 应用,如下图所示,hping3 和 curl 是 Nginx 的客户端。 在终端一中执行下面的命令,启动 Nginx 应用,并在 80 端口监听。如果一切正常,你应该可以看到如下的输出: 执行 docker ps 命令,查询容

    2024年02月01日
    浏览(37)
  • 【vite+vue3.2 项目性能优化实战】打包体积分析插件rollup-plugin-visualizer视图分析

    rollup-plugin-visualizer 是一个用于Rollup构建工具的插件,它可以生成可视化的构建报告,帮助开发者更好地了解构建过程中的文件大小、依赖关系等信息。 使用 rollup-plugin-visualizer 插件,可以在构建完成后生成一个交互式的HTML报告,其中包含了构建过程中的各种统计信息,如文

    2024年02月07日
    浏览(37)
  • Linux的服务器日志分析及性能调优

    作为网络安全和数据传输的重要环节,代理服务器在现代互联网中扮演着至关重要的角色。然而,在高负载情况下,代理服务器可能面临性能瓶颈和效率问题。本文将介绍如何利用Linux系统对代理服务器进行日志分析,并提供一些实用技巧来优化其性能。 1. 日志收集与分析

    2024年02月10日
    浏览(45)
  • 分析阿里巴巴的微服务依赖图和性能

    论文对阿里巴巴集群中部署的大规模微服务进行了全面的研究。他们分析了 7 天内 20,000 多个微服务的行为,并根据收集的 100 亿条调用跟踪来分析它们的特征。该论文获得SOCC 2021最佳论文奖。 他们发现: 微服务图在运行时是动态的 大多数图形像树一样分散生长 调用图的大

    2024年02月04日
    浏览(32)
  • ASEMI代理英飞凌TDK5100F射频模块的性能与应用分析

    编辑-Z 本文将对TDK5100F射频模块进行详细的介绍与分析,包括其性能特点、应用领域、使用方法。通过对这三个方面的阐述,希望能够帮助读者更好地了解TDK5100F射频模块的优势和应用场景。 1、TDK5100F射频模块的性能特点 TDK5100F射频模块是一款高性能的无线通信模块,具有以

    2024年02月08日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包