克里斯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插件,查看插件页面和文档。了解更多关于我们的改变情报,我们阅读博客或者看我们演示。