在现代软件开发中,实时监控系统对于确保应用的稳定性和可靠性至关重要。WatchDog是一个专为ASP.NET Core Web应用程序和API设计的开源、免费的实时应用监控系统。本文将详细介绍WatchDog的技术特点、工作原理、安装配置以及使用场景,并提供实例代码展示。
1. WatchDog项目介绍
WatchDog是一个开源(MIT License)的实时应用监控系统,专为ASP.NET Core Web应用程序和API设计。它能够实时记录和查看应用程序中的消息、事件、HTTP请求和响应,以及运行时捕获的异常。
2. 工作原理
WatchDog利用SignalR进行实时监控,并使用LiteDB作为无需配置的类似MongoDB的无服务器数据库,同时也支持使用外部数据库(如MSSQL、MySQL、Postgres、MongoDB)。
3. 主要功能
-
实时记录并展示HTTP请求与响应。
-
实时捕获并记录应用程序在运行时产生的异常。
-
提供友好的日志查看界面,支持搜索和过滤功能。
-
支持多种数据库作为后端存储。
4. 技术特点
-
利用SignalR实现实时监控。
-
提供丰富的配置项,如黑名单、序列化器、CORS策略等。
-
支持.NET Core 3.1及更高版本,以及官方支持.NET 8。
5. 安装与配置
5.1 安装WatchDog
通过NuGet搜索并安装WatchDog.NET
包:
shell
go
dotnet add package WatchDog.NET
5.2 注册WatchDog服务
在ASP.NET Core Web API的Program.cs
中注册WatchDog服务:
go
builder.Services.AddWatchDogServices(opt =>
{
opt.IsAutoClear = true;
opt.ClearTimeSchedule = WatchDogAutoClearScheduleEnum.Monthly;
opt.DbDriverOption = WatchDogDbDriverEnum.Mongo;
opt.SetExternalDbConnString = "mongodb://localhost:27017";
});
builder.Logging.AddWatchDogLogger();
5.3 添加异常记录器
go
app.UseWatchDogExceptionLogger();
5.4 设置访问日志的账号密码
go
app.UseWatchDog(conf =>
{
conf.WatchPageUsername = "Admin";
conf.WatchPagePassword = "9999999999";
conf.Blacklist = "/auth, user";
});
6. 查看日志和异常
启动服务器并访问/watchdog
来查看日志:
go
https://myserver.com/watchdog
https://localhost:[your-port]/watchdog
7. 项目效果
WatchDog提供了一个用户友好的界面,可以实时查看日志和异常信息,帮助开发者快速定位问题。
8. 总结
WatchDog是一款强大且易于使用的.NET开源实时应用监控系统。通过使用WatchDog,我们可以轻松实现对.NET应用的实时监控,提高应用的稳定性和可靠性。希望这篇文章能够帮助你更好地理解和使用WatchDog。
往期精品推荐: