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

如何将Grafana的数据集合到自己前端项目的数据驾驶舱中

Grafana是可以提供APIKeys给你可以让你直接使用从Grafana获取来的数据来搭配其他图形工具来实现数据监控图的。虽然它本身也可以显示数据,但是有时候数据很全面且分散

  Grafana是可以提供API Keys给你可以让你直接使用从Grafana获取来的数据来搭配其他图形工具来实现数据监控图的。虽然它本身也可以显示数据,但是有时候数据很全面且分散在不同页面,而有些运维同学只需要某些重要的数据,不能一下子直观看清,所以某些重要常用的数据可以单独摘选出来,不常用的可以在打Grafana查看。

   先在Grafana中打开设置->API Keys->填写Key name,角色权限根据需求,图中设置为admin,过期时间根据需求,图中设置不填默认无过期时间,然后就会弹出一个弹窗,先别急着关掉!!!

   弹窗里会给你一段curl,这段话的意思就是向http地址发了一个头部带有Authorization(token)的请求。先把这段话保存下来,关闭弹窗之后没地方查看。这里面有两个有用的信息,一是http地址,二是token。http地址你可以设置为前端代理转发的后端地址,而token是你发起向Grafana后端发起请求的时候所需要的头部凭证,否则会授权失败,获取不到数据。

  之后你就可以模拟Grafana前端的查询数据,向Grafana后端发起请求。需要注意的是Grafana基本搭配的是Elasticsearch数据源,请求体中携带的语句是查询语句,对Elasticsearch语句有点了解是最好的,不清楚也可以f12打开控制台network,然后点一个数据发请求看它原本的请求体里的Elasticsearch语句是怎么写的。这里还需要注意以下几点:

    1.查询语句中有包含“\”等符号需要考虑是否能够会被转义的问题,因为字符串中的“\”本身就代表转义,对于有意义的“\n”会解释为换行符,对于“\uXXXX”会解释为Unicode对应的字符,对于没有意义的“\0101”则会省略“\”解释为0101。所以为了解决这个问题,得用“\\”来替代“\”,这样原本字符串就会消耗掉一层“\”,变成正常的查询语句。

    2.批量请求查询语句如果非常长,建议先用一个数组分段保存起来,然后用换行符(\n)拼接起来,否则一长串直接敲击回车键换行vscode会报错。

let bulkRequestBodyArray=[
"语句1",
"语句2",
"语句3",
"语句4",
];
let params
=bulkRequestBodyArray.join("\n");
params
=params+'\n'; // 批量请求查询语句必须以“\n”终止
//下面这种方法也行
let bulkRequestBodyArray=[
"语句1\n",
"语句2\n",
"语句3\n",
"语句4\n",
];
let params
=bulkRequestBodyArray.join("");

Elasticsearch官网对批量请求语句写法的要求

    3.查询语句中有携带grafana的时间戳的,可以拼接自己所需要的时间。

    4.每个请求都需要携带token请求头,建议将之前获取的token配置为默认的请求头参数,此处以axios为例:axios.defaults.headers.common['Authorization'] ='Bearer XXXXXXXXXXXXX';

  获取到数据,就可以搭配vcharts或Echarts来构建自己需要的监控图了。



推荐阅读
  • 入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
    本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ... [详细]
  • 本文介绍如何使用JavaScript中的for循环来创建一个九九乘法表,适合初学者学习循环结构的应用。 ... [详细]
  • 本文深入探讨了Go语言中的接口型函数,通过实例分析其灵活性和强大功能,帮助开发者更好地理解和运用这一特性。 ... [详细]
  • OBS Studio自动化实践:利用脚本批量生成录制场景
    本文探讨了如何利用OBS Studio进行高效录屏,并通过脚本实现场景的自动生成。适合对自动化办公感兴趣的读者。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • Jenkins API当前未直接提供获取任务构建队列长度的功能,因此需要通过解析HTML页面来间接实现这一需求。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 本书《.NET Core 2.* 开发者指南》是面向开发者的全面学习与实践手册,涵盖了从基础到高级的各个层面。书中详细解析了 .NET Core 的核心概念,包括如何创建 .NET Core 网站,并通过视频教程直观展示操作过程。此外,还深入探讨了 Startup 类的作用、项目目录结构的组织方式以及如何在应用中使用静态文件等内容。对于希望深入了解 .NET Core 架构和开发技巧的开发者来说,本书提供了丰富的实践案例和详尽的技术指导。 ... [详细]
  • 本文探讨了在PHP中使用foreach循环遍历数组后,为何不能再通过while结合list和each函数进行遍历的原因,并提供了详细的解释。 ... [详细]
  • 本文详细介绍了如何在 Vue CLI 3.0 和 2.0 中配置 proxy 来解决开发环境下的跨域问题,包括具体的配置项和使用场景。 ... [详细]
  • 深入理解Java SE 8新特性:Lambda表达式与函数式编程
    本文作为‘Java SE 8新特性概览’系列的一部分,将详细探讨Lambda表达式。通过多种示例,我们将展示Lambda表达式的不同应用场景,并解释编译器如何处理这些表达式。 ... [详细]
  • 本教程介绍如何在C#中通过递归方法将具有父子关系的列表转换为树形结构。我们将详细探讨如何处理字符串类型的键值,并提供一个实用的示例。 ... [详细]
author-avatar
我要知道521无敌
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有