grafana插件的field和overrides

举报
Nick Qiu 发表于 2020/11/14 21:27:25 2020/11/14
【摘要】 简介前面篇文章编写grafana插件配置通常在panel页签的display组下配置,我们查看grafana原生的插件,经常可以看到有些插件有field和overrdes 2个页签可以配置更多的内容,其中:field配置查询结果所有列的的公有配置属性overrides 单独配置一个或者几个列的配置属性实际输出的配置值overrides的优先级高于field的优先级如何打开field和over...

简介

前面篇文章编写grafana插件配置通常在panel页签的display组下配置,我们查看grafana原生的插件,经常可以看到有些插件有field和overrdes 2个页签可以配置更多的内容,其中:

  • field配置查询结果所有列的的公有配置属性

  • overrides 单独配置一个或者几个列的配置属性

  • 实际输出的配置值overrides的优先级高于field的优先级

如何打开field和overrides配置

如下图所示useFieldConfig使能并配置field并且设置配置窗口

import { PanelPlugin } from '@grafana/data';
import { CustomFieldConfig, Options } from './types';
// import { tableMigrationHandler, tablePanelChangedHandler } from './migrations';
import { TableCellDisplayMode } from '@grafana/ui';
import { SimplePanel } from 'SimplePanel';
export const plugin = new PanelPlugin<Options, CustomFieldConfig>(SimplePanel)
  // .setPanelChangeHandler(tablePanelChangedHandler)
  // .setMigrationHandler(tableMigrationHandler)
  .setNoPadding()
  .useFieldConfig({
    useCustomConfig: builder => {
      builder        .addNumberInput({
          path: 'width',
          name: 'Column width',
          settings: {
            placeholder: 'auto',
            min: 20,
            max: 300,
          },
          shouldApply: () => true,
        })
        .addRadio({
          path: 'align',
          name: 'Column alignment',
          settings: {
            options: [
              { label: 'auto', value: null },
              { label: 'left', value: 'left' },
              { label: 'center', value: 'center' },
              { label: 'right', value: 'right' },
            ],
          },
          defaultValue: null,
        })
        .addSelect({
          path: 'displayMode',
          name: 'Cell display mode',
          description: 'Color text, background, show as gauge, etc',
          settings: {
            options: [
              { value: TableCellDisplayMode.Auto, label: 'Auto' },
              { value: TableCellDisplayMode.ColorText, label: 'Color text' },
              { value: TableCellDisplayMode.ColorBackground, label: 'Color background' },
              { value: TableCellDisplayMode.GradientGauge, label: 'Gradient gauge' },
              { value: TableCellDisplayMode.LcdGauge, label: 'LCD gauge' },
              { value: TableCellDisplayMode.BasicGauge, label: 'Basic gauge' },
              { value: TableCellDisplayMode.JSONView, label: 'JSON View' },
            ],
          },
        })
        .addBooleanSwitch({
          path: 'filterable',
          name: 'Column filter',
          description: 'Enables/disables field filters in table',
          defaultValue: false,
        });
    },
  })
  // dispaly 的配置
  .setPanelOptions(builder => {
    builder.addBooleanSwitch({
      path: 'showHeader',
      name: 'Show header',
      description: "To display table's header or not to display",
      defaultValue: true,
    });
  })
  .setNoPadding();

配置属性的格式

配置属性通过data传入到panel内,格式如下:

{
  "state": "Done",
  "series": [
    {
      "fields": [
        {
          "name": "city",
          "config": {
            "custom": {
              ......            },
            "thresholds": {
             ......            },
            "mappings": [],
            "color": {
              "mode": "thresholds"
            }
          },


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。