摘要:WatchDog是一个专为 .NET 开发者设计的轻量级应用程序监控框架,旨在帮助开发者实时掌握应用运行状态,并在发生异常时自动进行故障排查。它不仅支持日志记录、性能指标收集,还提供了自动恢复机制,使得系统具备更强的健壮性和可观测性。
WatchDog是一个专为 .NET 开发者设计的轻量级应用程序监控框架,旨在帮助开发者实时掌握应用运行状态,并在发生异常时自动进行故障排查。它不仅支持日志记录、性能指标收集,还提供了自动恢复机制,使得系统具备更强的健壮性和可观测性。
WatchDog 适用于多种 .NET 应用场景,包括但不限于 ASP.NET Core Web 应用、后台服务(Worker Services)、微服务架构中的各个组件等。
✅ 实时监控与健康检查WatchDog 提供了对应用程序关键指标的实时监控
• CPU 和内存使用率
• 请求处理时间
• 数据库连接池状态
• 异常数量统计
📊 日志与指标可视化集成 WatchDog 后,可以将运行时数据导出到 Prometheus、Grafana、ELK Stack 等主流监控平台,实现数据的集中展示和分析。
安装方式通过 NuGet 包管理器安装 WatchDog 相关组件:
dotnet add package WatchDog.NET基本配置1. 注册服务
builder.Services.AddWatchDogServices(opt =>{
opt.IsAutoClear = true;
opt.ClearTimeSchedule = WatchDogAutoClearScheduleEnum.Monthly;
opt.DbDriverOption = WatchDogDbDriverEnum.Mongo;
opt.SetExternalDbConnString = "mongodb://localhost:27017";
});
builder.Logging.AddWatchDogLogger;
2. 使用服务
//添加异常记录器app.UseWatchDogExceptionLogger;
//设置访问日志的账号密码
app.UseWatchDog(conf =>
{
conf.WatchPageUsername = "Admin";
conf.WatchPagePassword = "netshare";
conf.Blacklist = "/auth, user";
});
3. 运行,访问"/watchdog"
通过以下步骤可将 WatchDog 的指标数据暴露给 Prometheus:
• 安装 WatchDog.Metrics.Prometheus
• 启用 /metrics接口输出标准 Prometheus 格式的数据
• 配置 Prometheus 抓取目标并导入 WatchDog 默认 Dashboard 到 Grafana
2. 自定义监控插件WatchDog 支持插件扩展机制,允许开发者编写自定义监控模块,如:
• 自定义性能计数器
• 特定业务逻辑的异常监听器
• 第三方服务调用链追踪
只需实现接口并注册即可。3. 多环境支持与细粒度控制通过配置文件(appsettings.json)可以灵活设置不同环境下的监控行为:
{"WatchDog": {
"EnableHealthCheck":true
"EnableMetrics":true
"LogLevel": "Information",
"AutoRestartThreshold": 5
}
}
• GitHub 地址(如提供)请参考官方文档或社区分享
• 文章来源:https://www.cnblogs.com/Can-daydayup/p/18261633
来源:opendotnet