跳到主要内容
版本:3.0.0

Prometheus 指标监控(Aegis.Prometheus)

Aegis.Prometheus 负责暴露 /metrics 采集端点,并自动接入基础 HTTP 指标。它更偏指标暴露组件,不负责链路追踪;如果你还要看调用链,再配合 OpenTelemetry 链路追踪

组件概览

字段说明
组件名称Prometheus 指标监控
真实类库Aegis.Prometheus
组件定位Prometheus 指标暴露与 HTTP 指标采集组件
引入方式安装 NuGet,并在 Component.deps.jsonServicesMiddlewares 中启用 Prometheus
组件声明Prometheus
核心能力/metrics 端点、请求总数、请求耗时、处理中请求数
典型配套OpenTelemetry 链路追踪

什么时候要用它

适合场景:

  • 你要让 Prometheus 抓取当前服务指标
  • 你要在 Grafana 中观察接口访问量、响应时间和并发请求数
  • 你要先接基础指标,再逐步建设可观测体系

最小可运行路径

第一步:安装组件

dotnet add package Aegis.Prometheus

第二步:在 Component.deps.json 中启用 Prometheus

Prometheus 的服务注册阶段本身很轻,真正生效点在中间件阶段,所以标准接法是同时放进 ServicesMiddlewares

{
"Components": {
"Services": [
"Prometheus"
],
"Middlewares": [
"Prometheus"
]
}
}

第三步:启动后直接访问 /metrics

启用后,应用会自动暴露指标端点:

http://localhost:5000/metrics

组件默认做了什么

当前默认会启用三类基础 HTTP 指标:

指标类型说明
请求总数统计请求次数
请求耗时统计接口耗时分布
处理中请求数统计当前正在处理的请求量

这些能力开箱即用,不需要额外配置节点。

最常见的接入方式

这类组件最常见的业务动作不是在代码里直接注入对象,而是:

  1. 启用组件
  2. 启动应用
  3. 用 Prometheus 抓 /metrics
  4. 在 Grafana 里建图表

最基础的 Prometheus 抓取配置通常像这样:

scrape_configs:
- job_name: "aegis-api"
static_configs:
- targets: ["127.0.0.1:5000"]
metrics_path: /metrics

接入后怎么确认生效

通常用下面几项验收:

  • 访问 /metrics 可以看到文本格式指标输出
  • 访问几个业务接口后,指标数值会变化
  • Prometheus 抓取目标状态为 UP
  • Grafana 中可以画出请求次数和响应耗时图表

和 OpenTelemetry 的关系

两者不是二选一,而是职责不同:

  • Prometheus:负责指标暴露
  • OpenTelemetry:负责链路追踪和 OTLP 导出

如果项目当前只想先把“接口监控”做起来,先接 Prometheus 就够了。

常见问题

已经启用了 Prometheus,但 /metrics 还是 404

优先检查:

  • Component.deps.json 是否把 Prometheus 同时放进了 Middlewares
  • 应用是否已经使用最新构建配置启动

指标端点有内容,但 Prometheus 采不到

优先检查:

  • Prometheus 的 targets 是否指向了正确主机和端口
  • metrics_path 是否是 /metrics
  • 网络层或网关是否拦截了该路径