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

时间:2012-09-10 20:02:00

标签: google-app-engine logging splunk

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

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

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

任何可以为我的日志提供更好界面的东西都会受到赞赏。

2 个答案:

答案 0 :(得分:5)

您可以将GAE中的日志导出到BiqQuery quite capable query language。您可以使用Mache,这是一个已经完成此任务的开源项目。您应该write your own exporter,公开(并使查询)您感兴趣的字段(列)。

答案 1 :(得分:1)

由于您已决定使用Splunk(或其他外部服务)作为永久存储,因此您需要一个位置来缓存日志,这些位置在写入App Engine的日志服务和Splunk可用于接受日志。为避免在版本流失之前丢失日志导致它们脱离App Engine,此缓冲区需要快速且高度可用。

一个合理的选择是AE数据存储。第三方没有不可靠的跳跃,它具有可用性SLA,并且可以通过分片写入任意缩放。缺点是R / W操作的成本和飞行中日志的存储空间,但是您将为另一个后备存储带来可比的成本。

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