0

我正在为我的 ASP.NET Core 3.1 应用程序设置 Prometheus 导出器。

我已经进口了

<PackageReference Include="prometheus-net.AspNetCore" Version="4.1.1" />

这就是我配置的:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ...

    app.UseRouting();
    app.UseHttpMetrics();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
        endpoints.MapMetrics();
    });
}

这将在与 ASP.NET Core 应用程序的其余部分相同的端口上公开指标端点,例如:my.api.com:80/metrics.

我需要做什么才能/metrics在另一个端口上公开端点?我想让我的 API 在端口 80 上运行,/metrics端点在端口 9102 上。

真的找不到任何关于此的文档。

编辑

我正在将它部署到 Kubernetes

4

1 回答 1

1

我最终这样做了:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ...
    app.UseMetricServer(9102);

    app.UseRouting();
    app.UseHttpMetrics();

    ...

}

然后对于我的 Kubernetes,Deployment我必须将端口 80 和 9102 添加到containerPorts 下ports

另外我必须将ASPNETCORE_URLS环境变量设置为http://+:80;http://+:9102

这样,/metrics仅在端口 9102 上公开。(但是我的 API 的其余部分在端口 80 和 9102 上公开)。

于 2021-02-19T11:51:41.557 回答