跳转到主要内容

插件元数据(plugin.json)

plugin.json 文件是所有插件必需的。当 Grafana 启动时,它会扫描插件文件夹,并将包含 plugin.json 文件的每个文件夹挂载,除非该文件夹包含名为 dist 的子文件夹。在这种情况下,Grafana 将挂载 dist 文件夹。

属性

属性类型必需描述
id字符串插件的唯一名称。如果插件在 grafana.com 上发布,则插件 id 应遵循 Grafana 命名约定。
name字符串插件在 UI 中显示给用户的可读名称。
type字符串插件类型。可能的值有:appdatasourcepanelrenderersecretsmanager
info对象插件的元数据。一些字段用于 Grafana 中的插件页面,如果插件已发布,则用于 grafana.com。
dependencies对象与 Grafana 和其他插件相关的依赖信息。
$schema字符串插件.json 文件的模式定义。主要用于模式验证。
alerting布尔值对于数据源插件,如果插件支持警报。需要将 backend 设置为 true
annotations布尔值对于数据源插件,如果插件支持注释查询。
autoEnabled布尔值对于应该启用并固定到所有组织导航栏中的应用插件,设置为 true。
backend布尔值如果插件有后端组件。
category字符串在 "添加数据源" 页面上使用的插件类别。可能的值有:tsdbloggingcloudtracingprofilingsqlenterpriseiotother
enterpriseFeatures对象Grafana 企业版特定功能
executable字符串后端组件可执行文件名的第一部分。可以为不同的操作系统和架构构建多个可执行文件。Grafana会检查名为<executable>_<$GOOS>_<lower case $GOARCH><.exe for Windows>的可执行文件,例如plugin_linux_amd64。$GOOS和$GOARCH的组合可以在此处找到:https://golang.ac.cn/doc/install/source#environment
iam对象为插件初始化一个服务账户,并分配定制的RBAC权限集。
includes对象[]包含在插件中的资源。
logs布尔值对于数据源插件,如果插件支持日志。它可以用于仅日志过滤的功能。
metrics布尔值对于数据源插件,如果插件支持指标查询。用于在面板编辑器中启用插件。
multiValueFilterOperators布尔值对于数据源插件,如果插件支持ad hoc过滤器中的多值运算符。
preload布尔值在启动时初始化插件。默认情况下,插件在首次使用时初始化,但将preload设置为true时,插件在Grafana Web应用首次加载时加载。仅适用于应用程序插件。当设置为true时,实现前端代码拆分以最小化性能影响。
queryOptions对象对于数据源插件。在插件的查询编辑器中有一个查询选项部分,如果需要可以启用这些选项。
roles对象[]RBAC角色的列表及其默认分配。
routes对象[]对于数据源插件。用于插件身份验证和向插件发出的HTTP请求添加头部的代理路由。更多信息,请参阅数据源插件的身份验证
skipDataQuery布尔值对于面板插件。隐藏查询编辑器。
state字符串将插件标记为预发布版。可能的值是:alphabeta
streaming布尔值对于数据源插件,如果插件支持流。用于在Explore中启动实时流。
tracing布尔值对于数据源插件,如果插件支持跟踪。例如,用于将日志(例如Loki日志)与跟踪插件链接。
extensions对象相关的元信息扩展。

dependencies

插件所需的依赖项。

Properties

属性类型必需描述
grafanaDependency字符串此插件所需的Grafana版本。使用https://github.com/npm/node-semver进行验证。
grafanaVersion字符串(已弃用) 此插件所需的Grafana版本,例如6.x.x 7.x.x表示插件需要Grafana v6.x.x或v7.x.x。
plugins对象[]一个数组,包含此插件所依赖的所需插件。
extensions对象[]仅当您依赖扩展时。一个对象,定义了您的插件对扩展的依赖关系,例如公开的组件。

plugins

插件依赖项。用于在Grafana UI中显示有关插件依赖项的信息。

Properties

属性类型必需描述
id字符串
name字符串
type字符串可能的值是:appdatasourcepanel
version字符串此属性应使用特定的、固定的SemVer版本,而不是范围。如果没有指定版本,它将解析为支持的最新版本。

extensions

如果您的插件使用usePluginComponent()依赖于公开的组件,您必须在此处注册公开组件的id,否则它将不起作用。

Properties

