Grafana 9.0 新特性预览
按照惯例,GrafanaCon——每年为Grafana开源用户举办的社区活动,也是发布Grafana最新版本的地方。保持传统,我们兴奋地宣布Grafana v9.0——该版本提高了Grafana的易用性,通过新的、改进的可视化去发现数据,以及默认使用统一告警。
Grafana的一大重点就是让每个人能够更简单、更方便地进行数据观察、数据可视化和分析。对于Prometheus、Loki等流行的数据源,编写和理解查询可能会比较困难。这就是为什么我们兴奋地宣布Grafana v9.0,它为这两些数据源提供了新的可视化查询构建器。这些可视化查询构建器将降低使用门槛,帮助每个人编写、理解和学习底层的查询语言。
该版本还包括全新的、功能强大且快速的热力图,一个更容易访问的导航菜单,仪表盘查询的改进,更高级的安全和认证功能等。
本文将帮助你快速了解快速了解Grafana v9.0中最值得关注的功能!
Prometheus查询是不易编写和理解的。PromQL查询语言非常复杂和先进。对于新手而言,即使是相对简单的查询也很难进行编写和阅读。这就是为什么我们要引入一个新的UI查询构建器,它允许任何人编写和了解Prometheus查询是如何工作的。
指标和标签过滤器
这个新的查询构建器允许您轻松地查询和选择指标以及构建标签过滤器。您可以从选择一个指标或一个标签过滤器开始,因为它们都是过滤器。指标选择器允许您同时查询指标名称的多个部分,只需将每个查询字符串用空格隔开。
操作
所有的函数、聚合和二元运算都可以通过+操作按钮添加。操作是按执行顺序显示的,而不是在文本查询中写入的相反顺序。这使得查询更易阅读,因为您现在可以清楚地看到某个函数参数用于某个函数的原因,参数名称的信息和集成于构建器中的函数文档。
范围向量
查询构建器会自动管理和添加范围向量,它会作为参数显示在需要范围的操作(速率、增量、增加等)。
二元运算
与其他函数一样,简单的二元运算,如乘、除指标,通过简单的操作框表示,但构建器也支持嵌套查询表达式的二元运算。
在代码和构建器之间切换
您可以在文本编辑模式(代码)和UI构建器模式之间切换,同时保留文本更改,因为可视化构建器模型是从完整的PromQL查询解析器派生出来的。
Loki也有复杂而强大的查询语言LogQL。在许多方面,它比PromQL更复杂,需要记住的语法也更多。幸运的是,在Grafana v9.0中引入了新的查询构建器,它可以帮助用户编写和理解Loki查询,而无需了解任何语法。看看这个日志查询示例:
在查询构建器中,可以添加和编辑标签过滤器、行过滤器、解析器和函数。上图显示了日志查询,但您也可以进行指标查询。
Loki查询构建器支持上面为Prometheus查询构建器列出的所有功能,包括支持嵌套的二元运算、解释模式以及在文本编辑器和构建器之间切换,同时保留更改。
我们将用一个使用新面板选项架构的面板替换旧的热力图面板。
与旧版本相比,新的热力图面板进行了许多增强。
· 速度提高多个数量级
· 支持显示示例(跟踪)叠加
· 支持Prometheus稀疏直方图
· 支持改变颜色
·对于未bucket的数据,它会更智能的自动调整大小
· 支持过滤掉接近但不完全为零的bucket值
默认情况下,新的热力图假设数据是预先存储的。因此,如果查询返回时间序列,则每个序列都被视为单独的bucket(y轴刻度)。该面板比旧面板快得多,因此它可以渲染许多具有数千个数据点的时间序列,且每个数据点都没有问题。
如果从早期版本的Grafana升级,则在默认情况下会启用统一告警。如果用户在早期版本的Grafana中一直使用旧版告警并且升级到Grafana 9,则告警规则将自动迁移,旧版告警界面将被统一的告警界面取代。统一告警自2021年6月以来一直可用,现在它提供了与旧告警相同的功能和更多其他的优势。
Grafana 托管告警的告警状态历史
告警状态历史暗示了该状态的原因。当规则评估满足Error或NoData条件时,可以将告警规则设置为“Alerting”或“OK”状态。此修改会跟踪告警、告警(NoData)和告警(Error)之间的差异。此修改还完善了UI以处理新的序列化状态:过滤、排序和着色。
Grafana 托管告警通知中的图像
统一告警现在提供了为捕获图像并通过通知传递图像的功能。这可以通过统一告警的联系人选项卡进行配置。此功能在旧版仪表板告警中可用,但在统一告警中缺失。它要求使用“Dashboard UID”字段将告警与特定仪表板关联。
Grafana现在使用信封加密来加密数据库中的机密。信封加密为加密过程添加了一层间接性。Grafana不是使用单个密钥加密数据库中的所有机密,而是使用一组数据加密密钥(DEK)对其进行加密。这些数据加密密钥本身使用单个密钥加密密钥(KEK)进行加密。这允许用户转换KEK并在密钥泄露的情况下快速重新加密DEK。在Grafana企业版中,还可以将KEK存储在外部密钥管理服务(KMS)中,如AWS KMS或Azure Key Vault以提高安全性。
仪表盘预览最初是在内部Grafana Labs Hackathon期间实现的,现在已经准备好发布可选的测试版本。预览提供了所有可用仪表盘的总览,帮助您在仪表盘名称不够时快速找到正确的仪表盘。
通过标题除了查询仪表盘外,您现在还可以查询面板。如果面板的标题与您的查询匹配,它会在查询结果中展示。
您可以展开导航栏更好地了解Grafana的功能和已安装的集成工具。这是Grafana导航的第一次改进,在未来的版本中还会有更多改进。
作为Grafana导航即将进行改进的一部分,用户现在可以从导航栏直接访问带星的仪表盘。目前这是一种可选功能,可以通过启用savedItems功能选项来访问。
现在可以直接从探索创建面板和/或仪表盘。单击探索工具栏中的“Add to dashboard”按钮时,用户现在可以在一个新的或现有的仪表盘中创建一个面板。生成的面板会包含所有的查询,并根据当前显示的结果自动选择一个默认的可视化。仪表盘不会自动保存,因此用户可自行完成当前的保存流程。或者,在新选项卡中打开仪表盘以保留探索的状态。
使用command + k(macOS)或ctrl + k(Linux/Windows),用户就可以调出一个命令选项板,以便导航和其他任务。
为了支持Grafana调试问题,Grafana中出现的错误告警将包含一个跟踪ID,这些告警可以在用户设置中进行访问。目前,这是一个可选功能,通过启用两个功能选项来访问:
· tracing ---在错误消息中启用跟踪ID
· persistNotifications ---用户设置中启用告警页面
查询历史是一个面板,用于持续跟踪在探索中运行的所有查询。目前,将历史保存在浏览器本地存储导致了一些问题,例如存储空间不足或无法在不同浏览器中使用相同的查询历史。这些情况将不会再现!我们将所有浏览器本地存储的条目迁移到了数据库。当查询历史面板打开时,迁移将在后台进行。此功能可以通过设置custom.ini中的query_history禁用。
访问控制
RBAC基本可用
细粒度的访问控制现在称为基于角色的访问控制或RBAC。现在,在Grafana企业版和Grafana Cloud Advanced中默认启用,因此您可以为用户、团队或者服务账号创建和定义角色,如注释编写者、用户查看者和仪表盘权限编写者。
添加多个仪表板到单个报表
如果您有信息分散在多个仪表盘中,又希望定期地发送给一组收件人,现在您可以将多个仪表盘添加到单个报表中,并通过一封邮件发送。
仪表盘图像嵌入报表
报表就是为了方便——尽可能快地传递信息。现在您可以在报表邮件中直接嵌入仪表盘的图像,以便收件人在打开邮件时就可以看到它,而不是打开一个PDF附件。这在展示SLO、财务结果或其他概览数据时尤其方便。
基于角色的访问控制:常规发布修改
细粒度访问控制现在称为“基于角色的访问控制”。作为Grafana 9.0发布的一部分,该服务已基本可用,并且有几个重大修改:
内置角色现在称为基本角色,它们现在由权限组成,而不是角色。Grafana配置有了一个新的方案,请参考文档获取更多信息。基本角色不再支持权限继承。以前,当修改查看者基本角色的权限时,它会传播到编辑者和管理员基本角色。随着Grafana 9.0的发布,就不再是这种情况了。
Loki:修改日志数据格式
对于Loki数据源,用于表示Loki日志数据的数据格式已修改为更高效的格式(注意:此修改只适用于日志数据,不适用于数值数据)。通过添加“labels”字段,日志将由单个数据结构表示,而不是一个标签一种数据结构的组合。在探索中展示日志数据,或者在仪表盘中使用日志面板将继续有效无需修改。但是,在其他仪表盘面板展示日志数据时,例如,在表格可视化中,这种修改将是可见的,并且配置项可能需要调整。例如,如果使用了“Labels to fields”变换,则必须将其替换为“Extract fields”变换,选择“labels”字段作为源。
Loki:修改数值数据中NaN值的表示
对于Loki数据源,当Grafana从Loki获取数值数据时,其中可能包含NaN值(不是数值)。出于一致性和性能的原因,我们修改了此类值在Grafana中的表示。在之前的版本中,告警查询和其他查询(如仪表盘查询或探索查询)的表现形式是不同。告警查询会保持NaN值不变,但其他查询会将这些值转换为“null”。从Grafana 9.0.0开始,我们将在所有的查询中始终保持NaN值不变。换句话说,仪表盘和探索的查询将在这点上与告警查询表现相同。
Elasticsearch:删除对生命周期已结束版本的支持
删除对Elasticsearch生命周期已结束版本的支持(依据https://www.elastic.co/support/eol)。这意味着Grafana 9.0.0将不会支持早于7.10.0版本的Elasticsearch。
Elasticsearch:删除对浏览器访问模式的支持
对于Elasticsearch数据源,浏览器访问模式已在Grafana 7.4.0中弃用,并在9.0.0中删除。如果您使用此模式,请在数据源配置页面切换成服务器访问模式。
Prometheus:修改数值数据中 NaN 值的表示
对于Prometheus数据源,当Grafana从Prometheus获取数值数据时,其中可能包含NaN值(不是数值)。出于一致性和性能的原因,我们修改了此类值在Grafana中的表示。在之前的版本中,告警查询和其他查询(如仪表盘查询或探索查询)的表现形式是不同。告警查询会保持NaN值不变,但其他查询会将这些值转换为“null”。从Grafana 9.0.0开始,我们将在所有的查询中始终保持NaN值不变。
变换:允许通过正则重命名使用更复杂的正则表达式
通过正则重命名的变换已经允许全局匹配/<stringToReplace>/g。取决于使用的正则匹配,可能会导致一些变换的表现形式略有不同。为确保相同的展现形式,您可以通过将要匹配的字符串放在正斜杠中(/),例如,(.)将会变成/(.)/。
当我们在6月14日发布Grafana 9.0以后,Grafana 将不再强制区分查看者、编辑-管理者。这意味着,无论您的Grafana企业许可是分层的还是组合的,您将不会在状态和许可(Stats & Licensing)页面上看到:
而是:
这也意味着,Grafana将同等计算所有用户,无论什么角色,包括组织角色(查看者、编辑者、管理者)和细粒度角色(仪表盘编辑者、报表编辑者等)。即使达到了查看者、编辑-管理者的限制,您也不会看到单独的警告横幅或看到用户被锁定,只有活跃用户的总数限制。
例如,如果您的Grafana 企业许可包含10名活跃管理员和100名活跃查看者的许可,那么从v9.0开始,您将有110名活跃用户的限制,这些用户拥有什么角色并不重要,它们都将被同等计算。
这是一项比以前更加宽松的策略。