Sentry 错误追踪器 - Quarkus 应用的守护者

如果你和我一样,遇到了 Quarkus 并爱上了它,你开始实现你的后端,并开始感到如此轻松和快速,咔哒咔哒,呜呜……,你的闪电般的原生容器准备好发送到你全新的 Kubernetes 集群上了 🤙

这太棒了!!

嗯……你可能忘了一个细节……你是否考虑过你的第一个生产环境异常的命运(请对我诚实 :-)?

  1. 作为一个后端大神,世界的主宰,名字中的第一个,你实现了一些 Logstash 进程来提取你的日志文件,将它们发送到某个 Elasticsearch 服务器……抱歉地说,你花费在配置上的时间比实际编写你的应用程序的时间还要多 😅。

  2. 你以为你可以每周手动检查几次错误日志,然后……哎呀,你不走运,你的应用程序正好在你忘记检查的那天崩溃了,希望没有人注意到 🤭?

  3. 你一直在等这篇文章 🤓

现在你被吊足了胃口,不是吗?让我们深入了解一下。

Sentry,守护者已降临 Quarkus

一旦你的代码被审查、以多种方式测试、容器化……并最终部署到生产环境,我猜你可以期望它从此以后都能顺利运行.. 异常将会出现,这只是时间问题。问题是:

  1. 你将如何收到这个错误的通知?

  2. 你将如何处理它?

嗯,这看起来是个复杂的问题,对吧?这正是我喜欢将 Quarkus 和 Sentry 结合使用的原因,你可以在几分钟内完成所有设置

  • 创建一个 Sentry 账户,你可以根据你的项目需求选择免费套餐或其他套餐(或者花费一点时间,甚至可以 自托管 Sentry

    Sentry 最近 将其大部分代码重新授权为 BSL - 这不是一个 OSI 批准的许可证。Java SDK 仍然是 3 条款 BSD 许可证。
  • 在你的 Quarkus 应用程序中配置 Sentry

    1. 添加扩展

      $ ./mvnw quarkus:add-extension -Dextensions=sentry
    2. 进行设置

      quarkus.log.sentry=true
      quarkus.log.sentry.dsn=[your Sentry DSN]
      quarkus.log.sentry.in-app-packages=org.acme
      更多关于配置的细节可以在 Logging with Sentry 指南 中找到

从此幸福快乐地生活

现在你很有信心,在你的所有测试代码极不可能发生的错误事件中,你的守护者将一直在关注着……

哔哔,你有邮件了……呃,糟糕,一个错误 🥳(你很高兴没有错过它)

Sentry Email Notification

你现在进入了非常漂亮的 Sentry 应用程序。它也很智能,可以将相似的事件分组到问题中(或者你也可以自己决定分组)。

Sentry Issue List

现在是时候在你最喜欢的追踪器(GitHub、Bitbucket、GitLab 等)上生成并链接一个问题了。它将包含大量关于错误的上下文信息(端点、参数、堆栈跟踪、环境等),以帮助你的团队修复那个讨厌的 bug。

Sentry issue details

如果你想更进一步,你可以开始定制一些规则,以你自己的方式发送警报。

Sentry Alerts Configuration

加分项,Sentry 也适用于你的 前端

祝你好运 🤙

一旦一个扩展被集成到 Quarkus 生态系统中,成千上万开发者的生活就变得更轻松了。如果你知道有类似的(或任何)工具,你认为可以帮助 Quarkus 社区,请 提议一下