菜单
文档breadcrumb arrow Grafana 文档breadcrumb arrow 版本说明breadcrumb arrow Grafana 9.0.0 版本说明
Grafana Cloud Enterprise 开源

Grafana 9.0.0 版本说明

特性与增强功能

Bug 修复

  • Alerting: 修复数据库不可用导致调度器移除规则的问题。 #49874, @grobinson-grafana
  • AzureMonitor: 修复指标时间粒度自动选择问题。 #49278, @aangelisc
  • DataSources: 修复表达式未被查询的问题。 #50446, @JoaoSilvaGrafana
  • GraphNG: 修复按颜色划分的阈值不随数据更新的问题。 #48571, @zoltanbedi
  • Jaeger: 更新操作下拉菜单。 #49329, @joey-grafana
  • Login: 修复用户列表中 auth_module 的标签不匹配问题。 #49177, @Jguer
  • Playlists: 保存按钮现可正确创建新的播放列表。 #50381, @ashharrison90
  • RBAC: 修复迁移顺序错误导致企业版继承问题。 #50452, @gamab
  • RBAC: 修复迁移顺序错误问题。(Enterprise 版)
  • ServiceAccounts: 为服务账号 token 添加可识别的 token 前缀。 #49011, @Jguer
  • Traces: 修复 KeyValueTables 缺少复制按钮以及面板重叠问题。 #49271, @svennergr

重大变更

@grafana/ui 包中用于前端测试的辅助函数 selectOptionInTest 已被移除,因为它会导致测试库被打包到 Grafana 的生产代码中。如果您在测试中使用了此辅助函数,请相应地更新您的代码。

js
// before
import { selectOptionInTest } from '@grafana/ui';
// ...test usage
await selectOptionInTest(selectEl, 'Option 2');

// after
import { select } from 'react-select-event';
// ...test usage
await select(selectEl, 'Option 2', { container: document.body });

Issue #50442

从 @grafana/e2e 的 addDataSource 配置中移除了已弃用的 checkHealth 属性。之前此值默认为 false,自 Grafana 8.0.3 起已不在端到端测试中使用。Issue #50296

从 grafana-data 中移除了已弃用的 LegacyBaseMap、LegacyValueMapping、LegacyValueMap 和 LegacyRangeMap 类型,以及 getMappedValue 函数。迁移如下

旧版新版
LegacyBaseMapMappingType
LegacyValueMappingValueMapping
LegacyValueMapValueMap
LegacyRangeMapRangeMap
getMappedValuegetValueMappingResult

此更改修复了 Grafana 中的一个 bug,该 bug 会导致当数据库、Grafana 和数据库之间的网络出现间歇性故障或查询数据库出错时,Grafana 中的所有告警规则被取消调度。此更改后,除非查询成功,否则不会更新已调度的告警规则。

get_alert_rules_duration_seconds 指标已重命名为 schedule_query_alert_rules_duration_seconds。Issue #49874

  • 使用 Grafana v9.0 创建或修改的任何密钥(数据源凭证、警报管理器凭证等等)将无法(默认情况下)由任何先前版本解密,因为加密密钥在数据库中的存储方式已更改。然而,使用先前版本创建或修改的密钥仍可由 Grafana v9.0 解密。

  • 如果需要(尽管通常不建议),可以在更新到 Grafana v9.0 后启用 disableEnvelopeEncryption 特性开关,以保持信封加密处于禁用状态。

  • 如果出于任何原因需要回滚到较早版本的 Grafana(即 Grafana v8.x),在通过 Grafana v9.0 创建或修改任何密钥后,需要启用 envelopeEncryption 特性开关以保持向后兼容性(仅从 v8.3.x 开始,略不稳定;从 8.5.x 开始稳定)。

  • 作为处理上述情况相关问题的最后尝试,设计了 grafana-cli admin secrets-migration rollback 命令,用于将所有使用信封加密的 Grafana 密钥回退到传统加密方式。因此,运行该命令后,禁用信封加密和/或回滚到先前版本的 Grafana 应该是安全的。

  • 或者作为上述所有要点的补充,更新前备份 Grafana 数据库是预防灾难的好办法(尽管一些密钥损坏的风险仅适用于更新到 Grafana v9.0 后更新/创建的密钥)。相关 Issue #49301

  • 根据动态标签文档,每个标签最多可以使用五个动态值。目前在别名模式系统中没有此限制,因此如果使用了超过 5 个模式,GetMetricData API 将返回错误。

  • 动态标签只允许每个查询使用一次 ${LABEL}。在别名模式系统中没有此限制,因此如果使用了不止一个,GetMetricData API 将返回错误。

  • 当用户未提供别名时,Grafana 将不再使用自定义规则来命名图例。

  • 如果使用了搜索表达式且未返回数据,Grafana 将不再展开维度值,例如在使用多值模板变量或在维度值字段中使用星号通配符 * 时。参考 https://github.com/grafana/grafana/issues/20729

  • 时间序列的显示顺序可能会不同。例如,使用动态标签 ${PROP('MetricName')} 可能会导致返回的时间序列顺序与使用别名模式 {{metric}} 时不同。

