博客/工程

引入Grafana Lightstep Metrics插件

2021年9月7日 4分钟

克里斯Lightstep袋是一个软件工程师。出生的纽约人,他喜欢公共交通,建筑摄影,和城市的探索。他花了五年的工程的各种应用程序的用户体验。

Lightstep强大的指标为Grafana用户现在可以使用报告和分析。使用新的Lightstep Grafana Metrics插件,您可以直接查看指标数据报告给Lightstep Grafana实例。当你注意到改变你的系统,你可以调查是什么导致了它通过点击图导航到Lightstep改变情报。今天,我们来看看如何创建这个新工具。

创建插件

为了显示指标数据报告在Grafana Lightstep,我们创建了一个数据源插件。Grafana数据源插件允许使用外部数据源抓取,然后将数据转换成一种Grafana-compatible格式。创建这些插件Grafana提供了易于使用的资源,包括教程和一个CLI工具包。您可以查看源代码插件在GitHub上完成lightstep / lightstep-metrics-datasource

使用grafana-toolkit通过创建插件,我们开始从模板与源文件插件:创建命令,该命令生成的所有文件需要开始:

  • ConfigEditor.tsx反应UI组件的插件配置
  • QueryEditor.tsx反应组件编写表查询
  • datasource.ts数据获取和转换功能
  • types.ts插件的打印稿类型定义共享
  • plugin.json插件一般信息和元数据的定义

使用配置编辑器

为了从Lightstep的公共API请求度量数据,我们需要允许用户配置数据源和他们的组织,项目,和API密钥信息。Grafana配置编辑器提供了一组标准的UI使用表单字段组件的输入元素@grafana / ui包中。

对于安全,API密匙管理敏感数据,使用Grafana的secureJsonData机制。通过API键值保存为一个secureJsonData值,Grafana自动加密之前在服务器上存储的值。加密后,API键值不再能从浏览器访问。从Grafana通过一个查询请求数据源代理,包括API键值对Lightstep公共API请求进行身份验证。

Grafana插件提供了有用的类型定义配置编辑器的值:

/ * * *这些选项为每个数据源实例配置* /导出接口LightstepDataSourceOptions延伸DataSourceJsonData {orgName:字符串;projectName:字符串;}/ * * *值用于后端,但不会通过HTTP发送给前端* /导出接口LightstepSecureJsonData {apiKey吗?:字符串;}

查询Lightstep API

现在,我们可以配置插件,我们准备开始API请求Lightstep公共API来获取指标数据。在datasource.ts,查询函数定义了数据获取和转换逻辑。在这个函数中,我们将从Lightstep Grafana-compatible返回的数据格式。

抓取数据的最后一步是定义数据源代理服务器执行的路线:

{“路径”:“查询”、“url”:“https://api.lightstep.com/public/v0.2/ {{.JsonData.orgName}} /项目/ {{.JsonData。projectName}} /遥测/ query_timeseries”、“标题”:[{" name ":“授权”,“内容”:“不记名{{.SecureJsonData。apiKey}}},{“名称”:“内容类型”,“内容”:“application / json”}]}

转换成WideDataFrames改善性能

Lightstep返回的指标数据为每个系列提供了一个数据集按时间戳排序请求(查询)。

数据:属性:{系列:[{点:[[123],[124],[125],…]},{点:[[123],[124],[125],…]},…]}}

在Grafana使用这个指标数据,我们把它变成DataFrames,特别是WideDataFrames。使用WideDataFrames显著加快Grafana图渲染性能。WideDataFrames分享表示时间序列数据的时间属性。所以创建单独的DataFrames对于每个系列,每个都有自己的时间,我们一起存储的数据系列,一个时间字段。

[{类型:FieldType。时间,价值观:[123、124、125]},{类型:FieldType。数,价值观:[6,9日12]},{类型:FieldType。数,价值观:[19]17日,24日},……]

秘密武器:链接到改变情报

最后,也许是最令人兴奋,更新添加链接的能力Lightstep Grafana图表的变化智能功能。为此,我们自动生成数据链接对于每个数据源通过添加一个系列链接配置:

[{类型:FieldType。数,价值观:[6,9日12],链接:[{url:“https://app.lightstep.com/ $ {projectName} / chart-relay吗?${查询}”,targetBlank:真的,标题:“视图改变Lightstep的,}]},…]

使用此设置,点击图上的一个点给你一个数据链接使用一个自定义URL Lightstep改变情报。

下一个步骤

开始Grafana Lightstep Metrics插件,查看插件页面和文档。了解更多关于我们的改变情报,我们阅读博客或者看我们演示