Can not get x-b3-* tracing headers in EnvoyFilter

Hi, I’m using 1.1.4 and have an EnvoyFilter:

    apiVersion: networking.istio.io/v1alpha3
    kind: EnvoyFilter
    metadata:
      name: auth-debug
    spec:
      workloadLabels:
        app: istio-ingressgateway
      filters:
      - listenerMatch:
          portNumber: 443
          listenerType: GATEWAY
        filterName: envoy.lua
        filterType: HTTP
        insertPosition:
          index: FIRST
        filterConfig:
          inlineCode: |
            function envoy_on_request(request_handle)
                for key, value in pairs(request_handle:headers()) do
                   request_handle:logWarn("key:" .. key .. " <--> value:" .. value)
                end
            end

            function envoy_on_response(response_handle)
            end

And I define access log format "---> [%START_TIME%] %REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL% %REQ(X-REQUEST-ID)% %REQ(X-B3-TRACEID)% %REQ(X-B3-SPANID)% %REQ(X-B3-PARENTSPANID)% %REQ(XRING)%\n"

Then I have curl https://foo.bar.com/book/booklist and get ingress gateway access log:

[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key::method <--> value:GET
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key::path <--> value:/book/booklist
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key::scheme <--> value:https
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key::authority <--> value:foo.bar.com
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key:user-agent <--> value:curl/7.54.0
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key:accept <--> value:*/*
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key:x-forwarded-for <--> value:192.168.0.136
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key:x-forwarded-proto <--> value:https
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key:x-envoy-internal <--> value:true
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key:x-request-id <--> value:9dcbfa89-993b-93d3-92f7-954c7b4da6a8
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: key:x-envoy-decorator-operation <--> value:seed-gateway.x.svc.cluster.local:80/book/*
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key::method <--> before value:GET
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key::path <--> before value:/book/booklist
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key::scheme <--> before value:https
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key::authority <--> before value:api-x.yjyz.com
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key:user-agent <--> before value:curl/7.54.0
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key:accept <--> before value:*/*
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key:x-forwarded-for <--> before value:192.168.0.136
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key:x-forwarded-proto <--> before value:https
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key:x-envoy-internal <--> before value:true
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key:x-request-id <--> before value:9dcbfa89-993b-93d3-92f7-954c7b4da6a8
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key:x-envoy-decorator-operation <--> before value:seed-gateway.x.svc.cluster.local:80/book/*
[2019-06-02 09:36:18.988][228][warning][lua] [external/envoy/source/extensions/filters/http/lua/lua_filter.cc:538] script log: before key:x-istio-attributes <--> before value:CiQKHWRlc3RpbmF0aW9uLnNlcnZpY2UubmFtZXNwYWNlEgMSAXgKKgoYZGVzdGluYXRpb24uc2VydmljZS5uYW1lEg4SDHNlZWQtZ2F0ZXdheQpPCgpzb3VyY2UudWlkEkESP2t1YmVybmV0ZXM6Ly9pc3Rpby1pbmdyZXNzZ2F0ZXdheS02NWRiOTY0NmQ0LXNqaGM5LmlzdGlvLXN5c3RlbQo8ChdkZXN0aW5hdGlvbi5zZXJ2aWNlLnVpZBIhEh9pc3RpbzovL3gvc2VydmljZXMvc2VlZC1nYXRld2F5Cj4KGGRlc3RpbmF0aW9uLnNlcnZpY2UuaG9zdBIiEiBzZWVkLWdhdGV3YXkueC5zdmMuY2x1c3Rlci5sb2NhbA==
---> [2019-06-02T09:36:18.987Z] GET /book/booklist HTTP/2 9dcbfa89-993b-93d3-92f7-954c7b4da6a8 dab6bcd36d862c1871547a5ff8134aef 71547a5ff8134aef - -

Why I can not get traceid and spanid with value dab6bcd36d862c1871547a5ff8134aef and 71547a5ff8134aef from the for loop in Lua script?

it would be your lua script is in the FIRST position in the filterchain and the traceid and spanid are still not created by ingress gateway. You can set the requestid/traceid/spanid in your curl command and try again.