博客/工程

在新的2.0 Grafana企业指标:跨租户报警和记录的规则

2022年4月13日8分钟

的推出我们的新开源TSDBGrafana米密尔,我们兴奋地介绍Grafana企业指标2.0

宝石2.0之上Grafana米密尔2.0大规模的数据库,我们已经证明,我们的操作简单,可以处理的10亿年系列活动。这意味着宝石2.0继承所有的米密尔强调,包括简单的部署,本地多租户,高可用性,持久的长期指标存储和特殊的查询性能。

但宝石还包括额外的功能,用户需要操作时间序列数据库规模的组织,包括简化租户管理。一个新的2.0我们是宝石的实验跨租户报警和记录规则功能。

单一租户报警和记录规则如何工作的呢

默认情况下,宝石报警和记录运行规则的查询仅限于单一租户。例如,您可以创建一个租户的一组房客”团队组织和名称。“你可以建立一个记录规则读和执行中存储的系列团队租户。但如果你想在多个团队部署相同的规则,您需要创建规则组在每个团队的租户。你可以看到如何迅速成为管理在大型组织中困难和乏味。

我们也有用户想总他们的度量和分析结果的记录规则,最终这将意味着引进一个新的联邦数据源到他们的基础设施。另一个选择吗?编写所有租户数据两次——一次承租人一旦管理员租户需要概述。这将导致明显的(负面)影响。

警报,同样存在摩擦。整个组织部署相同的报警规则,你必须为每个租户管理yaml规则。这意味着单个事件影响多个租户可能会引发一场风暴警报——一个用于每个租户的影响。

宝石2.0跨租户报警和记录规则是什么?

解决所有这些痛点,宝石2.0继承Grafana米密尔的实验支持跨租户报警和记录规则,操作数据从多个租户。

现在,而不是管理你的报警和记录各租户规则,您可以创建一个规则组,使用来自多个租户的数据通过设置source_tenants在你的规则组。翻译:宝石2.0允许您监视所有租户立刻没有额外的数据源的麻烦,也没有复制数据。

跨租户报警和记录规则如何工作的呢

在上面的示例中,source_tenants团队A和团队b。团队以后需要监控这两个租户。

团队下文可以监控团队A和团队B使用相同的记录规则使用跨租户不复制数据记录规则2.0功能的宝石。团队的指标(右上角)表明,请求错误高峰每2分钟。为团队B(右下角),请求失败峰值每5分钟。与跨租户记录规则,团队以后还可以看到统一团队A和团队B的数据(左上),它允许他们创建警报基于两个租户的整体性能。在这里,一个跨租户报警规则建立了火如果两个租户的错误率偏高(左下角)。

下面是跨租户规则组定义(federated-rules.yaml):

组:-名称:http-requests-results间隔:15秒source_tenants:(目前,b队)规则:-记录:结果:my_app_http_requests_total:总和expr:由(结果)和(率(my_app_http_requests_total [1 m])) -警报:HTTPRequestsHighFailureRate expr:由(结果)和(率(my_app_http_requests_total =“失败”}{结果[1]))> 1.1:15秒

宝石2.0中的新的跨租户报警规则尤其有效用例中你想设置一个警惕一个度量,存在于多个租户。例如,假设你的团队在多个团队监控CPU使用率。现在,如果一个租户运行在100%的CPU使用率,并且他们得到压制(甚至没有意识到这一点),您可以创建一个跨租户报警规则会在你组织找到任何服务,豆荚,机器,或容器,100%的CPU利用率和消防警报来识别不堪重负的目标(s)。

另一个例子是,如果你的团队监控和维护数据库,和你想要提醒你的客户开始看到从你的数据库错误。与跨租户报警规则,您可以创建一个规则,总结错误在所有租户的数最高的帮助你识别数据库错误计数。这样,如果你的任何租户开始经历增加了错误,你会提醒。你可以用同样的方法设置一个全球警报,将国旗高延迟查询你的租户。

访问控制

与Grafana米密尔,我们不得不面对一个大问题,当把这个新特性在Grafana企业指标:我们如何使其工作与宝石现有的访问控制系统?具体来说,我们如何评估跨租户规则组,并确保他们仍然从指定的授权读取数据source_tenants吗?

为了阅读指标与其他租户,你所需要的指标:阅读在他们范围。这里的挑战是,宝石授权只发生在边缘——当你推指标,当你查询,等。一旦部署,规则不断运行内部(每15秒,每1 m,等等),也没有令牌是必要继续评估规则。如果有人改变了访问政策组在创建后,集团将继续运行。

应对这个问题,我们现在存储访问政策名称用于创建规则在规则组。在每一条规则存储同步,我们仍然检查政策许可指标:阅读source_tenants。如果许可已被删除(例如,访问政策修改删除阅读权限的一个源租户),规则停止被评估。因此,宝石2.0无缝地集成了宝石现有的访问控制模型。

建立一个跨租户报警或记录规则在宝石2.0中,管理员首先创建一个访问策略。在上面的示例中,我们确定团队A和团队Bsource_tenants和定义的规则应用在访问团队A和团队B的政策。然后管理员将生成一个令牌,作为密码用于创建新规则组。规则评估的输出写入任何租户的规则组成立。

管理员的好处

与跨租户报警和记录规则,宝石2.0允许管理员单独的行政规则组每个租户的规则组。如果团队下文设置一个报警规则所有租户负责监控CPU使用率,用户在团队或团队B不能意外删除规则(因此打破团队下文的警报)。

您还可以使用联邦规则逐字复制数据到其他租户。如果团队提交数据在B队希望能够查询,然后团队下文可以创建一个查询记录规则在B队只是指标名称。这将开始编写整个度量和未来所有的数据到B队。

了解更多关于宝石2.0

目前,您只能查看跨租户报警和记录规则Grafana提醒UI。创建或编辑这些规则只能通过mimirtool或通过直接连接统治者API。在未来,我们打算让它可以创建和修改跨租户报警和记录规则通过报警界面,用户可以得到相同的点击体验,与单一租户报警和记录的规则。

关于跨租户报警和记录规则的更多信息,我们的阅读宝石2.0文档和我们的联邦记录规则文档

如果你想了解更多关于Grafana企业指标,你可以免费注册为我们即将到来的网络研讨会“介绍与Grafana指标:普罗米修斯,Grafana米密尔,石墨,甚至更远”4月19日。

你也可以联系我们如果你想尝试Grafana今天企业指标!