相关 Issue #49173

在 Elasticsearch 中,浏览器访问模式在 Grafana 7.4.0 中已弃用,并在 9.0.0 中移除。如果您使用了此模式,请在数据源配置页面切换到服务器访问模式。相关 Issue #49014

从 Grafana 传递给外部 Azure 插件的环境变量已重命名

  • AZURE_CLOUD 重命名为 GFAZPL_AZURE_CLOUD
  • AZURE_MANAGED_IDENTITY_ENABLED 重命名为 GFAZPL_MANAGED_IDENTITY_ENABLED
  • AZURE_MANAGED_IDENTITY_CLIENT_ID 重命名为 GFAZPL_MANAGED_IDENTITY_CLIENT_ID

没有已知插件依赖这些变量。未来插件应仅通过 Grafana Azure SDK 读取 Azure 设置,该 SDK 能正确处理新旧环境变量。相关 Issue #48954

移除了对已结束生命周期的 ElasticSearch 版本的支持,目前是版本 < 7.10.0。要继续使用 ElasticSearch 数据源,请将 ElasticSearch 升级到 7.10.0+ 版本。相关 Issue #48715

Azure Monitor 中的 Application Insights 和 Insight Analytics 查询在 Grafana 8.0 中已弃用,并在 9.0 中最终移除。弃用的查询将不再执行。有关此更改的更多信息,请参阅文档

相关 Issue #48328

grafana/ui: Button 现在指定默认的 type="button"

@grafana/ui 提供的 Button 组件现在在未提供 type 时指定默认的 type="button"。在以前的版本中,如果与 <form> 关联的按钮未指定此属性,则根据规范,默认值为 submit

您可以通过显式设置 type 属性来保留旧行为:<Button type="submit" />

Github Issue #41863。相关 Issue #48183

Rename by regex 转换已改进,允许使用形式为 /<stringToReplace>/g 的全局模式。根据使用的正则表达式匹配,这可能会导致一些转换行为略有不同。您可以通过将 match 字符串用斜杠 (/) 包裹来确保与之前相同的行为,例如 (.*) 将变为 /(.*)/。相关 Issue #48179

<Select /> 菜单现在默认会 portal 到文档 body。这使得定位和叠加时的行为更一致。如果您之前设置了 menuShouldPortal={true},现在可以安全地移除该 prop,行为将保持不变。如果您没有显式设置该 prop,则行为上不应有可见变化,但您的测试可能需要更新。请参阅原始 PR (https://github.com/grafana/grafana/pull/36398) 以获取迁移指南。如果您设置了 menuShouldPortal={false},这将继续阻止菜单 portal。

相关 Issue #48176

Grafana 警报端点前缀为 api/v1/rule/test,该端点用于针对 Cortex/Loki 数据源测试规则,现在期望数据源 UID 作为路径参数,而非数据源数字标识符。相关 Issue #48070

Grafana 警报端点前缀为 api/prometheus/,该端点代理请求到 Cortex/Loki 数据源,现在期望数据源 UID 作为路径参数,而非数据源数字标识符。相关 Issue #48052

Grafana 警报端点前缀为 api/ruler/,该端点代理请求到 Cortex/Loki 数据源,现在期望数据源 UID 作为路径参数,而非数据源数字标识符。相关 Issue #48046

Grafana 警报端点前缀为 api/alertmanager/,该端点代理请求到 Alertmanager,现在期望数据源 UID 作为路径参数,而非数据源数字标识符。相关 Issue #47978

日志消息的格式已更新,lvl 现在变为 levelerordbug 已分别替换为 errordebug。时间戳的精度已提高。为了平滑过渡,可以通过启用特性开关 oldlog 来选择不使用新的日志格式。此选项将在未来的次要版本中移除。相关 Issue #47584

在 Loki 数据源中,用于表示 Loki 日志数据的 dataframe 格式已更改为更高效的格式。查询结果由一个包含“labels”列的单个 dataframe 表示,而不是每个标签值对应一个单独的 dataframe。在 explore 中显示此类数据,或在仪表板的日志面板中显示,仍无需更改即可工作,但如果数据加载到不同的仪表板面板或使用了 Transforms,则可能需要进行调整。例如,如果您在日志数据中使用了“labels to fields”转换,请切换到“extract fields”转换。相关 Issue #47153

弃用

setExploreQueryFieldsetExploreMetricsQueryFieldsetExploreLogsQueryField 现已弃用,并将在未来版本中移除。如果您需要为 Explore 设置不同的查询编辑器,请在常规查询编辑器中根据 props.app 进行条件渲染。更多信息请参阅我们的文档。相关 Issue #48701

插件开发修复与更改