6

我想记录从传入流量到我的每个微服务的请求和响应正文。在 Istio (Envoy) 中是否可以开箱即用?我在 Mixer 的 EntryLog 中没有看到用于映射的 body 属性。也许它会在 Istio 的未来版本中添加?

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

4

1 回答 1

7

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

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

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

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

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

于 2018-12-31T13:59:12.657 回答