2018.10.22 阿里雲對默認nginx log的分析功能詳細介紹。php
有時爲了方便分析接口性能等,須要記錄請求的時長,經過修改nginx的日誌格式能夠作到,如html
添加一個新的log_formatnginx
log_format timed_combined '$remote_addr - $remote_user [$time_local] "$request" '併發
'$status $body_bytes_sent "$http_referer" 'app
'"$http_user_agent" "$http_x_forwarded_for" 'oop
'$request_time $upstream_response_time';性能
而後引用這個新的日誌格式阿里雲
access_log /var/log/nginx/access.log timed_combined;日誌
幾個時間變量的解釋code
若是使用是阿里雲,就能夠使用他們的日誌服務,方便的查詢到各執行時間了,以下圖:
後記:
2019.9.25 注意,併發請求時,時間有可能會累計,致使對單個請求的時長統計並不許確。
2019.9.26 這個時間跟請求的客戶端網速有關係,不是純的內部處理時長。若是請求客戶端網速越慢,時長越大。並且若是你沒有使用upstream配置,返回的也是整個請求的處理時長(亦跟客戶端網速有關)。
Nginx還支持自定義時間參數的下鑽功能,只要在http頭上添加相關頭字段,並在log_format配置上就能夠提取獲得了。如在php代碼中輸出響應頭db_read_time,而後在Nginx.conf配置log_format記錄此頭的值,如
log_format main 'app_db_read_time=$upstream_http_db_read_time '
參考
https://lincolnloop.com/blog/tracking-application-response-time-nginx/
https://www.nginx.com/blog/using-nginx-logging-for-application-performance-monitoring/