插件 〉Plotly
Plotly
Plotly 面板
使用 Plotly.js 渲染图表。
- 导出绘图图像(带指定分辨率和类型)
- 支持 YAML/JSON
- 自动/手动时区调整
- 跨轨迹应用
Data
配置 - 可扩展的代码编辑器
- Grafana 变量替换
- 强大的错误处理
- ... 以及更多!
入门
Plotly 面板是 nLine 的尝试,旨在对我们在 Grafana 中渲染分析的方式有更多控制。它提供了一种基于组件的方法来构建 Plotly 面板。这样,您就可以独立地修改静态元素,而无需通过 JavaScript 与动态元素进行交互。
结构
data、layout 和 config 字段是必需的对象,在 Plotly 的文档 中有描述。它们必须按 此模式 结构化。但是,为了方便在开发过程中使用,它们可以被解析并解释为 YAML 或 JSON。这些字段由 Plotly 作为 { data: [traces], layout: layout, config: config }
消费,并在面板内生成一个 Plotly 图表。
数据源提供的数据可以在传递到 Plotly 图表之前通过用户定义的脚本进行转换。此 script
部分包含一些可以使用的隐式变量
data
数据源查询返回的数据。有关对象的模式,请参见下面的示例。
variables
包含 Grafana 的仪表板变量 的对象,这些变量在当前仪表板中可用(用户变量以及一些全局变量:__from
、__to
、__interval
和 __interval_ms
)。
parameters
面板的数据、布局和配置对象。在将数据面板中的静态属性(作为一项而不是数组)跨多个轨迹应用(例如通过合并)的情况下,这可能会有所帮助。
timeZone
仪表板时区
dayjs
一个 小型时区库
matchTimezone
一个用于包装时间序列数据的便捷函数,用于将数据转换为用户的时区。
该脚本必须返回一个包含以下一个或多个属性的对象
data
layout
config
frames
注意:data
和 frames
属性是字典/JSON 数组,必须以破折号开头(符合 YAML 规范)或作为函数返回值中的数组添加。但是,“跨跟踪数据”字段可以是一个对象,在这种情况下,它将把参数应用于脚本部分中返回的所有跟踪。所有对象都会合并在一起,脚本对象优先。例如,data
来自脚本 > allData
> data
。
时区可以通过选择带有时区校正选项的时间列自动转换为用户仪表板时区。
Grafana 10 后的更改
⚠️ 在 Grafana 10 之前,从
data
变量访问字段的语法不同。使用data.series[0].fields[0].values.buffer
。10 版之后,这些数组存储时不带.buffer
属性。
示例脚本
// Get the first series let series = data.series[0]; // For buffer needed for Grafana < 10 let x = series.fields[0].values.buffer || series.fields[0].values; let y = series.fields[1].values.buffer || series.fields[1].values;
// If you can reference your SQL column names, this might be easier // let fields = Object.fromEntries(data.series[0].fields.map((x) => [x.name, x.values])); // x, y = fields[’time’], fields[‘data’] // where ’time’ and ‘data’ are column names
// Switch from UTC to the dashboard time zone or use “Timezone correction” and select the column x = matchTimezone(x);
let series = { x: x, y: y, name: variables.dash_var, // Where ‘dash_var’ is the name of // a Grafana dashboard variable };
return { data: [series], config: { displayModeBar: false, }, };
截图
有关截图,请参见 src/img
文件夹。
在 Grafana Cloud 上安装 Plotly
在 Grafana Cloud 实例上安装插件只需单击一下即可安装;更新也是如此。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需单击一下即可安装;更新也是如此。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需单击一下即可安装;更新也是如此。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需单击一下即可安装;更新也是如此。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需单击一下即可安装;更新也是如此。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需单击一下即可安装;更新也是如此。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需单击一下即可安装;更新也是如此。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
有关更多信息,请访问关于 插件安装 的文档。
在本地 Grafana 上安装
对于本地实例,插件是通过简单的 CLI 命令安装和更新的。插件不会自动更新,但是当有更新可用时,您会在 Grafana 中收到通知。
1. 安装面板
使用 grafana-cli 工具从命令行安装 Plotly
grafana-cli plugins install
该插件将被安装到您的 Grafana 插件目录中;默认目录为 /var/lib/grafana/plugins。 有关 cli 工具的更多信息。
2. 将面板添加到仪表板
已安装的面板在 Grafana 主菜单的仪表板部分中立即可用,并且可以像 Grafana 中的任何其他核心面板一样添加。
要查看已安装面板的列表,请单击主菜单中的插件项。核心面板和已安装的面板都会显示。
更改日志
此项目的任何重大更改都将在本文件中记录。
[1.7.0] - 2024-08-07
已更改
- 进行重大重构,包含多个修复和改进
- 图像导出反映所有配置选项
- 与 Grafana 相匹配的亮/暗主题
- 更新了主题颜色
- 更好的错误显示
- 当源中没有数据时,会显示更清晰的消息
- 更新了边距(所有边距默认为 0)
- 更多记忆化以减少重新渲染
- 修复了工作流程并更新了 Node 版本
- 使用 grafana/create-plugin 更新
- 更新了许可证
- 添加了更改日志
已修复
- 修复了高度/宽度调整大小的错误
- 修复了脚本验证可能导致的崩溃
[1.6.7] - 2024-04-08
已修复
- 针对 1.6.7 的小修复
[1.6.6] - 2024-03-27
已更改
- 将图像渲染函数移出面板
- 改进了错误处理
- 更新到 create-plugin
[1.6.5] - 2024-01-08
已更改
- 更新了 README.md
- 修复了可调整大小的问题
[1.6.4] - 2023-11-16
已修复
- 修复了时区匹配器
[1.6.3] - 2023-11-16
已添加
- 添加了选择时间校正列的功能
[1.6.2] - 2023-10-26
已改进
- 增强了 matchTimezone 逻辑
[1.6.1] - 2023-10-06
已添加
- 添加了图像导出格式选择器
已更改
- 现在传递了整个变量对象
[1.6.0] - 2023-09-25
已修复
- 修复了“浏览器”时区问题
已更改
- 删除了强制默认值
- 添加了 matchTimezone 函数