我正在使用带Spring靴2的SCDF。x metrics和SCDF metrics collector从我的Spring Boot应用程序收集指标。我真的不理解收集器关于聚合度量(aggregateMetrics)数据的逻辑。
当我获取为我的流收集的指标列表时,我只有以integration.channel.*
开头的指标,因此我只有平均值。我尝试了所有方法来查看其他指标,就像/执行器/prometheus
endpoint公开的指标一样。
我想我误解了指标的聚合方式。我注意到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返回以下内容来实现这一点:注册表-
谢谢
虽然您对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。哪一个更好用?