Java Google AppEngine托管虚拟机:可以通过Logging API获取哪些日志?

时间:2016-02-07 03:18:16

标签: google-app-engine managed-vm google-managed-vm google-cloud-logging

我喜欢我可以使用Logs API(此处描述:https://cloud.google.com/appengine/docs/java/logs/)以编程方式访问和显示app&我认为合适的请求日志 - 它很棒。

现在,我在AppEngine上使用托管虚拟机,您可以在管理控制台日志查看器上看到有大量其他日志 - 在我的情况下包括我发现可以包含在查看器中的自定义日志(在此描述:https://cloud.google.com/appengine/docs/managed-vms/custom-runtimes#logging)。

Admin Console Log Viewer

我的问题是:我有什么方法可以使用Logs API(或其他已构建的管道?)来访问这些日志?我的托管虚拟机模块包含几个可以生成我想要查看的日志的组件:

  1. 应用程序日志 - 我可以得到这些!这里没问题。
  2. 后台进程创建的自定义日志文件我在_ah / start中启动(例如" my_custom_1.log"在屏幕截图中)
  3. STDERR&来自我的后台流程的STDOUT
  4. 相关的托管虚拟机日志(例如,由于运行状况不佳而重启实例的时间......正常重启等其他系统事件?)
  5. 基本上我想要"总图片" 在实例级。有人试图以这种方式成功驯服托管虚拟机吗?我不期待推出自己的解决方案。我甚至不知道从哪里开始捕获STDERR和STDOUT的问题。任何帮助赞赏。

1 个答案:

答案 0 :(得分:0)

App Engine日志记录和Google Cloud日志记录之间存在差异。一些托管虚拟机日志会同时发送到两者,但其中大部分都只发送到云日志。

直到最近,还没有一个API可以读取云日志,只能写入它们。但是,有一个新的v2 beta API:https://cloud.google.com/logging/docs/api/introduction_v2

要在实例级别执行操作,Cloud日志记录中的条目应设置元数据以表示它们来自哪个VM。这些值似乎与我的VM的日志不同:

  • compute.googleapis.com/resource_name
  • compute.googleapis.com/resource_id