属性类型必需描述
exposedComponents字符串数组仅当您的插件使用公开组件时。您的插件所依赖的公开组件ID列表。

企业功能

Grafana企业版特定功能。

属性

属性类型必需描述
健康诊断错误布尔值启用/禁用健康诊断错误。需要Grafana >=7.5.5。

iam

Grafana读取身份和访问管理部分,并为插件初始化一个服务帐户,使用定制的Grafana RBAC权限。Grafana将通过GF_PLUGIN_APP_CLIENT_SECRET环境变量将服务帐户的承载令牌与插件后端共享。

需要Grafana版本10.3.0或更高版本。目前,此功能位于externalServiceAccounts功能开关之下。

要尝试此功能,请按照此示例进行。

属性

属性类型必需描述
权限对象[]查询Grafana所需的RBAC权限。

权限

属性

属性类型必需描述
动作字符串动作,例如:teams:read
作用域字符串作用域,例如:teams:*

包含

属性

属性类型必需描述
动作字符串用户必须具有的RBAC动作,才能在导航菜单中看到此页面。警告:除非动作针对插件,否则只验证动作,不验证其应用对象。
addToNav布尔值将包含项添加到侧边菜单。
component字符串(旧版) 用于页面的Angular组件。
defaultNav布尔值用户在侧边菜单中点击图标时显示的页面或仪表板。
icon字符串用于侧边菜单的图标。有关可用的图标信息,请参阅图标概述
name字符串
path字符串用于应用插件。
role字符串可能的值:AdminEditorViewer
type字符串可能的值:dashboardpagepaneldatasource
uid字符串包含资源的唯一标识符

info

插件的元数据。一些字段用于 Grafana 中的插件页面,如果插件已发布,则用于 grafana.com。

属性

属性类型必需描述
关键词字符串数组插件关键词数组。用于在grafana.com上的搜索。
logos对象用作插件图标的SVG图像。
updated字符串此插件构建的日期。
version字符串插件的SemVer版本,例如6.7.1
author对象有关插件作者的信息。
build对象构建信息
描述字符串插件描述。用于Grafana的插件页面以及在grafana.com上的搜索。
链接对象[]要在此插件的工程页面显示的链接对象数组,格式为{name: 'foo', url: 'http://example.com'}
屏幕截图对象[]屏幕截图对象数组,格式为{name: 'bar', path: 'img/screenshot.png'}

作者

有关插件作者的信息。

属性

属性类型必需描述
电子邮件字符串作者姓名。
name字符串作者姓名。
网址字符串作者网站的链接。

构建

构建信息

属性

属性类型必需描述
分支字符串构建插件的Git分支。
哈希字符串构建插件的Git提交哈希。
数字数字
pr数字构建插件的GitHub拉取请求。
repo字符串
时间数字构建插件的时间,作为Unix时间戳。

属性

属性类型必需描述
name字符串
网址字符串

标志

用作插件图标的SVG图像。

属性

属性类型必需描述
字符串插件标志的"大"版本链接,必须是一个SVG图像。"大"和"小"标志可以是同一张图像。
字符串插件标志的"小"版本链接,必须是一个SVG图像。"大"和"小"标志可以是同一张图像。

屏幕截图

属性

属性类型必需描述
name字符串
path字符串

查询选项

对于数据源插件。在插件的查询编辑器中有一个查询选项部分,如果需要可以启用这些选项。

属性

属性类型必需描述
缓存超时布尔值对于数据源插件。如果查询编辑器的查询选项部分应该显示缓存超时选项。
最大数据点布尔值对于数据源插件。如果查询编辑器的查询选项部分应该显示最大数据点选项。
最小间隔布尔值对于数据源插件。如果查询编辑器的查询选项部分应该显示最小间隔选项。

角色

插件定义的RBAC角色及其默认分配到基本角色(查看者编辑者管理员Grafana管理员)的列表。

需要Grafana版本9.4.0或更高版本。目前,此功能位于accessControlOnCall功能开关之后。

属性

属性类型必需描述
role对象RBAC角色定义,用于在插件上分组相关的RBAC权限。
授权字符串数组角色默认分配到Grafana基本角色(查看者编辑者管理员Grafana管理员)。

角色

一个角色将您的插件相关RBAC权限分组(例如:项目管理员将创建、读取、写入和删除项目的权限分组)。您的角色中定义的RBAC操作必须以您的插件id开头(例如:grafana-test-app.projects:read)。

