掘金 阅读 ( ) • 2024-06-26 17:57

作者:徽泠

引言

Grafana 作为市场上领先的开源监控解决方案之一,使得数据监控和可视化变得触手可及。作为一款开源的数据可视化和分析软件,Grafana 支持查询、可视化、提醒和探索您的各种数据,无论它们存储在何处。Grafana 通过数据源插件的方式提供对各类数据源的支持,用户可以利用其广泛的数据源插件,轻松整合来自不同平台的指标,并通过个性化的仪表板呈现关键的性能数据,并且支持自定义警报。

本文旨在提供一个指导性的框架,帮助用户了解插件的安装、配置以及探索如何通过 Grafana 内的阿里云 OpenAPI 插件来对云上数据进行可视化和快速验证开发原型,加强数据可视化和云监控能力,助力开发速度。

基于阿里云 OpenAPI 数据源插件,您可以将云上资源等信息以类似下图效果进行可视化展示。

图片

为什么需要阿里云 OpenAPI 插件?

在软件开发的快节奏环境中,快速迭代与验证创新是保持竞争力的关键。传统开发模式下,新功能验证涉及前后端的深度协同,导致效率瓶颈。此外在开发过程中,监控数据的有效可视化对于高效决策至关重要,它将复杂信息简化为直观图表,加速问题发现与解决,而云上的部分非传统指标数据难以直接在监控工具中采集,构成了额外挑战。Grafana 作为领先的开源监控工具,简化了数据洞察过程,支持多样化数据源接入。通过阿里云 OpenAPI 以获得全面的云上数据作为监控存在以下障碍:鉴权限制、非指标数据整合困难,以及缺乏直接基于 OpenAPI 数据设置警报的机制。

为应对以上问题,开发了一个新的阿里云 OpenAPI 插件用于 Grafana,它通过以下核心机制解决上述问题:

  • 加速原型验证: Grafana 作为一个成熟的监控和可视化平台,提供了丰富的图表、图形和仪表板,无需从头构建前端界面即可实现高质量的数据展示。而结合阿里云 OpenAPI,则可以轻松获取和处理云端的数据,这为后端开发者验证新的业务逻辑和数据分析方法提供了极大的便利。后端能独立、迅速地基于阿里云的海量数据资源构建数据驱动型业务原型,快速搭建前端原型,缩短方案验证周期。
  • 数据展示拓展: 通过阿里云 OpenAPI,可以在 Grafana 内获取云上的一些非传统监控数据进行展示,可以实现自定义的从概览仪表板下钻到基于 OpenAPI 获取的详细资源状态或配置信息以快速定位和排查问题。
  • 数据告警通知: 结合 Grafana 内置的警报系统,可以根据 OpenAPI 查询结果设定条件,触发警报并通过邮件、短信等多种渠道通知相关人员,增强对阿里云资源变化的即时响应能力。

Grafana 阿里云 OpenAPI 插件安装及使用指南

功能简介

OpenAPI 是阿里云提供的云产品开放接口的调用方式,使用 OpenAPI 可以方便地调用各云产品提供的 API 接口,轻松实现控制及查询等功能。在 Grafana 中,最常见的场景是使用 OpenAPI 调用其他的云产品的 API,获取数据并展示出来。

图片

图 1 Grafana 的数据插件原理

插件安装

  • 如果是阿里云上的 Grafana 服务(version >= 9.0.x),目前已默认安装阿里云 OpenAPI 插件。
  • 如果是自建 Grafana,请到 github 仓库 release 处下载安装包,并放到 grafana 插件目录下。
    • github仓库地址:https://github.com/alibabacloud-observability/aliyun-openapi-grafana-datasource-plugin
    • 修改配置文件:在配置文件 grafana.ini 的 [plugins] 节点中,设置 allow_loading_unsigned_plugins,并重启 grafana
[plugins]
allow_loading_unsigned_plugins = aliyun-openapi-grafana-datasource-plugin

数据源配置

在数据源管理面板,添加 OpenAPI 数据源,并配置以下参数:

image.png

配置示例如图 2。

图片

图 2 数据源配置示例

最后点击 Save & Test,当页面显示 Data source is working 时,表示数据源已经添加成功。

构建监控面板

配置查询页面:

  1. 在 Action 标签页中,填写以下参数,示例如图 3。

a. 填写云产品名称,即步骤二中创建的数据源中的 Product 参数。 b. 填写一种请求方式,即 method 参数,一般填写为 POST 或者 GET。 c. 填写需要调用的接口名称,即 action 参数,取值来自云产品提供的 API 列表。 d. 填写请求路径,即 pathName 参数,一般仅在 ROC Style 的调用中需要填写。

图片

图 3 查询配置——Action 标签页

  1. 在 Params 标签页中,点击 Add Param,输入参数名和取值。

图片

图 4 查询配置——Params 标签页

  1. 在 Fields 标签页中,在 Field 中配置返回结果的解析,$ 代表所有数据,按照 Json 解析。Type 选择数据类型,默认为 Auto,Alias 配置列的别名。

图片

图 5 查询配置——Fields 标签页

  1. 如何创建 Time Series 类型的盘:

创建一个时间序列图(Time Series),需要一系列与时间戳关联的数据点。配置时,数据必须满足以下格式标准:

  • 时间轴(横轴): 需要提供可以转换为 ISO 标准时间格式的时间值。在图表的配置中,时间数据的数据类型应选择为 “Time” 以正确解析时间信息。
  • 数据轴(纵轴): 每个时间戳对应的数据值需要是数字类型的。在图表的配置中,这些数据的类型应当选择为 “Number” 以确保图表可以正确展示数据。

根据上述信息配置好图表后,能够看到一个时间序列图,它在时间轴上展示了按照时间顺序排序的数据点,以及每个数据点在纵轴上对应的数值。这种图表非常适合观察和分析随时间变化的趋势,以 ListAlerts 接口为例,可以设置时间序列图表展示告警恢复时间的变化趋势,配置效果如图 6。

图片

图 6 TimeSeries Panel 示例

  1. 最终示例

体验链接:https://demo.grafana.aliyuncs.com/d/uid_for_demo_home/openapi-home?orgId=1

图片

相关链接:
[1] 查看 RAM 用户的 AccessKey 信息

https://help.aliyun.com/zh/ram/user-guide/view-the-accesskey-pairs-of-a-ram-user#task-187540