Aws-app-mesh-roadmap: Bug: Access Log not working when virtual-node has no listener (egress-only)

Created on 26 Mar 2020  路  1Comment  路  Source: aws/aws-app-mesh-roadmap

Summary
What are you observing that doesn't seem right?
Access log is not getting generated from Envoy when corresponding virtual-node has no listener defined on it.

Steps to Reproduce
What are the steps you can take to reproduce this issue?
Launch app-mesh application with virtual-node spec as below

{
    "backends": [
        {
            "virtualService": {
                "virtualServiceName": "<some-vsvc>"
            }
        }
    ],
    "logging": {
        "accessLog": {
            "file": {
                "path": "/dev/stdout"
            }
        }
    }
}

Are you currently working around this issue?
How are you currently solving this problem?
I am adding a fake listener and service-discovery to workaround this.

Additional context
Anything else we should know?

Following is envoy configuration for egress listener with both forms of virtual-node. Note that in both cases virtual-node is configured with access-log.

with listener

{
    "name": "lds_egress_0.0.0.0_15001",
    "address": {
        "socket_address": {
            "address": "0.0.0.0",
            "port_value": 15001
        }
    },
    "filter_chains": [
        {
            "filter_chain_match": {
                "destination_port": 9080
            },
            "filters": [
                {
                    "name": "envoy.http_connection_manager",
                    "config": {
                        "rds": {
                            "config_source": {
                                "ads": {}
                            },
                            "route_config_name": "rds_egress_http_9080"
                        },
                        "stat_prefix": "egress",
                        "tracing": {
                            "operation_name": "EGRESS"
                        },
                        "access_log": [
                            {
                                "config": {
                                    "path": "/dev/stdout"
                                },
                                "name": "envoy.file_access_log"
                            }
                        ],
                        "http_filters": [
                            {
                                "name": "envoy.router"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "filter_chain_match": {
                "destination_port": 443,
                "server_names": [
                    "*.amazonaws.com"
                ]
            },
            "filters": [
                {
                    "name": "envoy.tcp_proxy",
                    "config": {
                        "stat_prefix": "egress",
                        "cluster": "cds_egress_app-mesh-load-test_amazonaws"
                    }
                }
            ]
        }
    ],
    "listener_filters": [
        {
            "name": "envoy.listener.original_dst"
        },
        {
            "name": "envoy.listener.tls_inspector"
        }
    ]
}

without listener

Notice that access_log directive is missing

{
    "name": "lds_egress_0.0.0.0_15001",
    "address": {
        "socket_address": {
            "address": "0.0.0.0",
            "port_value": 15001
        }
    },
    "filter_chains": [
        {
            "filter_chain_match": {
                "destination_port": 9080
            },
            "filters": [
                {
                    "name": "envoy.http_connection_manager",
                    "config": {
                        "http_filters": [
                            {
                                "name": "envoy.router"
                            }
                        ],
                        "rds": {
                            "route_config_name": "rds_egress_http_9080",
                            "config_source": {
                                "ads": {}
                            }
                        },
                        "stat_prefix": "egress",
                        "tracing": {
                            "operation_name": "EGRESS"
                        }
                    }
                }
            ]
        },
        {
            "filter_chain_match": {
                "destination_port": 443,
                "server_names": [
                    "*.amazonaws.com"
                ]
            },
            "filters": [
                {
                    "name": "envoy.tcp_proxy",
                    "config": {
                        "cluster": "cds_egress_app-mesh-load-test_amazonaws",
                        "stat_prefix": "egress"
                    }
                }
            ]
        }
    ],
    "listener_filters": [
        {
            "name": "envoy.listener.original_dst"
        },
        {
            "name": "envoy.listener.tls_inspector"
        }
    ]
}

Attachments
If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.)

Bug Medium

Most helpful comment

The bug has been fixed.

>All comments

The bug has been fixed.

Was this page helpful?
0 / 5 - 0 ratings