热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分分钟教会你,解决Grafana中String类型的展示问题

文章目录特殊场景解决方案方案一「APIPanel」方案二「MetricTableDisplay」方案施行流程最终效果Q&A附录目前在企业级监控中,许多公司都用了Pro

文章目录

    • 特殊场景
    • 解决方案
      • 方案一「 API + Panel 」
      • 方案二「 Metric + Table + Display」
    • 方案施行流程
    • 最终效果
    • Q&A
    • 附录



  目前在企业级监控中,许多公司都用了 Prometheus + Grafana 组件。有些特殊场景需要以 String 类型为主要展示内容,那么你们的解决方案是什么呢?

了解更多,请关注 公众号 “
code 杂坛 “!

特殊场景


  • 场景一
      在一个业务任务中,通过抢锁的方式确保当前有且仅有一个节点在执行任务,且一但节点故障,其他节点替换执行。

「 锁:基于redisgo的分布式锁https://blog.csdn.net/qq_34417408/article/details/117224113 」
为了能够定位当前执行任务的节点,在锁的 value 中存储了节点 IP 。在进行展示的时候,遇到了问题,Prometheus + Grafana 貌似无法对 String 类型进行展示?


「 此处展示指,以String 类型展示为主,非 x 轴或注释形式。」
了解更多,请关注 公众号 “ code 杂坛 “!


  • 场景二:
      在对集群监控时,需要突出故障节点所在机房信息,遇到了同样的问题,貌似无法对 String 类型进行展示?
    了解更多,请关注 公众号 “ code 杂坛 “!


  作为一款云原生时代的实时监控,Prometheus 指标提供了四种基本类型,分别为 Counter、Guage、Histogram、Summary 。
  深入了解,会发现这几种都是基于数值进行各种聚合,在 Grafana 联合中,展示面板的 Value 主体也是以数值为主。

  那么 Prometheus + Grafana 如何进行 String 类型的展示呢?下面唠下相关解决方案…



解决方案


方案一「 API + Panel 」

  通过 API 提供 String 类型数据源,自定义 Panel 的 Json 字段配合 API 结构进行调整,进行展示。

  • 但是往往我们不采取这种方案,有一下痛点:
    1、API格式有规范,且 Response 需要满足 Grafana Panel 基本准则,需满足 Panel 中基础元素的填充。
    2、Panel Json 元素基本填充准则相关文档匮乏
    3、调试复杂,改变 Json,观察视图

  有另一种更简洁、灵活的方案,甚是便捷,方案如二!

方案二「 Metric + Table + Display」

  利用常规的指标设计采集数据,在展示时,Format 选择 Table,数据则自动聚合为 “列 + 行” 的样式,之后可将非必要字段隐藏,主显示目标 String 类型的 Label 即可。
了解更多,请关注 公众号 “ code 杂坛 “!