属性类型必需描述
name字符串角色的名称。
描述字符串描述角色的目的。
权限对象[]插件上的RBAC权限。

路由

对于数据源插件。用于插件身份验证和向插件发出的HTTP请求添加头部的代理路由。更多信息,请参阅数据源插件的身份验证

属性

属性类型必需描述
主体对象对于数据源插件。路由头设置代理请求的主体内容和长度。
头部数组对于数据源插件。路由头部向代理请求添加HTTP头部。
jwtTokenAuth对象对于数据源插件。使用JWT OAuth API的令牌认证部分。
方法字符串对于数据源插件。路由方法匹配HTTP动词,如GET或POST。可以提供多个方法,以逗号分隔。
path字符串对于数据源插件。在代理调用时替换路由URL字段的路由路径。
reqAction字符串用户必须拥有的RBAC操作才能使用此路由。警告:除非操作针对插件(或嵌套数据源插件),否则只验证操作,不验证其应用的范围。
reqRole字符串
reqSignedIn布尔值
tokenAuth对象对于数据源插件。与OAuth API一起使用的令牌认证部分。
网址字符串对于数据源插件。路由URL是请求被代理到的位置。

主体

对于数据源插件。路由头设置代理请求的主体内容和长度。

属性类型必需描述

jwtTokenAuth

对于数据源插件。使用JWT OAuth API的令牌认证部分。

属性

属性类型必需描述
params对象JWT令牌认证请求的参数。
scopes字符串数组你的应用程序应授予访问权限的权限列表。
网址字符串获取JWT令牌的URL。

params

JWT令牌认证请求的参数。

属性
属性类型必需描述
client_email字符串
private_key字符串
token_uri字符串

tokenAuth

对于数据源插件。与OAuth API一起使用的令牌认证部分。

属性

属性类型必需描述
params对象令牌认证请求的参数。
scopes字符串数组你的应用程序应授予访问权限的权限列表。
网址字符串获取认证令牌的URL。

params

令牌认证请求的参数。

属性
属性类型必需描述
client_id字符串OAuth客户端ID
client_secret字符串OAuth客户端密钥。通常通过从SecureJson blob解密密钥来填充。
grant_type字符串OAuth授权类型
resource字符串OAuth资源

extensions

特定元数据的扩展。

属性

属性类型必需描述
addedComponents对象只有当你的插件具有组件扩展时由你的插件添加的组件扩展列表。
addedLinks对象只有当你的插件具有链接扩展时由你的插件添加的链接扩展列表。
exposedComponents对象只有当你的插件公开组件时由你的插件公开的组件列表。
extensionPoints对象只有当你的插件定义扩展点时由你的插件定义的扩展点列表。

addedComponents

此列表必须包含你的插件使用.addComponent()注册到其他扩展点的所有组件扩展。未列出的组件将无法工作。

属性

属性类型必需描述
targets字符串数组你的插件注册扩展的扩展点ID,例如 ["grafana/user/profile/tab"]
title字符串你的组件扩展的标题。
描述字符串对组件扩展的选填描述。

此列表必须包含您的插件使用 .addLink() 注册到其他扩展点的所有链接扩展。未在此处列出的链接将无法工作。

属性

属性类型必需描述
targets字符串数组您的插件注册扩展的扩展点ID,例如 ["grafana/dashboard/panel/menu"]
title字符串您的链接扩展的标题。
描述字符串对您的链接扩展的选填描述。

公开的组件

此列表必须包含您使用 .exposeComponent() 公开的全部组件。未在此处列出的组件将无法工作。

属性

属性类型必需描述
id字符串您的公开组件的唯一ID,前面以插件ID为前缀。建议添加版本后缀以防止未来的破坏性更改。例如:myorg-extensions-app/exposed-component/v1
title字符串您的公开组件的标题。
描述字符串对您的公开组件的选填描述。

扩展点

此列表必须包含您的插件使用 usePluginLinks()usePluginComponents() 定义的全部扩展点。未在此处列出的扩展点将无法工作。

属性

属性类型必需描述
id字符串您的扩展点的唯一ID,前面以插件ID为前缀。建议添加版本后缀以防止未来的破坏性更改。例如:myorg-extensions-app/extension-point/v1
title字符串您的扩展点的标题。
描述字符串对您的扩展点的选填描述。