1

我能够生成面板 JSON 来配置 Grafana 仪表板,如下所示:

jsonnet -J ~/grafana/grafonnet-lib mydash.jsonnet > mydash.json

但是,我喜欢在 Grafana 本身中操作和编辑生成的仪表板。

我绝对感到困惑和沮丧的是,一旦我通过调整其设置等方式在 Grafana 中进行了 UI 更改......如何将其恢复到 Jsonnet 中?现在对我来说,这是一个超级尴尬的开发体验。我导出面板 JSON 并在单独的窗口中打开源 Jsonnet 并认真尝试移植我的更改。

当您使用 JSON 时,这尤其痛苦:

      "sparkline": {
              "fillColor": "rgba(31, 118, 189, 0.18)",
              "full": true,
              "lineColor": "rgb(31, 120, 193)",
              "show": true
      },

您需要手动转换为 Jsonnet/Graffonet-lib:

sparklineShow=true,
sparklineFull=true,
colorBackground=true,

我错过了技巧或工作流程吗?

4

1 回答 1

1

您必须编辑 mydash.jsonnet 并在那里添加所需的属性。目前没有我知道的自动方式可以从 grafana-json 转换回 grafonnet。有时找到合适的属性有点痛苦。

您正在寻找的属性在这里:https ://github.com/grafana/grafonnet-lib/blob/master/grafonnet/singlestat.libsonnet#L44

像这样的东西应该工作:

本地 grafana = import 'grafonnet/grafana.libsonnet';


grafana.dashboard.new(
  '迷你图示例'
)
.addPanel(
  grafana.singlestat.new(
    '正常运行时间',
    格式='s',
    跨度=4,
    valueName='当前',
    sparklineFillColor='rgba(31, 118, 189, 0.18)',
    sparklineFull=真,
    sparklineLineColor='rgb(31, 120, 193)',
    sparklineShow=真,
  )
  .addTarget(
    grafana.prometheus.target(
      '时间()',
    )
  ), 网格位置={
    x: 0,
    y: 0,
    w: 24,
    h: 3,
  }
)
于 2020-01-10T17:13:28.767 回答