方案施行流程


  • 下面讲解方案二执行流程。分为一下几步:

  • 1、设计指标:
    fe_task_node{“node”="10.75.26.1|10.75.26.2|10.77.121.3|…”}

  • 2、Prometheus Http Api
    //HELP fe_task_node XXXXXdesc
    //TYPE fe_task_node counter
    fe_task_node{node=“10.77.121.108”} 13

  • 3、Query配置如图
    在这里插入图片描述

  • 4、Visualization配置如图
    在这里插入图片描述

  • 5、TransForm配置如图
    在这里插入图片描述

  • 6、Field配置如图在这里插入图片描述


最终效果

  通过方案二实施之后,效果图如下。
在这里插入图片描述

Q&A

1、还有其他更敏捷的解决方案吗?

存在,Prometheus 、 Grafana 国内文档相对比较少,了解的同学可以补充在评论中。


附录

一天一个小技巧,偷偷超越隔壁老大哥!

在这里插入图片描述
了解更多,请关注 公众号 “ code 杂坛 “!


推荐阅读
  • 使用DataGridViewComboBoxColumn实现数据绑定与操作
    本文详细介绍如何在DataGridView中使用DataGridViewComboBoxColumn来加载、选择和保存数据库中的数据,提供具体的实现步骤和示例代码。 ... [详细]
  • OpenWrt 是一款高度可定制的嵌入式 Linux 发行版,广泛应用于无线路由器等领域,拥有超过百个预装软件包。本文详细探讨如何在 OpenWrt 上通过 Luci 构建自定义模块,以扩展其功能。 ... [详细]
  • 导读上一篇讲了zsh的常用字符串操作,这篇开始讲更为琐碎的转义字符和格式化输出相关内容。包括转义字符、引号、print、printf的使用等等。其中很多内容没有必要记忆,作为手册参 ... [详细]
  • UnityNGUIScrollView苹果式滑动
    又回来写博客了,这回已经开始上班了,所以就发一发工作中解决的难题吧。单个展示Panel(苹果式)以前对UI的滑动组件很烦心,不是很会用,这回项目要求写一个类似于苹果的文件滑动效果, ... [详细]
  • 本文档详细介绍了服务器与应用系统迁移的策略与实施步骤。迁移不仅涉及数据的转移,还包括环境配置、应用兼容性测试等多个方面,旨在确保迁移过程的顺利进行及迁移后的系统稳定运行。 ... [详细]
  • 本文详细介绍了Java中`org.sakaiproject.site.api.Site.addPage()`方法的功能和使用方法,并提供了多个实际项目中的代码示例。 ... [详细]
  • 本文探讨了如何利用自定义URI方案和注册表编辑,在Windows操作系统中实现从Web浏览器启动本地应用程序的方法,同时强调了这一过程中的安全考虑。 ... [详细]
  • Android实战:使用ProgressBar与AsyncTask实现数据异步加载
    本文介绍如何利用ProgressBar和AsyncTask在Android应用中实现数据的异步加载。包括加载数据的不同状态下的UI展示,如加载中、加载成功及加载失败时的界面处理。 ... [详细]
  • 本文探讨了为何采用RESTful架构及其优势,特别是在现代Web应用开发中的重要性。通过前后端分离和统一接口设计,RESTful API能够提高开发效率,支持多种客户端,并简化维护。 ... [详细]
  • 本文介绍了一个使用Keras框架构建的卷积神经网络(CNN)实例,主要利用了Keras提供的MNIST数据集以及相关的层,如Dense、Dropout、Activation等,构建了一个具有两层卷积和两层全连接层的CNN模型。 ... [详细]
  • TensorFlow 2.0 中的 Keras 数据归一化实践
    数据预处理是机器学习任务中的关键步骤,特别是在深度学习领域。通过将数据归一化至特定范围,可以在梯度下降过程中实现更快的收敛速度和更高的模型性能。本文探讨了如何使用 TensorFlow 2.0 和 Keras 进行有效的数据归一化。 ... [详细]
  • AIY计划由Google发起,旨在通过提供易于使用的工具包和技术支持,激发全球创客的创造力,推动人工智能技术的普及与创新。 ... [详细]
  • 本文详细介绍了如何通过 `vue.config.js` 文件配置 Vue CLI 的打包和代理设置,包括开发服务器配置、跨域处理以及生产环境下的代码压缩和资源压缩。 ... [详细]
  • 重构:优化现有代码设计(第二版)笔记
    本文介绍了重构的基本概念,通过具体示例展示了如何提炼函数以处理过长的代码段,并探讨了多种重构技术,如分阶段重构、封装变量等。 ... [详细]
  • 实现‘点击恢复’功能 - Tap-to-Resume Feature in SpriteKit
    了解如何在应用程序从非活动状态返回时,在SpriteKit游戏中添加一个‘点击恢复’的文字提示。 ... [详细]
author-avatar
888真人游戏官网1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有