App Engine的本机日志API的替代品?

Man*_*tis 7 logging google-app-engine splunk

有没有人对更好地在Google App Engine中进行日志记录有任何建议?我目前正在尝试使用Splunk Storm,但他们对输入很挑剔并经常下降.有没有其他人遇到这个并以某种身份解决了它?

目前,我有一个在后端运行的进程,该进程从LogService读取并通过REST api将日志传输到Splunk Storm.这通常会失败,或者风暴会下降,或者后端IP会发生变化.

我的问题在于App Engine中提供的日志记录,因为当推送新版本时日志消失并且使用提供的仪表板查询日志几乎无法使用.Splunk是一个潜在的解决方案,但云解决方案还有很多不足之处.

任何能够为我的日志提供更好界面的东西都会受到赞赏.

Pet*_*ego 5

您可以将GAE中的日志导出到具有强大查询语言的BiqQuery.您可以使用Mache,一个已经完成此操作的开源项目.您应该编写自己的导出器,以显示您感兴趣的(并使queryabe)字段(列).


Ada*_*son 1

由于您已决定使用 Splunk(或其他外部服务)作为永久存储,因此听起来您需要一个位置来缓冲日志在写入 App Engine 日志服务和 Splunk 可用于接受日志之间的时间。为了避免在版本变更导致日志从 App Engine 中消失之前丢失日志,该缓冲区需要快速且高度可用。

AE 数据存储是一种合理的选择。没有到第 3 方的不可靠的跃点,它具有可用性 SLA,并且可以通过分片写入任意扩展。缺点是读/写操作的成本和运行中日志的存储占用空间,但您将为另一个后备存储带来类似的成本。

无论选择哪种服务,都让一个批处理进程(例如后端或 cronjob)从日志读取器 API 写入缓冲区。只要它运行的频率高于应用程序更新的频率,日志就会始终存在于持久存储中。然后让另一个批处理进程等待 Splunk 可用,然后从缓冲区上传到它,并在收到 Splunk 的收据确认后删除。