**Grafana服务|后端开发也能快速验证原型**
**引言**
Grafana作为市场上领先的开源监控解决方案之一,使得数据监控和可视化变得触手可及。作为一款开源的数据可视化和分析软件,Grafana支持查询、可视化、提醒和探索您的各种数据,无论它们存储在何处。Grafana通过数据源插件的方式提供对各类数据源的支持,用户可以利用其广泛的数据源插件,轻松整合来自不同平台的指标,并通过个性化的仪表板呈现关键的性能数据,并且支持自定义警报。
本文旨在提供一个指导性的框架,帮助用户了解插件的安装、配置以及探索如何通过Grafana内的阿里云OpenAPI插件来对云上数据进行可视化和快速验证开发原型,加强数据可视化和云监控能力,助力开发速度。
基于阿里云OpenAPI数据源插件,您可以将云上资源等信息以类似下图效果进行可视化展示。

为什么需要阿里云 OpenAPI 插件?
在软件开发的快节奏环境中,快速迭代与验证创新是保持竞争力的关键。传统开发模式下,新功能验证涉及前后端的深度协同,导致效率瓶颈。此外在开发过程中,监控数据的有效可视化对于高效决策至关重要,它将复杂信息简化为直观图表,加速问题发现与解决,而云上的部分非传统指标数据难以直接在监控工具中采集,构成了额外挑战。Grafana作为领先的开源监控工具,简化了数据洞察过程,支持多样化数据源接入。通过阿里云OpenAPI以获得全面的云上数据作为监控存在以下障碍:鉴权限制、非指标数据整合困难,以及缺乏直接基于OpenAPI数据设置警报的机制。
为应对以上问题,开发了一个新的阿里云OpenAPI插件用于Grafana,它通过以下核心机制解决上述问题:
- 加速原型验证:Grafana作为一个成熟的监控和可视化平台,提供了丰富的图表、图形和仪表板,无需从头构建前端界面即可实现高质量的数据展示。而结合阿里云Open API,则可以轻松获取和处理云端的数据,这为后端开发者验证新的业务逻辑和数据分析方法提供了极大的便利。后端能独立、迅速地基于阿里云的海量数据资源构建数据驱动型业务原型,快速搭建前端原型,缩短方案验证周期。
- 数据展示拓展:通过阿里云OpenAPI,可以在Grafana内获取云上的一些非传统监控数据进行展示,可以实现自定义的从概览仪表板下钻到基于OpenAPI获取的详细资源状态或配置信息以快速定位和排查问题。
- 数据告警通知:结合Grafana内置的警报系统,可以根据OpenAPI查询结果设定条件,触发警报并通过邮件、短信等多种渠道通知相关人员,增强对阿里云资源变化的即时响应能力。
**Grafana 阿里云 OpenAPI 插件安装及使用指南**
**功能简介**
Open API是阿里云提供的云产品开放接口的调用方式,使用Open API可以方便地调用各云产品提供的API接口,轻松实现控制及查询等功能。在Grafana中,最常见的场景是使用Open API调用其他的云产品的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数据源,并配置以下参数:
| 参数 | 说明 |
|---|---|
| Name | 数据源名称,自行定义 |
| AccessKeyId AccessKeySecret | AccessKeyId:可以调用Open API的账号的AccessKey ID。获取方式,请参见[查看RAM用户的AccessKey信息](https://help.aliyun.com/zh/ram/user-guide/view-the-accesskey-pairs-of-a-ram-user#task-187540)。 AccessKeySecret:可以调用Open API的账号的AccessKey Secret。控制台不支持查看AccessKeySecret,您创建用户成功后可以自行保存AccessKeySecret。 |
| Product | 云产品名称,支持从下拉列表选择/直接输入 |
| Endpoint | Open API的服务地址,需要您从云产品的API文档处获取。支持多地域[regionId]格式的服务地址,如果采用多地域格式,需要在查询参数中给出RegionId。 |
| Version | 云产品版本,从云产品的API文档处获取。 |
| Style | 从云产品的API文档处获取。 |
配置示例如图2。

图2 数据源配置示例
最后点击Save & Test,当页面显示Data source is working时,表示数据源已经添加成功。
**构建监控面板**
配置查询页面:
- 在Action标签页中,填写以下参数,示例如图3
- 填写云产品名称,即步骤二中创建的数据源中的Product参数。
- 填写一种请求方式,即method参数,一般填写为POST或者GET。
- 填写需要调用的接口名称,即action参数,取值来自云产品提供的API列表。
- 填写请求路径,即pathName参数,一般仅在ROC Style的调用中需要填写。

图3 查询配置——Action标签页
- 在Params标签页中,点击Add Param,输入参数名和取值。

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

图5 查询配置——Fields标签页
- 如何创建Time Series类型的盘:
创建一个时间序列图(Time Series),需要一系列与时间戳关联的数据点。配置时,数据必须满足以下格式标准:
时间轴(横轴):需要提供可以转换为ISO标准时间格式的时间值。在图表的配置中,时间数据的数据类型应选择为“Time”以正确解析时间信息。
数据轴(纵轴):每个时间戳对应的数据值需要是数字类型的。在图表的配置中,这些数据的类型应当选择为“Number”以确保图表可以正确展示数据。
根据上述信息配置好图表后,能够看到一个时间序列图,它在时间轴上展示了按照时间顺序排序的数据点,以及每个数据点在纵轴上对应的数值。这种图表非常适合观察和分析随时间变化的趋势,以 ListAlerts 接口为例,可以设置时间序列图表展示告警恢复时间的变化趋势,配置效果如图6。

图6 TimeSeries Panel示例
- 最终示例
体验链接:https://demo.grafana.aliyuncs.com/d/uid_for_demo_home/openapi-home?orgId=1
