9.0.0-beta2版本的新功能介绍

183 阅读4分钟

功能和改进

  • 提醒:在导航条上添加传统的指示器。
  • 提醒:在导航条上添加传统指标。添加模板化的主题配置到电子邮件通知器。
  • 警报:启用开放源代码和企业的统一警报。
  • 警报:使alertmanager数据源稳定。
  • Angular:删除废弃的Angular模式支持和库。
  • AuthProxy:删除废弃的ldap_sync_ttl设置。
  • 构建:启用前台资产的长期缓存。
  • 任务:删除废弃的TextDisplayOptions导出。
  • Chore:移除IconButton中已废弃的surface 道具。
  • Chore:删除废弃的getColorForTheme函数的使用。
  • DatePicker:添加minDate道具。
  • 通知历史:默认启用。
  • 普罗米修斯:在查询中添加插件版本。
  • 普罗米修斯:默认启用prometheusStreamingJSONParser。
  • 普罗米修斯:为Azure认证预定义的范围。
  • 普罗米修斯:流式JSON解析器的性能改进。
  • ValueMapping:增加了对多行重词替换的支持。

错误修正

  • 可访问性:在Modal或DashboardSettings中按下转义键可以正确关闭覆盖层。
  • 警报:验证警报通知的UID长度。
  • BackendSrv:当获取一个无效的JSON时抛出一个错误。
  • 修复:时间序列迁移的重码覆盖。
  • Loki:修复查询生成器中的解包解析
  • 导航:在移动视图中正确定位汉堡包菜单。
  • PanelEditor:修复了表视图和多数据框架的问题。
  • 首选项:修正更新导航栏和查询历史的首选项。
  • 时间范围:修正在时间跨度为0的时间范围上放大的问题。
  • 变量:修复了面板查询中不能正确使用DS变量的问题。

破坏性修改

删除对[auth.proxy]下已废弃的设置ldap_sync_ttl的支持
,从现在开始只有sync_ttl能用了。

移除对已废弃的headingdescription 道具的支持。今后,应使用Card.HeadingCard.Description 组件。

移除Button 组件中已废弃的link 变体。
要迁移,请用fill="text" 替换任何使用variant="link"

移除IconButton 组件中被废弃的surface 道具。这个道具实际上已经有一段时间没有做任何事情了,所以只需移除它的任何使用实例应该是安全的。

@grafana/data 移除已废弃的TextDisplayOptions 输出,转而使用@grafana/schemaVizTextDisplayOptions 。要迁移,只需用VizTextDisplayOptions 替换TextDisplayOptions 的使用。

删除了对已废弃的getColorForTheme(color: string, theme: GrafanaTheme) 函数的支持,改用
theme.visualization.getColorByName(color: string) 方法。该方法的输出与被删除的函数相同,因此迁移只需将getColorForTheme(myColor, myTheme) 的调用改写为myTheme.visualization.getColorByName(myColor)

在Prometheus数据源中,出于一致性和性能的考虑,我们改变了从Prometheus收到的NaN (不是一个数字)值的表示方法。在过去的版本中,我们在前端(用于仪表盘和探索)将这些值转换为null ,并在警报路径中保持为NaN 。从这个版本开始,我们将始终保持为NaN 。这种变化对用户来说应该是不可见的。

由于webpack@4和webpack@5之间的变化,使用自定义Webpack配置的插件有可能出现故障。

Webpack 5默认不包括node.js核心模块的polyfills(例如:buffer,stream,os )。这可能会导致插件的构建失败。如果需要polyfills,建议在插件的根目录下创建一个自定义的webpack配置,并添加所需的回退。

// webpack.config.js

module.exports.getWebpackConfig = (config, options) => ({
  ...config,
  resolve: {
    ...config.resolve,
    fallback: {
      os: require.resolve('os-browserify/browser'),
      stream: require.resolve('stream-browserify'),
      timers: require.resolve('timers-browserify'),
    },
  },
});

本PR修复了哪些问题

修复了

给审阅者的特别说明

由于最新版本是ES模块,所以它没有将以下依赖关系提升到最新版本:

  • ora

  • globby

  • execa

我们改变了backendSrv.fetch() 的内部结构,当响应是一个不正确的JSON时,会抛出一个错误:

// PREVIOUSLY: this was returning with an empty object {} - in case the response is an invalid JSON
return await getBackendSrv().post(`${API_ROOT}/${id}/install`);

// AFTER THIS CHANGE: the following will throw an error - in case the response is an invalid JSON
return await getBackendSrv().post(`${API_ROOT}/${id}/install`);

响应何时被处理为JSON?

  • 如果响应有"Content-Type: application/json" 标头,或
  • 如果backendSrv的选项(BackendSrvRequest)指定响应为JSON。{ responseType: 'json' }

在这个改变之后,它是如何工作的?

  • 如果它被识别为JSON响应,并且响应是空的,它会返回一个空对象{}
  • 如果它被识别为JSON响应,并且有格式化错误,它会抛出一个错误。

如何迁移?
请确保在使用backendSrv.fetch() (或任何其他backendSrv 方法)的地方处理可能的错误。

插件开发的修复和更改

  • UI/卡片:删除废弃的道具。
  • UI/按钮:删除废弃的 "链接 "变量。
  • 工具箱:凸显依赖性。