菜单
企业

自我监控

请注意自我监控是一个实验性的特性。因此,配置设置,命令行标志,或实现的细节可能发生变化。

概述

1.4版本以来,Grafana企业指标(GEM)包括直接记录自我监控的能力指标,允许您轻松监控宝石本身的健康和稳定。度量宝石收集关于本身将被写入到一个内置的__system__租户。可以查询指标写使用令牌下创建内置的像往常一样__system__访问策略。1.8版本以来,宝石直接记录范本自我监控指标的一部分。

自我监控的工作方式确保任何度量可以从宝石通过/指标端点可以直接在宝石,而不需要由外部进程刮。虽然这些指标通常需要使用刮普罗米修斯或者是Grafana代理后,自我监控后,他们可以快速设置下面描述。

这个特性提供了一个简单的,开箱即用的方法来监控宝石本身用最少的配置或额外的依赖关系。这个特性的最大值,我们推荐您安装宝石的Grafana插件自动规定一组指示板,使用自我监测指标。仪表板符合Grafana实验室的最佳实践了解宝石系统健康。bob电竞频道自我监控是兼容插件版本> = 3.0.4(需要Grafana 8)。Grafana 7.5用户应该使用版本2.1.1。

配置

下面的部分描述所需的步骤建立自我监测。

单一的二进制模式

自我监控是默认启用,不采取行动是必要的在单一的二进制模式!

Microservices模式

为了使用自我监控在microservices模式中,你需要一个主机名,您可以使用它们来解决gPRC端口(默认9095)每个宝石的分销商。这可能是每个经销商之间平衡的负载均衡器,DNS一个记录,包括“诱导多能性”对于每一个经销商,或Kubernetes服务每个gRPC端口之间的平衡经销商豆荚。对于本示例中,我们假设您使用的是Kubernetes服务和宝石是运行在一个名称空间enterprise-metrics

以下部分添加到您的珠宝每个宝石吊舱或过程所使用的配置文件。

仪表:distributor_client:地址:dns: / / / distributor.enterprise-metrics.svc.cluster.local: 9095

,你可以另外添加命令行标志的参数传递给每个宝石吊舱或过程。

  • -instrumentation.distributor-client.address =“dns: / / / distributor.enterprise-metrics.svc.cluster.local: 9095”

上面描述的是什么会给你整个宝石集群系统健康指标。为了更好地理解宝石的行为,你也要理解资源的使用在一个基本水平。为了得到你需要理解这种行为的自我监控指标(和填充每个租户使用“仪表板提供宝石插件),你还必须部署overrides-exporter组件。

范本

宝石1.8以来,自我监控能力直接记录范本。然而,记录下的范本__system__租户仍然是由相同的控制限制应用于所有其他租户。这意味着记录的范本__system__租户在默认情况下是禁用的(因为它是所有租户),必须使用运行时配置文件启用全球或启用。

__system__租户是内置的宝石本身和不可变的,限制它(如使原型)不能使用管理API。相反,如果你想发出的范本__system__租户必须覆盖max_global_exemplars_per_user设置为__system__租户使用运行时配置文件或使全球典范。

这是一个使用运行时配置文件的例子:

覆盖:__system__: max_global_exemplars_per_user: 300000

验证

上面的配置更改部署后,您需要验证自我监控是否正常工作。我们将学习如何查询自我监控指标后,但来验证他们工作我们可以检查当自我监控指标发出一个简单的计数器递增。

选择一个圆荚体或过程,是宝石集群的一部分。对于这个示例,我们将假设您已经选择一个摄取。

做一个旋度请求/指标摄取的端点。

$ curl - s ' http://ingester - 01. example.com/metrics ' | grep的cortex_self_monitoring_pushes_total #有助于cortex_self_monitoring_pushes_total的成功推动自我监控指标#类型cortex_self_monitoring_pushes_total计数器cortex_self_monitoring_pushes_total 15

请注意如果您正在运行的宝石在Kubernetes集群中,个体吊舱可能不是从外部直接访问Kubernetes集群。在这种情况下你可以请求另一个豆荚Kubernetes集群中运行,也可以利用kubectl左前命令。

如果上面的指标0或不存在,请检查每个宝石的日志组件寻找错误或警告相关推动经销商的指标。

查询

