.net core 集成 sentry 进行异常报警

Intro

Sentry 是一个实时事件日志记录和汇集的平台。其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈。它分为客户端和服务端,客户端(目前客户端有 C#, Python, PHP, JavaScript, Ruby等多种语言)就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web页方便查看。

Sentry 是 Python 写的一个开源的项目 https://github.com/getsentry/sentry 而且可以满足私有部署的需求

官方介绍:

Sentry is cross-platform application monitoring, with a focus on error reporting.

Sentry fundamentally is a service that helps you monitor and fix crashes in realtime. The server is in Python, but it contains a full API for sending events from any language, in any application

使用效果

sentry 里每一个错误/异常被视为一个 issue,在 sentry 的后台可以看到对应项目的错误信息,并且会受到 sentry 的邮件推送

dotnetcore 集成

针对 asp.net core 的集成,分为两种方式,sentry 提供了一个底层一点的基于 Microsoft.Extensions.Logging 的集成方式( Sentry.Extensions.Logging)和基于 asp.net core 框架的集成方式( Sentry.AspNetCore),我目前在用基于 logging 方式的集成方式(基于 asp.net core 的集成是后来才有的,后面也没有再修改),如果要集成 asp.net core 项目可以直接使用 Sentry.AspNetCore

我目前用的是 Sentry.Extensions.Logging 基本配置如下:

loggerFactory.AddSentry(options =>{options.Dsn = Configuration.GetAppSetting("SentryClientKey");});

Dsn 是创建项目之后在项目的配置里可以看得到

More Config

loggerFactory.AddSerilog().AddSentry(options =>{options.Dsn = Configuration.GetAppSetting("SentryClientKey");options.Environment = env.EnvironmentName; // 设置环境options.MinimumEventLevel = LogLevel.Error; // 设置 sentry event 级别});

修改 sentry event 信息,对于发生的错误异常可以在发送到 sentry 服务器端之前做修改,对于要忽略的异常也可以在这个事件中做,比如系统中的 TaskCanceledException ,我在使用异步查询方法的时候会传递一个 CancellationToken ,客户端中断了请求就会导致这个 Token 的 Cancel 事件被触发,EF 就会报一个 TaskCanceledException 前段时间,sentry 经常会给我发一些异常邮件,全都是 TaskCanceledException,我们可以在这个事件里判断如果异常时 TaskCanceledException 就返回一个 null, 这样这个异常就不会被提交到 sentry 服务器端了

options.BeforeSend = (sentryEvent) =>
{// ignore TaskCanceledException/OperationCanceledExceptionif (sentryEvent.Exception is TaskCanceledException ||sentryEvent.Exception is OperationCanceledException){return null;}return sentryEvent;
};

More

除了基本的异常信息的展示和推送,sentry 还会做异常信息的聚合,相同的异常信息只会展示为一个,还可以做 issue 的分发指派,还可以和 Github、Gitlab 等第三方服务集成,在 Github 中创建 issue 等,更多用法等待着你去发现

Reference

  • https://github.com/getsentry/sentry

  • https://docs.sentry.io/platforms/dotnet/microsoft-extensions-logging/

  • https://docs.sentry.io/platforms/dotnet/aspnetcore/

.net core 集成 sentry 进行异常报警相关推荐

  1. Net Core集成Exceptionless分布式日志功能以及全局异常过滤

    相信很多朋友都看过我的上篇关于Exceptionless的简单入门教程[asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程][https:// ...

  2. [Abp 源码分析]ASP.NET Core 集成

    点击上方蓝字关注我们 0. 简介 整个 Abp 框架最为核心的除了 Abp 库之外,其次就是 Abp.AspNetCore 库了.虽然 Abp 本身是可以用于控制台程序的,不过那样的话 Abp 就基本 ...

  3. asp.net core 集成 prometheus

    asp.net core 集成 prometheus Intro Prometheus 是一个开源的现代化,云原生的系统监控框架,并且可以轻松的集成 PushGateway, AlertManager ...

  4. .Net Core 集成 RabbitMQ 订阅与发送

    什么是RabbitMQ? 专业理解: MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced MessageQueue 高级消息队 ...

  5. asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程...

    最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...

  6. 配置安全的Impala集群集成Sentry

    本文主要记录配置安全的Impala集群集成Sentry的过程.Impala集群上配置了Kerberos认证,并且需要提前配置好Hive与Kerberos和Sentry的集成: 使用yum安装CDH H ...

  7. asp.net core 集成 log4net 日志框架

    asp.net core 集成 log4net 日志框架 Intro 在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 Logg ...

  8. asp.net core 集成JWT

    [什么是JWT] JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案. JWT的官网地址:https://jwt.io/ 通俗地来讲,JWT是能代表用户身份的令牌,可以使用JWT ...

  9. asp.net core集成CAP(分布式事务总线)

    一.前言 感谢杨晓东大佬为社区贡献的CAP开源项目,传送门在此:.NET Core 事件总线,分布式事务解决方案:CAP 以及 如何在你的项目中集成 CAP[手把手视频教程],之前也在工作中遇到分布式 ...

最新文章

  1. Java锁有哪些种类,以及区别
  2. NUC_HomeWork1 -- POJ1088(DP)
  3. c语言程序设计1.9例题
  4. LeetCode 326. 3的幂
  5. 打印机如何共享多台电脑_多台电脑打印机共享的方法
  6. Filter-Policy
  7. plus/digg_ajax.php,织梦dedecms首页添加digg顶一下的修改方法
  8. Xposed拦截抽象方法
  9. 不知道如何做好精益生产管理?可能是你的企业还没有进行工时分析
  10. 【会议记录】0305
  11. lodop 使用教程之图文详解 + 详细方法/参数的配置说明
  12. 无线 WIFI 的13个信道频率范围
  13. windows 注册表固定桌面壁纸
  14. Android 显示软键盘输入法和强制隐藏软键盘输入法
  15. bzoj 4987: Tree 树形dp
  16. Java Grammar:数据类型
  17. html+css+javascript满屏雪花爱心520表白网站 (含音乐)520告白/七夕情人节/生日礼物/程序员表白必备
  18. 人脸对齐之SDM论文解析
  19. C++打印乘法口诀表
  20. 用计算机探索ppt,信息技术应用 用计算机画函数图象ppt课件配套教案内容

热门文章

  1. 一个不错的游戏 - flash webgame
  2. python将argv作为参数_在jupyter / ipython notebook中将命令行参数传递给argv
  3. 如何将Outgoing Webhook部署到中国版Azure
  4. 如何将世界时钟和时区小部件添加到您的iPhone
  5. 关联分析算法c语言实现,机器学习关联分析
  6. POJ 2887 Big String
  7. 详解:从Greenplum、Hadoop到现在的阿里大数据技术
  8. Linux服务器数据备份
  9. 我的C++开发工具链
  10. .NET程序加壳的基本原理和方式浅析