ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

istio 日志打印 request body 和respon body

2021-12-29 18:03:03  阅读:256  来源: 互联网

标签:body handle respon request envoy lua response


envoyfilter.yaml

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: reviews-lua
  namespace: default #应用的名称空间
spec:
  workloadSelector:
    labels:
      app: crm-bms #app label
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        portNumber: 80
        filterChain:
          filter:
            name: "envoy.filters.network.http_connection_manager"
            subFilter:
              name: "envoy.filters.http.router"
    patch:
      operation: INSERT_BEFORE
      value: 
       name: envoy.lua
       typed_config:
          "@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"
          inlineCode: |
            function envoy_on_request(request_handle)
              local request_body_buffer = request_handle:body()
              if(request_body_buffer == nil)
              then
                request_handle:streamInfo():dynamicMetadata():set("envoy.lua", "requestBody", "-")
              else
                local request_body_data = request_body_buffer:getBytes(0, request_body_buffer:length())
                request_handle:streamInfo():dynamicMetadata():set("envoy.lua", "requestBody", request_body_data)
              end
            end

            function envoy_on_response(response_handle)
              local response_body_buffer = response_handle:body()
              if(response_body_buffer == nil)
              then
                response_handle:streamInfo():dynamicMetadata():set("envoy.lua", "responseBody", "-")
              else
                local response_body_data = response_body_buffer:getBytes(0, response_body_buffer:length())
                response_handle:streamInfo():dynamicMetadata():set("envoy.lua", "responseBody", response_body_data)
              end
            end

将以上规则应用到集群,然后修改istio配置文件,定制日志格式:    accessLogFormat: "%RESPONSE_CODE% %DYNAMIC_METADATA(envoy.lua)%\n"

用以下命令测试:curl -d '"test":"ok"' crm-bms

查看效果:

 

标签:body,handle,respon,request,envoy,lua,response
来源: https://www.cnblogs.com/dufeixiang/p/15745990.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有