The following describes the format used in the Nginx (router) access log for private cloud 4.18.05.
It’s important to note that other versions (including earlier 4.16.xx & 4.17.xx ) might use different formats.
Most of these values are standard nginx variable names and are described:
http://nginx.org/en/docs/http/ngx_http_core_module.html#variables
For a general discussion of nginx logging please see:-
http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format
MP = Message processor.
Token | Example value | Meaning |
$time_iso8601 | 2018-07-21T14:00:03+08:00 | Time logged when the router receives a request |
$remote_addr:$remote_port | xx.xxx.xx.xxx:xxxxx | Client IP address, (note this is the TCP peer so could be a load balancer) |
$hostname | myhost | hostname of the router |
$upstream_addr | xx.xxx.xx.xxx:xxxx | IP address and port of the message processor |
$request_time | 0.020 | Request time in seconds |
<spacer> | - | |
<spacer> | - | |
$status | 200 | status returned to the client |
$upstream_status | 200 | status returned from the MP |
$request_length | 300 | request length (including request line, header, and request body) |
$bytes_body | 200 | body length (for PUT/POST) |
$request | POST /api/cool/token?fred=123 HTTP/1.1 | The actual request sent by the client |
$upstream_http_x_apigee_message_id | XXXXXXXXX-90000-241022-1 | A ID to track the request |
$http_user_agent | curl/7.1.5 | The user-agent value |
$hostname-$pid-$connection-$connection_requests | XXXX.X-93936-241022-1 | see note 1 |
$my_nginx_var_xff | XX.XXX.X.X | X_FORWARDED_FOR |
$upstream_http_x_apigee_fault_flag | - | see note 2 |
$upstream_http_x_apigee_fault_source | - | .. |
$upstream_http_x_apigee_fault_code | - | .. |
$upstream_http_x_apigee_fault_policy | - | .. |
$upstream_http_x_apigee_fault_flow | - | .. |
$upstream_http_x_apigee_fault_revision | - | .. |
$upstream_http_x_apigee_dp_color | - | ignore for private cloud |
$my_x_apigee_target_latency | .013 | time taken at target |
$upstream_http_x_apigee_proxy | the API proxy name | |
$upstream_http_x_apigee_proxy_basepath | /api/cool | the proxy basepath |
$self_region | dc-1 | the router's own region |
$self_pod | gateway | the pod type |
$self_color | green | N/A in private cloud |
Note 1:
This is the hostname, the process id that handled the request, the connection serial number and
The number of requests sent on this connection. See Nginx documentation for more details.
Note 2:
A policy might cause a fault to be raised, these elements provide details of the fault raised.
For more details see: https://docs.apigee.com/api-platform/fundamentals/fault-handling
Hi rblewitt1,
Thanks for the nice post.
$my_x_apigee_target_latency column is in millisecond and '-1' if requests don't reach to its target end.
My understanding is correct?
"Time logged when the router receives a request" is in a format where milli seconds are not recorded. With APIs where latencies are measured in ms, having this not captured in router is a gap for sure. Is there any way we can reconfigure this to capture date/Time in UTC format where ms are captured?