如何在Istio中记录请求和响应正文

时间:2018-12-17 12:01:54

标签: microservices istio envoyproxy

我想记录来自我的每个微服务的传入流量的请求和响应正文。 开箱即用的Istio(特使)有可能吗? 我在Mixer的EntryLog中看不到要映射的body属性。 也许会在将来的Istio版本中添加它?

我当然可以通过在微服务中实现自己的过滤器来实现这一目标,但是也许有更好的解决方案来实现这一目标。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,那么您应该查看Lua过滤器的此文档。 https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/lua_filterhttps://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/lua_filter#script-examples

body = handle:body()应该根据请求的句柄为您提供请求或响应正文。

handle:logInfo(message)应该可以帮助您记录它。

对我来说,打印声明也有效。 例如print(headers [“ Cache-Control”])正在将标头值放在GCP项目的kubernetes集群上我的应用程序的日志中。

您需要在Kubernetes集群中应用EnvoyFilter,并且在lua代码中,您可以记录请求正文。 另外请记住,“仅应将过滤器配置为名称envoy.lua”