You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
3.8 KiB
182 lines
3.8 KiB
7 years ago
|
.. _config_access_log_v1:
|
||
|
|
||
|
Access logging
|
||
|
==============
|
||
|
|
||
|
Configuration
|
||
|
-------------
|
||
|
|
||
|
.. code-block:: json
|
||
|
|
||
|
{
|
||
|
"access_log": [
|
||
|
{
|
||
|
"path": "...",
|
||
|
"format": "...",
|
||
|
"filter": "{...}",
|
||
|
},
|
||
|
]
|
||
|
}
|
||
|
|
||
|
.. _config_access_log_path_param:
|
||
|
|
||
|
path
|
||
|
*(required, string)* Path the access log is written to.
|
||
|
|
||
|
.. _config_access_log_format_param:
|
||
|
|
||
|
format
|
||
|
*(optional, string)* Access log format. Envoy supports :ref:`custom access log formats
|
||
|
<config_access_log_format>` as well as a :ref:`default format
|
||
|
<config_access_log_default_format>`.
|
||
|
|
||
|
.. _config_access_log_filter_param:
|
||
|
|
||
|
filter
|
||
|
*(optional, object)* :ref:`Filter <config_http_con_manager_access_log_filters_v1>` which is used
|
||
|
to determine if the access log needs to be written.
|
||
|
|
||
|
.. _config_http_con_manager_access_log_filters_v1:
|
||
|
|
||
|
Filters
|
||
|
-------
|
||
|
|
||
|
Envoy supports the following access log filters:
|
||
|
|
||
|
.. contents::
|
||
|
:local:
|
||
|
|
||
|
Status code
|
||
|
^^^^^^^^^^^
|
||
|
|
||
|
.. code-block:: json
|
||
|
|
||
|
{
|
||
|
"filter": {
|
||
|
"type": "status_code",
|
||
|
"op": "...",
|
||
|
"value": "...",
|
||
|
"runtime_key": "..."
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Filters on HTTP response/status code.
|
||
|
|
||
|
op
|
||
|
*(required, string)* Comparison operator. Currently *>=* and *=* are the only supported operators.
|
||
|
|
||
|
value
|
||
|
*(required, integer)* Default value to compare against if runtime value is not available.
|
||
|
|
||
|
runtime_key
|
||
|
*(optional, string)* Runtime key to get value for comparision. This value is used if defined.
|
||
|
|
||
|
Duration
|
||
|
^^^^^^^^
|
||
|
|
||
|
.. code-block:: json
|
||
|
|
||
|
{
|
||
|
"filter": {
|
||
|
"type": "duration",
|
||
|
"op": "..",
|
||
|
"value": "...",
|
||
|
"runtime_key": "..."
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Filters on total request duration in milliseconds.
|
||
|
|
||
|
op
|
||
|
*(required, string)* Comparison operator. Currently *>=* and *=* are the only supported operators.
|
||
|
|
||
|
value
|
||
|
*(required, integer)* Default value to compare against if runtime values is not available.
|
||
|
|
||
|
runtime_key
|
||
|
*(optional, string)* Runtime key to get value for comparision. This value is used if defined.
|
||
|
|
||
|
|
||
|
Not health check
|
||
|
^^^^^^^^^^^^^^^^
|
||
|
|
||
|
.. code-block:: json
|
||
|
|
||
|
{
|
||
|
"filter": {
|
||
|
"type": "not_healthcheck"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Filters for requests that are not health check requests. A health check request is marked by
|
||
|
the :ref:`health check filter <config_http_filters_health_check>`.
|
||
|
|
||
|
Traceable
|
||
|
^^^^^^^^^
|
||
|
|
||
|
.. code-block:: json
|
||
|
|
||
|
{
|
||
|
"filter": {
|
||
|
"type": "traceable_request"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Filters for requests that are traceable. See the :ref:`tracing overview <arch_overview_tracing>` for
|
||
|
more information on how a request becomes traceable.
|
||
|
|
||
|
|
||
|
.. _config_http_con_manager_access_log_filters_runtime_v1:
|
||
|
|
||
|
Runtime
|
||
|
^^^^^^^^^
|
||
|
.. code-block:: json
|
||
|
|
||
|
{
|
||
|
"filter": {
|
||
|
"type": "runtime",
|
||
|
"key" : "..."
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Filters for random sampling of requests. Sampling pivots on the header
|
||
|
:ref:`x-request-id<config_http_conn_man_headers_x-request-id>` being present. If
|
||
|
:ref:`x-request-id<config_http_conn_man_headers_x-request-id>` is present, the filter will
|
||
|
consistently sample across multiple hosts based on the runtime key value and the value extracted
|
||
|
from :ref:`x-request-id<config_http_conn_man_headers_x-request-id>`. If it is missing, the
|
||
|
filter will randomly sample based on the runtime key value.
|
||
|
|
||
|
key
|
||
|
*(required, string)* Runtime key to get the percentage of requests to be sampled.
|
||
|
This runtime control is specified in the range 0-100 and defaults to 0.
|
||
|
|
||
|
And
|
||
|
^^^
|
||
|
|
||
|
.. code-block:: json
|
||
|
|
||
|
{
|
||
|
"filter": {
|
||
|
"type": "logical_and",
|
||
|
"filters": []
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Performs a logical "and" operation on the result of each filter in *filters*. Filters are evaluated
|
||
|
sequentially and if one of them returns false, the filter returns false immediately.
|
||
|
|
||
|
Or
|
||
|
^^
|
||
|
|
||
|
.. code-block:: json
|
||
|
|
||
|
{
|
||
|
"filter": {
|
||
|
"type": "logical_or",
|
||
|
"filters": []
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Performs a logical "or" operation on the result of each individual filter. Filters are evaluated
|
||
|
sequentially and if one of them returns true, the filter returns true immediately.
|