textPayload를 기반으로 Stackdriver 심각도 설정

textPayload를 기반으로 Stackdriver 심각도 설정

log4j로깅 메시지의 형식을 지정하는 데 사용하는 개발자가 만든 내부 Java 애플리케이션이 있습니다 . 최근 우리는 Google Kubernetes Engine에서 이를 실행하기 시작했으며 로그는 자동으로 stdout에서 Stackdriver로 파이프됩니다. 그러나 모든 로그는 심각도 수준으로 표시됩니다 INFO. 그러한 메시지 중 하나에는 다음과 같이 시작하는 textPayload가 있습니다.

18 Jul 2019 10:11:32.334 [ERROR] [req=api-test--870259294-18071111-11 sess=cwfscqttcfqh1acsictx3toxv reqMs=4]

이것이 심각도 메시지라는 것은 개발자의 의도가 분명 ERROR하지만 Stackdriver를 염두에 두고 애플리케이션을 구축하지 않았기 때문에 구조화되지 않았으며 심각도로 보고되었습니다 INFO.

우리가 사용하는 중앙 집중식 로깅을 존중하기 위해 애플리케이션을 변경해야 한다는 것은 잘못된 것 같습니다. 고객은 다른 로깅 솔루션을 사용할 수도 있습니다. 심각도를 확인하기 위해 Stackdriver에서 textPayload를 사용하도록 할 수 있는 방법이 있나요? 저는 Google Kubernetes Engine에서 실행 중이므로 로깅 인프라를 설정하지 않았으며 Google에서 제공하는 것 이상으로 이에 대한 액세스 권한이 없습니다.

Google Cloud Platform의 Error Reporting은 오류 메시지 추적을 위한 강력한 도구이지만 심각도 이상의 로그에만 올바르게 적용되기 때문에 이러한 변경에 관심이 있습니다 ERROR. 단순히 Stackdriver의 로그에 대한 측정항목을 생성하는 것만으로는 원하는 대로 제어할 수 없습니다.

답변1

빠른 대답은 아니요입니다. 코드를 변경하고 각 메시지에 대해 올바른 심각도로 적절한 로깅을 구현해야 합니다. 일반적으로 Stackdriver 로그를 BigQuery로 내보낸 다음 더 복잡한 쿼리를 실행할 수 있습니다.

여기에서 유용한 링크를 찾을 수 있습니다:

https://cloud.google.com/logging/docs/export/bigquery

https://cloud.google.com/logging/docs/structured-logging

관련 정보