plugin.json
文件是所有插件必需的。当 Grafana 启动时,它会扫描插件文件夹,并将包含 plugin.json
文件的每个文件夹挂载,除非该文件夹包含名为 dist
的子文件夹。在这种情况下,Grafana 将挂载 dist
文件夹。
属性 | 类型 | 必需 | 描述 |
---|
id | 字符串 | 是 | 插件的唯一名称。如果插件在 grafana.com 上发布,则插件 id 应遵循 Grafana 命名约定。 |
name | 字符串 | 是 | 插件在 UI 中显示给用户的可读名称。 |
type | 字符串 | 是 | 插件类型。可能的值有:app 、datasource 、panel 、renderer 、secretsmanager 。 |
info | 对象 | 是 | 插件的元数据。一些字段用于 Grafana 中的插件页面,如果插件已发布,则用于 grafana.com。 |
dependencies | 对象 | 是 | 与 Grafana 和其他插件相关的依赖信息。 |
$schema | 字符串 | 否 | 插件.json 文件的模式定义。主要用于模式验证。 |
alerting | 布尔值 | 否 | 对于数据源插件,如果插件支持警报。需要将 backend 设置为 true 。 |
annotations | 布尔值 | 否 | 对于数据源插件,如果插件支持注释查询。 |
autoEnabled | 布尔值 | 否 | 对于应该启用并固定到所有组织导航栏中的应用插件,设置为 true。 |
backend | 布尔值 | 否 | 如果插件有后端组件。 |
category | 字符串 | 否 | 在 "添加数据源" 页面上使用的插件类别。可能的值有:tsdb 、logging 、cloud 、tracing 、profiling 、sql 、enterprise 、iot 、other 。 |
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 | 字符串 | 否 | 将插件标记为预发布版。可能的值是:alpha 、beta 。 |
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 | 字符串 | 是 | 可能的值是:app 、datasource 、panel 。 |
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 | 字符串 | 否 | 可能的值:Admin 、Editor 、Viewer 。 |
type | 字符串 | 否 | 可能的值:dashboard 、page 、panel 、datasource 。 |
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时间戳。 |
用作插件图标的SVG图像。
属性 | 类型 | 必需 | 描述 |
---|
大 | 字符串 | 是 | 插件标志的"大"版本链接,必须是一个SVG图像。"大"和"小"标志可以是同一张图像。 |
小 | 字符串 | 是 | 插件标志的"小"版本链接,必须是一个SVG图像。"大"和"小"标志可以是同一张图像。 |
屏幕截图
查询选项
对于数据源插件。在插件的查询编辑器中有一个查询选项部分,如果需要可以启用这些选项。
属性 | 类型 | 必需 | 描述 |
---|
缓存超时 | 布尔值 | 否 | 对于数据源插件。如果查询编辑器的查询选项部分应该显示缓存超时 选项。 |
最大数据点 | 布尔值 | 否 | 对于数据源插件。如果查询编辑器的查询选项部分应该显示最大数据点 选项。 |
最小间隔 | 布尔值 | 否 | 对于数据源插件。如果查询编辑器的查询选项部分应该显示最小间隔 选项。 |
插件定义的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 | 字符串 | 否 | 您的扩展点的标题。 |
描述 | 字符串 | 否 | 对您的扩展点的选填描述。 |