Prometheus 指标监控(Aegis.Prometheus)
Aegis.Prometheus 负责暴露 /metrics 采集端点,并自动接入基础 HTTP 指标。它更偏指标暴露组件,不负责链路追踪;如果你还要看调用链,再配合 OpenTelemetry 链路追踪。
组件概览
| 字段 | 说明 |
|---|---|
| 组件名称 | Prometheus 指标监控 |
| 真实类库 | Aegis.Prometheus |
| 组件定位 | Prometheus 指标暴露与 HTTP 指标采集组件 |
| 引入方式 | 安装 NuGet,并在 Component.deps.json 的 Services 和 Middlewares 中启用 Prometheus |
| 组件声明 | Prometheus |
| 核心能力 | /metrics 端点、请求总数、请求耗时、处理中请求数 |
| 典型配套 | OpenTelemetry 链路追踪 |
什么时候要用它
适合场景:
- 你要让 Prometheus 抓取当前服务指标
- 你要在 Grafana 中观察接口访问量、响应时间和并发请求数
- 你要先接基础指标,再逐步建设可观测体系
最小可运行路径
第一步:安装组件
dotnet add package Aegis.Prometheus
第二步:在 Component.deps.json 中启用 Prometheus
Prometheus 的服务注册阶段本身很轻,真正生效点在中间件阶段,所以标准接法是同时放进 Services 和 Middlewares。
{
"Components": {
"Services": [
"Prometheus"
],
"Middlewares": [
"Prometheus"
]
}
}
第三步:启动后直接访问 /metrics
启用后,应用会自动暴露指标端点:
http://localhost:5000/metrics
组件默认做了什么
当前默认会启用三类基础 HTTP 指标:
| 指标类型 | 说明 |
|---|---|
| 请求总数 | 统计请求次数 |
| 请求耗时 | 统计接口耗时分布 |
| 处理中请求数 | 统计当前正在处理的请求量 |
这些能力开箱即用,不需要额外配置节点。
最常见的接入方式
这类组件最常见的业务动作不是在代码里直接注入对象,而是:
- 启用组件
- 启动应用
- 用 Prometheus 抓
/metrics - 在 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- 网络层或网关是否拦截了该路径