Grafana PromQL 无法读取未定义的属性“结果”

Posted

技术标签:

【中文标题】Grafana PromQL 无法读取未定义的属性“结果”【英文标题】:Grafana PromQL Cannot read property 'result' of undefined 【发布时间】:2020-12-13 04:07:29 【问题描述】:

我目前正在学习 prometheus,并尝试使用 Grafana 和 PromQL 可视化其指标,但每次我输入查询指标时,它总是显示错误 Cannot read property 'result' of undefined,我在互联网上搜索并尝试了一些查询,所有这些都没有区别。我想知道我哪里出错了,因为这是我第一次使用 prometheus 和 grafana,这是我使用的一些设置

首先,这是我的 prometheus 配置,位于 .net framework

public class PrometheusConfig

    private static readonly Counter counter = Metrics.CreateCounter("initial_counter", "counter to initiate Prometheus");

    public static void Register(HttpConfiguration config)
    
        var server = new MetricServer(port: 1234);
        server.Start();

        counter.Inc();
    

    public static void RegisterFilter(HttpFilterCollection filters)
    
        filters.Add(new PrometheusFilter());
    

这是我想要可视化的普罗米修斯指标

这是我的 grafana 数据源

最后,这是我的面板图

谁能告诉我如何解决这个问题?

【问题讨论】:

【参考方案1】:

此错误通常表示 grafana 无法查询 API。

在您的情况下,这是因为 URL 不应包含 /metrics。此 URL 用于抓取 Prometheus 内部。

正确的 URL 应该是 Prometheus 的基本路径:http://localhost:1234

【讨论】:

如果我删除 /metrics,则找不到 404。我也试过:9090 您是否在安装 grafana 的同一台服务器上尝试过 curl?可能是您的 Prometheus 未绑定到正确的接口或路由错误。 (是的,9090 是默认的 Prometheus 端口,但我认为这是一个示例) 您是否设置了 Prometheus 实例来抓取您的软件? Grafana 使用 Prometheus 的 /api,而不是应用程序的原始指标端点。 也许这就是迈克尔的问题。如何设置实例来抓取我的 api?我正在从这个 github.com/prometheus-net/prometheus-net#installation 中学习,哪一部分解释了关于抓取我的 api 而不是仅仅发布到度量端点?还是我可以参考其他参考资料? 你必须 install prometheus 并告诉它抓取你的 api(例如使用 static config)。然后将你的 grafana 指向 prometheus URL。请参阅文档中的架构概述)。

以上是关于Grafana PromQL 无法读取未定义的属性“结果”的主要内容,如果未能解决你的问题,请参考以下文章

无法读取未定义类型错误的属性“推送”:无法读取未定义错误的属性“推送”

带有 Ionic 4 的 SQLite?无法读取未定义类型错误的属性“then”:无法读取未定义的属性“then”

`无法读取未定义的属性(读取'组件')`

NextJS:未捕获的类型错误:无法读取未定义的属性(读取“属性”)

使用地图时反应'无法读取未定义的属性'

如何使用自定义错误消息捕获“TypeError:无法读取未定义的属性(读取'0')”?