Prometheus Net AspNet Core 不支持 http2 协议

Prometheus Net AspNet Core not supporting http2 protocol

我正在尝试将 prometheues 配置到 .Net Core 3.1 应用程序中。我的应用程序在 http2 协议上运行,我在 appsetting.json.

中有以下配置
  "Kestrel": {
    "EndpointDefaults": {
      "Protocols": "Http2"
    }
  },

但是,我无法在 prometheus UI 中启动服务和 运行。(我查询“up”以检查服务器 运行 状态)。我在普罗米修斯日志中收到以下消息。

caller=tls_config.go:191 component=web msg="TLS is disabled." http2=false

如果我将协议设置为 Http1AndHttp2,我将启动服务并在 prometheus 中 运行。但是我需要在只支持http2协议的情况下启动服务。

请同时在我的 prometheus.yml

中找到我所做的配置
  - job_name: "service"

    # metrics_path defaults to '/metrics'
    scheme: https
    tls_config:
      insecure_skip_verify: true    
    static_configs:
      - targets: 
        - localhost:5001

目前Prometheus默认不支持HTTP/2,可能是这个问题。在下一个版本 (v2.31) 中,它将再次启用,但现在,在最新版本 (v2.30) 中,您可以将 PROMETHEUS_COMMON_ENABLE_HTTP2 环境变量设置为非空值以启用它。