在.NET Core微服务架构中,性能监控是保障系统稳定运行的关键环节。本文将分享在实际部署环境中使用Prometheus + Grafana进行微服务性能监控的实践经验。
监控架构搭建 首先,在Kubernetes集群中部署Prometheus Operator,通过自定义资源定义创建监控配置:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: myapp-monitor
spec:
selector:
matchLabels:
app: myapp
endpoints:
- port: http
path: /metrics
interval: 30s
.NET Core应用集成 在微服务中集成Prometheus客户端库:
// Startup.cs
services.AddMetrics();
// Controller中添加指标收集
[HttpGet("metrics")]
public IActionResult GetMetrics()
{
var counter = Metrics.CreateCounter("http_requests_total", "Total HTTP requests");
counter.Inc();
return new OkObjectResult(Metrics.DefaultRegistry.CollectAndSerialize());
}
Grafana仪表板配置 创建包含以下关键指标的仪表板:
- 响应时间(95%分位数)
- 错误率(HTTP 5xx状态码)
- CPU和内存使用率
- 请求速率
部署时建议使用Helm chart进行标准化配置,确保监控组件与微服务实例的自动发现和动态伸缩能力。
运维最佳实践
- 设置告警阈值:响应时间超过500ms触发告警
- 定期清理过期指标数据
- 配置适当的采样频率避免性能开销
- 建立监控指标的基线和趋势分析机制

讨论