当前位置: 首页 > 知识库问答 >
问题:

SCDF指标收集器-包括普罗米修斯指标

姚树
2023-03-14

我正在使用带Spring靴2的SCDF。x metrics和SCDF metrics collector从我的Spring Boot应用程序收集指标。我真的不理解收集器关于聚合度量(aggregateMetrics)数据的逻辑。

当我获取为我的流收集的指标列表时,我只有以integration.channel.*开头的指标,因此我只有平均值。我尝试了所有方法来查看其他指标,就像/执行器/prometheusendpoint公开的指标一样。

我想我误解了指标的聚合方式。我注意到SCDF会自动向指标添加一些属性,我想将这些属性应用于我公开的所有指标,以便收集它们。

{
  "_embedded": {
    "streamMetricsList": [
      {
        "name": "poc-stream",
        "applications": [
          {
            "name": "poc-message-sink",
            "instances": [
              {
                "guid": "poc-stream-poc-message-sink-v7-75b8f4dcff-29fst",
                "key": "poc-stream.poc-message-sink.poc-stream-poc-message-sink-v7-75b8f4dcff-29fst",
                "properties": {
                  "spring.cloud.dataflow.stream.app.label": "poc-message-sink",
                  "spring.application.name": "poc-message-sink",
                  "spring.cloud.dataflow.stream.name": "poc-stream",
                  "spring.cloud.dataflow.stream.app.type": "sink",
                  "spring.cloud.application.guid": "poc-stream-poc-message-sink-v7-75b8f4dcff-29fst",
                  "spring.cloud.application.group": "poc-stream",
                  "spring.cloud.dataflow.stream.metrics.version": "2.0"
                },
                "metrics": [
                  {
                    "name": "integration.channel.input.send.mean",
                    "value": 0,
                    "timestamp": "2018-10-25T16:34:39.889Z"
                  }
                ]
              }
            ],
            "aggregateMetrics": [
              {
                "name": "integration.channel.input.send.mean",
                "value": 0,
                "timestamp": "2018-10-25T16:34:52.894Z"
              }
            ]
          },
...

我有一些测微计计数器,我想用量度收集器获取值。我知道它们是公开的,因为我已经设置好了所有的属性,我甚至进入了启动的Docker容器来检查endpoint。

我读过那个

部署应用程序时,数据流设置spring.cloud.stream.metrics.properties属性,如下例所示:

Spring云流动指标。属性=Spring。应用名称,spring。应用Spring索引。云应用程序。*,Spring云数据流*

这些键的值用作执行聚合的标记。在2的情况下。x应用程序中,这些键值直接映射到测微计库中的标记上。属性spring。云应用guid可用于跟踪生成度量的特定应用程序实例

这是否意味着我需要自己专门将这些属性添加到所有指标的标记中?我知道我可以通过让一个Bean返回以下内容来实现这一点:注册表-

谢谢


共有1个答案

戎元忠
2023-03-14

虽然您对MetricsCollector的观察“通常”是正确的,但我相信有一种替代方法(可能更干净)可以通过使用SCDF测微计度量收集方法来实现您一直在尝试的目标。下面我将尝试解释这两种方法。

由于MetricsCollector在时间上领先于测微计框架,它们都实现了完全不同的度量处理流程。指标收集器2的主要目标。x是为了确保与SpringBoot 1的向后兼容性。x指标。MetricsCollector 2。x允许混合来自SpringBoot 1的指标。x(预测微计)和Spring防尘套2。x(例如千分尺)app启动器。该决定的结果是收集器2。x仅支持Boot 1中可用度量的公共分母。x和2。x、 这一要求是通过仅对集成进行预过滤来实现的。频道* 指标。目前,如果不修改度量收集器代码,您将无法添加更多度量。如果您认为支持不同的测微计指标比向后兼容Boot 1更重要。x然后请在Metrics Collector项目中打开一个新问题。我仍然相信下面解释的方法更适合您的情况!

与MetricsCollector方法不同,“纯”测微计度量直接发送到选定的度量注册表(如Prometheus、InfluxDB、Atlas等)。如示例所示,可以使用Grafana等工具对收集的度量进行分析和可视化。遵循SCDF度量示例,通过InfluxDB(或Prometheus)和Grafana设置度量集合。稍后,您可以探索任何现成的或自定义的测微计指标。这种方法(目前)的缺点是,您将无法在SCDF UI的管道中可视化这些指标。不过,如果您觉得在SCDF UI中实现这种可视化很重要,请在SCDF项目中打开一个新版本(我有Altals测微计注册表的WIP)。

我希望这能为替代方法提供一些启示。我们非常有兴趣听取您的反馈。

干杯!

 类似资料:
  • 我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希

  • 我把普罗米修斯和格拉法纳部署到我的集群里。 当我打开仪表板时,我不会获得pod CPU使用情况的数据。 当我检查Prometheus UI时,它显示pods 0/0向上,但是我的集群中有许多pods在运行。

  • 我已经配置了普罗米修斯来获取一些来源的指标。 cadvisor 问题是。 在Prometheus UI中,我可以看到所有的目标,在图形中,我可以查询所有与nodejs相关的指标。但是如果我做,我只看到与普罗米修斯和节点出口商相关的指标。没有任何与nodejs应用程序或hazelcast相关的内容。 直接请求nodejs应用程序毫无问题地返回所有这些值。 什么会导致这样的问题?

  • 我试图使用现有的Prometheus(集群外部)从EKS集群内部聚合所有的指标,EC2(CPU、ram、disk)和POD(CPU、ram、disk)。我开始使用node-exporter、kube-state-metrics添加数据,但我一直坚持部署metrics-server。使用helm I conf并安装它,和正在提取数据,但是有人能告诉我如何将所有这些都提取到外部的Prometheus吗

  • 我在普罗米修斯使用spring boot2。我们使用Postgres作为数据库。普罗米修斯url没有获取数据库指标。 任何参考资料都会很有帮助。 我已经试过了 当我到达终点/普罗米修斯时,我得到了这个错误

  • 我使用掌舵图普罗米修斯-社区/库贝-普罗米修斯-堆栈安装了普罗米修斯操作员设置。有人能解释一下为什么度量标准有差异吗?因为prometheus和kubernetes仪表板都使用kube-state-metrics。哪一个更好用?