【问题标题】:How log request and response body in Istio如何在 Istio 中记录请求和响应正文
【发布时间】:2019-05-17 19:08:27
【问题描述】:

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

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

【问题讨论】:

    标签: microservices istio envoyproxy


    【解决方案1】:

    如果我正确理解了您的问题,那么您应该查看 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”

    【讨论】:

    猜你喜欢
    • 2019-02-17
    • 2021-07-21
    • 2017-02-21
    • 2019-01-10
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    相关资源
    最近更新 更多