1 回答
TA贡献1875条经验 获得超5个赞
我看着这个很大。这里有几件事...
我相信您的注册命令是错误的,至少对于您引用的示例应用程序而言是这样。
您正在使用cf register-metrics-endpoint api high_latency,这意味着您有一个名为的应用程序api和该应用程序上的一个端点,high_latency该端点使用 Prometheus 格式导出指标。对于这个示例应用程序,路径应该是/actuator/prometheus,根据自述文件和我的简短测试。
当我使用命令时cf register-metrics-endpoint app-name /actuator/prometheus,我能够在输出中看到自定义指标cf tail,但在包含的输出中看不到它们。
例如:(未显示在您的屏幕截图中)
2019-07-17T22:54:37.83-0400 [custom-metrics-demo/0] GAUGE tomcat_global_request_max_seconds:2.006000
2019-07-17T22:54:37.83-0400 [custom-metrics-demo/0] GAUGE system_cpu_count:4.000000
2019-07-17T22:54:37.83-0400 [custom-metrics-demo/0] COUNTER tomcat_sessions_created_sessions_total:12
2019-07-17T22:54:37.83-0400 [custom-metrics-demo/0] COUNTER custom_metric_total:15
2019-07-17T22:54:37.83-0400 [custom-metrics-demo/0] GAUGE jvm_gc_pause_seconds_sum:0.138000
2019-07-17T22:54:37.83-0400 [custom-metrics-demo/0] COUNTER jvm_gc_pause_seconds_count:25
在引用的示例应用程序中,没有名为 的指标high_latency,因此它不能用作您的指标名称,因为它永远不会由应用程序生成。/actuator/prometheus如果您在浏览器中访问端点,则可以看到所有指标。Prometheus 格式是基于文本的,非常容易阅读。
最后一个很棘手,没有记录,但我可以在 Autoscaler 的代码中看到它(在撰写本文时)。当 Autoscaler 从 LogCache 轮询指标时,它只提取 GAUGE 和 TIMER 事件,而不是 COUNTER 事件。如果您尝试使用custom_metric演示应用程序,那将无法正常工作,因为它是一个 COUNTER 指标。您只会看到有关 Autoscaler 在缩放窗口期间看不到任何指标事件的消息。确保您选择的是用于缩放的 GAUGE 指标。
Autoscaler 似乎也不支持使用带有关联标签的指标。例如,如果您想使用tomcat_servlet_request_seconds_sum{name="dispatcherServlet",},我认为没有办法告诉 Autoscaler 标签name必须是某个值。该信息在 LogCache 中,但我认为 Autoscaler 目前不会使用它。在我写这篇文章的时候,我快速浏览了一下代码,似乎表明它只是在查看指标名称。如果您要创建自定义指标,这无关紧要。只是不要为指标使用任何标签。
添加回答
举报