我想知道是否有任何劫持标准的方法"任务在1.00秒后超时"日志中。
上下文:我将lambda函数日志传输到AWS Elasticsearch / Kibana,我记录的一个事项是函数是否成功执行(很高兴知道)。我已经为ES设置了一个测试流,并且我已经能够定义一个模式来映射我在ES中记录的字段。
从该功能,我控制台记录如下:
" \"失败\" \"有些事搞砸了\" \" 0.100秒\""
并且通过映射,我得到了一个像:
这样的日志结构状态 - 消息 -------------------- 执行时间 < / p>
失败----有些东西搞砸了 - 0.100秒
......哪个很可爱。但是,如果日志如下:
&#34;任务在1.00秒后超时&#34;
然后映射显然不适用。如果它被ES接收,它可能会将整个字符串转储到&#34;状态&#34;,这是不理想的。
我想也许我可以查询context.getRemainingMillis(),如果它可能在最长执行时间的10毫秒内(你无法从上下文对象中获取??)然后触发自定义日志并忽略默认输出。然而,这感觉就像一个黑客。
有没有人有从AWS Lambda登录ES的经验?使用status等创建这些自定义日志的关键是我们可以监视lambda函数的活动(很多),默认的日志格式不允许我们对函数的结果进行分类。
**** 编辑 ****
我使用的解决方案是修改AWS生成的lambda函数,以便将日志行发送到Elasticsearch。如果我能与AWS的lambda记录器接口来设置日志格式会很好,但是现在这样做会有效!
我将就此分享几个关键点: