我想记录来自我的每个微服务的传入流量的请求和响应正文。 开箱即用的Istio(特使)有可能吗? 我在Mixer的EntryLog中看不到要映射的body属性。 也许会在将来的Istio版本中添加它?
我当然可以通过在微服务中实现自己的过滤器来实现这一目标,但是也许有更好的解决方案来实现这一目标。
答案 0 :(得分:0)
如果我正确理解了您的问题,那么您应该查看Lua过滤器的此文档。 https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/lua_filter 和https://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”