SuperAPI AI 工具集

aspnet-health-checks

数据与分析

查看项目

更新于 10-16 06:51

技能介绍

用途:为 ASP.NET Core 应用配置健康检查,服务于 Kubernetes/Docker 的 livenessProbe、readinessProbe,以及 nginx、AWS ALB、Azure App Gateway 等负载均衡的健康端点,并监控依赖服务状态与延迟。

主要能力:通过 AddHealthChecks() 注册探针,支持 SqlServer、Npgsql、MySql、Redis、RabbitMQ、Kafka、外部 URL(Uris)、系统资源(磁盘、内存)等社区包,也可实现 IHealthCheck 自定义检查。健康状态分 Healthy、Degraded、Unhealthy 三级。支持用标签(tags)过滤检查,并可用 AspNetCore.HealthChecks.UI 提供仪表盘与历史图表。

使用方式:安装对应包,例如 dotnet add package AspNetCore.HealthChecks.SqlServer、AspNetCore.HealthChecks.Redis、AspNetCore.HealthChecks.Uris;在 Program.cs 中注册检查并映射端点。关键做法是拆分两个端点:/healthz/live 使用 Predicate = _ => false,只做自身存活检查,不检查依赖;/healthz/ready 使用 Predicate = check => check.Tags.Contains("ready"),运行带 ready 标签的依赖检查。可自定义 ResponseWriter 输出 JSON 状态、耗时与错误。Kubernetes 中分别配置 livenessProbe 与 readinessProbe,并设置合理的 initialDelaySeconds、periodSeconds、timeoutSeconds、failureThreshold。

适用场景:部署到 Kubernetes/Docker、置于负载均衡之后、需要区分存活与就绪、需要监控数据库/缓存/队列/外部 API、需要运维仪表盘时。

限制与注意事项:liveness 不应检查数据库等依赖,否则依赖故障会导致容器无限重启;外部 API 检查只应放在 readiness;自定义检查需处理异常并尊重 CancellationToken,避免探针挂起;探针间隔不宜过短以免频繁冲击数据库;健康端点可能泄露数据库版本、schema 等敏感信息,应过滤响应或对完整端点加认证。资料未提供具体收费、价格或平台限制信息。