diff --git a/deploy/kubernetes/atst-configmap.yml b/deploy/kubernetes/atst-configmap.yml index a9584fc5..79f9a61b 100644 --- a/deploy/kubernetes/atst-configmap.yml +++ b/deploy/kubernetes/atst-configmap.yml @@ -10,6 +10,26 @@ data: callable = app module = app socket = /var/run/uwsgi/uwsgi.socket - plugins = python3 + plugin = python3 + plugin = logfile virtualenv = /opt/atat/atst/.venv chmod-socket = 666 + + ; logger config + + ; application logs: log without modifying + logger = secondlogger stdio + log-route = secondlogger atst + log-encoder = format:secondlogger ${msg} + + ; default uWSGI messages (start, stop, etc.) + logger = default stdio + log-route = default ^((?!atst).)*$ + log-encoder = json:default {"timestamp":"${strftime:%%FT%%T}","source":"uwsgi","severity":"DEBUG","message":"${msg}"} + log-encoder = nl + + ; uWSGI request logs + logger-req = stdio + log-format = request_id=%(var.HTTP_X_REQUEST_ID), pid=%(pid), remote_add=%(addr), request=%(method) %(uri), status=%(status), body_bytes_sent=%(rsize), referer=%(referer), user_agent=%(uagent), http_x_forwarded_for=%(var.HTTP_X_FORWARDED_FOR) + log-req-encoder = json {"timestamp":"${strftime:%%FT%%T}","source":"req","severity":"INFO","message":"${msg}"} + log-req-encoder = nl diff --git a/deploy/kubernetes/test/atst-configmap.yml b/deploy/kubernetes/test/atst-configmap.yml index 54409d7d..30c64f29 100644 --- a/deploy/kubernetes/test/atst-configmap.yml +++ b/deploy/kubernetes/test/atst-configmap.yml @@ -10,6 +10,26 @@ data: callable = app module = app socket = /var/run/uwsgi/uwsgi.socket - plugins = python3 + plugin = python3 + plugin = logfile virtualenv = /opt/atat/atst/.venv chmod-socket = 666 + + ; logger config + + ; application logs: log without modifying + logger = secondlogger stdio + log-route = secondlogger atst + log-encoder = format:secondlogger ${msg} + + ; default uWSGI messages (start, stop, etc.) + logger = default stdio + log-route = default ^((?!atst).)*$ + log-encoder = json:default {"timestamp":"${strftime:%%FT%%T}","source":"uwsgi","severity":"DEBUG","message":"${msg}"} + log-encoder = nl + + ; uWSGI request logs + logger-req = stdio + log-format = request_id=%(var.HTTP_X_REQUEST_ID), pid=%(pid), remote_add=%(addr), request=%(method) %(uri), status=%(status), body_bytes_sent=%(rsize), referer=%(referer), user_agent=%(uagent), http_x_forwarded_for=%(var.HTTP_X_FORWARDED_FOR) + log-req-encoder = json {"timestamp":"${strftime:%%FT%%T}","source":"req","severity":"INFO","message":"${msg}"} + log-req-encoder = nl diff --git a/deploy/kubernetes/test/test.yml b/deploy/kubernetes/test/test.yml index 3c1c3bc0..82c64dd0 100644 --- a/deploy/kubernetes/test/test.yml +++ b/deploy/kubernetes/test/test.yml @@ -28,7 +28,7 @@ spec: fsGroup: 101 containers: - name: atst - image: registry.atat.codes:443/atst-prod:47ce80b4 + image: registry.atat.codes:443/atst-prod:575cfce5 resources: requests: memory: "2500Mi" @@ -155,7 +155,7 @@ spec: fsGroup: 101 containers: - name: atst-worker - image: registry.atat.codes:443/atst-prod:47ce80b4 + image: registry.atat.codes:443/atst-prod:575cfce5 args: ["/bin/bash", "-c", "/opt/atat/atst/script/rq_worker"] resources: requests: diff --git a/deploy/kubernetes/uat/atst-configmap.yml b/deploy/kubernetes/uat/atst-configmap.yml index f7a8a9ca..0482ea10 100644 --- a/deploy/kubernetes/uat/atst-configmap.yml +++ b/deploy/kubernetes/uat/atst-configmap.yml @@ -10,6 +10,26 @@ data: callable = app module = app socket = /var/run/uwsgi/uwsgi.socket - plugins = python3 + plugin = python3 + plugin = logfile virtualenv = /opt/atat/atst/.venv chmod-socket = 666 + + ; logger config + + ; application logs: log without modifying + logger = secondlogger stdio + log-route = secondlogger atst + log-encoder = format:secondlogger ${msg} + + ; default uWSGI messages (start, stop, etc.) + logger = default stdio + log-route = default ^((?!atst).)*$ + log-encoder = json:default {"timestamp":"${strftime:%%FT%%T}","source":"uwsgi","severity":"DEBUG","message":"${msg}"} + log-encoder = nl + + ; uWSGI request logs + logger-req = stdio + log-format = request_id=%(var.HTTP_X_REQUEST_ID), pid=%(pid), remote_add=%(addr), request=%(method) %(uri), status=%(status), body_bytes_sent=%(rsize), referer=%(referer), user_agent=%(uagent), http_x_forwarded_for=%(var.HTTP_X_FORWARDED_FOR) + log-req-encoder = json {"timestamp":"${strftime:%%FT%%T}","source":"req","severity":"INFO","message":"${msg}"} + log-req-encoder = nl diff --git a/sample-config/nginx.conf b/sample-config/nginx.conf index 7832c28a..07a63084 100644 --- a/sample-config/nginx.conf +++ b/sample-config/nginx.conf @@ -10,9 +10,20 @@ events { http { default_type application/octet-stream; - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; + log_format json escape=json + '{' + '"timestamp":"$time_iso8601",' + '"msec":"$msec",' + '"request_id":"$request_id",' + '"remote_addr":"$remote_addr",' + '"remote_user":"$remote_user",' + '"request":"$request",' + '"status":$status,' + '"body_bytes_sent":$body_bytes_sent,' + '"referer":"$http_referer",' + '"user_agent":"$http_user_agent",' + '"http_x_forwarded_for":"$http_x_forwarded_for"' + '}'; keepalive_timeout 65; @@ -20,7 +31,7 @@ http { listen 8000; server_name localhost; - access_log /dev/stdout; + access_log /dev/stdout json; location / { try_files $uri @app; diff --git a/sample-config/uwsgi.ini b/sample-config/uwsgi.ini index 94ee919a..daf040bb 100644 --- a/sample-config/uwsgi.ini +++ b/sample-config/uwsgi.ini @@ -3,6 +3,7 @@ callable = app module = app plugin = python3 +plugin = stdio socket = localhost:8080 ; logger config