当前位置: 首页 > article >正文

.NET开源实时应用监控系统:WatchDog

在现代软件开发中,实时监控系统对于确保应用的稳定性和可靠性至关重要。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

dotnet add package WatchDog.NET
5.2 注册WatchDog服务

在ASP.NET Core Web API的Program.cs中注册WatchDog服务:

 
 
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 添加异常记录器
 
 
app.UseWatchDogExceptionLogger();
5.4 设置访问日志的账号密码
 
 
app.UseWatchDog(conf =>
{
    conf.WatchPageUsername = "Admin";
    conf.WatchPagePassword = "9999999999";
    conf.Blacklist = "/auth, user";
});

6. 查看日志和异常

启动服务器并访问/watchdog来查看日志:

 
 
https://myserver.com/watchdog
https://localhost:[your-port]/watchdog

7. 项目效果

WatchDog提供了一个用户友好的界面,可以实时查看日志和异常信息,帮助开发者快速定位问题。

8. 总结

WatchDog是一款强大且易于使用的.NET开源实时应用监控系统。通过使用WatchDog,我们可以轻松实现对.NET应用的实时监控,提高应用的稳定性和可靠性。希望这篇文章能够帮助你更好地理解和使用WatchDog。

往期精品推荐:

在国内默默无闻的.NET,在国外火的超乎想象?

C#的膨胀之路:创新还是灭亡

介绍.NET 6款好看的winform开源UI库

介绍一款最受欢迎的.NET 开源UI库

WPF第三方开源UI框架:打造独特体验的魔法师

WPF与Winform,你的选择是?

WinForm的前世今生

.NET成年了,然后呢?——编程界的逆袭传奇


http://www.kler.cn/a/404469.html

相关文章:

  • 排序算法:直接插入排序,希尔排序,选择排序,快速排序,堆排序,归并排序
  • 蓝桥杯每日真题 - 第20天
  • 揭秘AIGC下的数字时代:交互设计的隐秘力量与未来革命
  • Python设计模式详解之1 —— 单例模式
  • 爬虫开发(1)爬虫开发工具介绍与环境搭建
  • batchnorm与layernorn的区别
  • 《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
  • STM32学习笔记----三极管和MOS管的区别
  • 【人工智能】深度学习入门:用TensorFlow实现多层感知器(MLP)模型
  • 使用 IntelliJ IDEA 编写 Spark 应用程序(Scala + Maven)
  • 基于Spring AI alibaba组件AI问答功能开发示例
  • SpringBoot提交参数去除前后空格
  • Linux firewall防火墙规则
  • Spring Security 安全认证框架
  • 详解Oracle表的类型(一)
  • Makefile 之 join
  • 2024年亚太地区数学建模大赛A题-复杂场景下水下图像增强技术的研究
  • #Uniapp篇:支持纯血鸿蒙发布适配UIUI
  • Spring Boot教程之Spring Boot简介
  • mysql 唯一键
  • ssm157基于Vue框架的订餐系统+vue(论文+源码)_kaic
  • 45.坑王驾到第九期:Mac安装typescript后tsc命令无效的问题
  • 鸿蒙学习高效开发与测试-应用程序框架和HarmonyOS SDK(3)
  • 【网络工程】查看自己电脑网络IP,检查网络是否连通
  • 算法【最长递增子序列问题与扩展】
  • 移动应用开发:Android Studio实现简易注册页(数据存放以SharedPreferences形式)