当前位置: 首页 > 知识库问答 >
问题:

如何获得发送到Google Cloud Logging的所有stderr日志的通知?

贺亦
2023-03-14

我想获得发送到谷歌云日志的所有标准错误日志的通知。最好是,我想通过谷歌云错误报告获得通知,这样我就可以通过GCP移动应用程序在我的手机上轻松获得通知。

我已经将应用程序部署到Google Kubernetes Engine,这些应用程序将日志写入标准错误,GKE很好地将所有stderr日志转发到Google Cloud Logging,logName:“projects/projectName/logs/stderr”

我在谷歌云日志中看到了日志,但错误报告并没有出现在日志中。

我已尝试按此处所述进行故障排除:https://cloud.google.com/error-reporting/docs/troubleshooting。但是,建议的解决方案围绕着以某种方式格式化日志。如果我部署了无法控制日志消息的应用程序,该怎么办?

一个(完全荒谬的)选项可以是基于发送到stderr的任何日志创建一个“基于日志的度量”,然后在度量超过1时得到通知。

获取stderr日志通知的推荐方式是什么?

共有2个答案

吴英武
2023-03-14

您可以通过在文档中所示的上下文中设置<code>@type

我还添加了服务数组,以便能够在错误报告中识别我的服务。

曾嘉言
2023-03-14

> < li>

如果错误报告无法识别容器中的stderr日志,这意味着它们没有以正确的格式显示,因此此API无法检测到它们。

查看有关如何为GKE API设置错误报告的指南

还有其他方法可以使用第三方产品(如gSlack)来做到这一点,基本上您可以将堆栈驱动程序日志导出到pub/sub,然后使用Cloud Functions将它们发送到Slack通道。

您也可以尝试通过使用云构建来实现,并尝试将其与GKE容器日志集成。

不过,我认为最好和最简单的选择是使用监控警报。

 类似资料:
  • 问题内容: python的日志记录模块是否有一种简单的方法可以将具有DEBUG或INFO级别的消息以及具有更高级别的消息发送到不同的流? 反正这是个好主意吗? 问题答案: 不一定是一个好主意(将信息和调试消息混入正常输出中可能会造成混淆!),但可行,因为您可以有多个处理程序对象和每个对象的自定义过滤器,以便选择日志记录每个处理程序要处理的内容。

  • 当我将应用程序运行到容器中时,我可以看到以下输出: Docker日志 现在,从docker实例中,我只看到“stdout”: root@3acd2bd90da4:/usr/src/app#./bin/run.sh 它错过了docker日志命令中以Traceback(stderr)开头的错误部分 当我在容器中运行命令时,我能做些什么来打印所有的日志? 谢啦

  • 问题内容: 我正在使用slf4j api进行记录的应用程序: (上面的代码显示了正在使用的类和程序包,但是很标准。) 我们使用配置如下的logback: 我们的某些代码利用了使用java.util.logging记录的第三方库- 特别是freemarker。从下面的控制台日志条目中可以看到,logback和jul都正在记录到控制台,但是它们没有使用相同的配置(logback条目使用我们的模式,ju

  • 问题内容: 我需要插入所有随发布发送的变量,它们是每个代表用户的复选框。 如果我使用GET,将会得到如下信息: 我需要在数据库中插入变量。 如何获取所有通过POST发送的变量?用逗号或其他东西隔开的数组或值? 问题答案: 该变量将自动填充。 尝试查看内容。 您可以这样访问各个值: 当然,这假设您的表单使用的是典型的表单编码(即 如果您的帖子数据采用其他格式(例如JSON或XML),则可以执行以下操

  • 问题内容: 我想知道如何设置更具体的日志记录系统。我所有的任务都使用 作为整个模块的记录器。 我希望celery登录到“ celeryd.log”,而我的任务登录到“ tasks.log”,但我不知道如何使它工作。使用django- celery可以将所有与celeryd相关的日志消息路由到celeryd.log,但是没有跟踪在我的任务中创建的日志消息。 问题答案: 注意:此答案在Celery 3

  • 我为android https://github.com/Firebase/quickstart-android/tree/master/messaging和ios https://github.com/Firebase/quickstart-ios/tree/master/messaging配置并安装了示例Firebase快速启动应用程序。