为了自我监控指标直接查询,你需要创建一个令牌相关的__system__访问策略。下面的步骤假定您已经完成了令牌的抄下来。下面的例子进一步假设您的宝石集群可用的主机gem.example.com在HTTPS。

首先,设置令牌作为一个变量用于随后的命令。

美元出口API_TOKEN =“你长牌字符串复制”

接下来,我们将做一个查询请求到普罗米修斯端点的宝石寻找特定的度量。在这种情况下,grafana_metrics_enterprise_build_info

美元curl - s - u“__system__: $ API_TOKEN”“https://gem.example.com/prometheus/api/v1/query?查询= grafana_metrics_enterprise_build_info”|金桥{“地位”:“成功”,“数据”:{“resultType”:“向量”、“结果”:[{“指标”:{“__name__”:“grafana_metrics_enterprise_build_info”,“分支”:“宝石-释放- 1.4”,“goversion”:“go1.16.3”、“实例”:“ingester-01:80”、“修订”:“ccd12b7a”,“目标”:“摄取”、“版本”:“v1.4.1”},“价值”:[1622833381.751,“1”]},{“指标”:{“__name__”:“grafana_metrics_enterprise_build_info”,“分支”:“宝石-释放- 1.4”,“goversion”:“go1.16.3”、“实例”:“distributor-01:80”、“修订”:“ccd12b7a”,“目标”:“分销商”、“版本”:“v1.4.1”},“价值”:[1622833381.751,“1”]},<剪断…>]}}

正如你所看到的,查询自我监控指标与宝石是相同的过程查询任何其他类型的指标。

实现

虽然你不需要熟悉自我监控是如何工作的技术水平,这是详细的下面,希望它是有用的。

收集

内部自我监控收集度量标准相同的方式度量通过公开/指标端点是:注册一个普罗米修斯注册在应用程序启动。更新指标在正常运行应用程序并定期(每15秒默认情况下)直接冲到分销商。任何度量可以从/指标端点的宝石中可用组件也将自我监控系统。

指标被写入经销商对其gRPC接口。这使得自我监控系统控制指标的确切租户存储。这使它干净地分离系统指标(下__system__租户)从用户数据。

注入的标签

通常情况下,当指标由普罗米修斯刮,标签自动添加的普罗米修斯识别指标是从哪里来的。因为自我监控指标不是由任何外部系统、刮标签自动添加内部来帮助识别指标来自哪个组件。

下面的标签被添加到指标发出的自我监控系统。

  • 实例:这个标签是由节点或主机名的组件是结合使用的HTTP端口上运行。例如一个值这个标签在宝石集群上运行Kubernetesingester-1:80querier-5bf6ddccd7-hzbtn: 80

  • 目标:这个标签是由逗号分隔的列表的目标宝石流程正在运行(摄取,查询器等)或所有在单一的二进制模式。

系统租户和访问策略

为了干净地分离自我监控数据从用户数据,宝石带有一个内置的__system__租户和__system__访问策略。所有的自我监控数据写入__system__租户。自我监控的数据可能被查询使用令牌的__system__访问策略。因为这些是内置宝石本身,他们不能被删除。然而,自我监控指标写入系统租户可以使用国旗被关闭-instrumentation.enabled = false或相关的配置设置。

记录规则

为了使用自我监测指标相关的自我监控仪表板,宝石的统治者还包括内置录音规则。这些记录规则执行聚合的自我监控指标他们统治者聚合其他指标一样。因为这些记录规则是内置的宝石本身,他们不能被删除。然而,他们可以关闭使用相同的标志,启用或禁用自我监控-instrumentation.enabled = false或相关的配置设置。

开销

自我监控指标都存储在宝石本身。像任何其他指标,它们消耗在对象存储空间。当在microservices模式下启用,每个宝石组件(摄取、查询器等)将发出大约2000系列/组件。这些系列是为每个组件发出和宝石重复ingesters基于复制的因素。

了解有多少系列下写的__system__承租人作为自我监控的一部分,您可以使用以下公式:

2000 * NUMBER_OF_GEM_PROCESSES * REPLICATION_FACTOR美元

由于这些系列是写入其他系列珠宝以类似的方式,他们会删除处理对象存储,减少压缩机的空间要求。了解许多系列将在对象存储最终通过__system__租户,您可以使用以下公式:

* 2000 NUMBER_OF_GEM_PROCESSES