2017-05-08 4 views
0

google-cloud-logging ruby gem에서 로그를 찾는 데 문제가 있습니다.Google Cloud Logging Ruby : 특정 로그를 찾을 수 없습니다.

나는 고급 검색 내 구글의 클라우드 콘솔을 통해 이러한 로그를 찾을 수 있습니다 :이은을 반환하지만

{ insertId: "epfh5dffj67k5" jsonPayload: { requestId: 875325619 request: {…} timeSeconds: 5.296060973778367 } resource: { type: "gce_instance" labels: {…} } timestamp: "2017-05-08T19:31:20.145488859Z" severity: "WARNING" logName: "projects/myproject/logs/mylog" }

루비 에이전트를 통해 : jsonPayload.requestId=875325619 여러 개의 결과를 반환

, 하나의 기본 예제를 하늘의 배열 :

logging = Google::Cloud::Logging.new logging.entries filter: "jsonPayload.requestId=875325619" => []

{ insertId: "8w81fbg2a077zl" jsonPayload: { processingTime: 0.79228602 uploadType: "type" uploadKey: "example" } resource: { type: "gce_instance" labels: {…} } timestamp: "2017-05-08T18:58:11Z" labels: {…} logName: "projects/myproject/logs/otherapp" }

왜 내가 다른 로그 메시지의 한 세트를 찾을 수 없습니다 : 데이터가이처럼 보이는

logging.entries filter: 'jsonPayload.uploadKey="example"' [#<Google::Cloud::Logging::Entry:0x00000008e6ea30 (data here)>]

:그러나 나는이 작품을 보내 다른 로그 메시지를 찾고 계십니까?

+0

이것은 별다른 차이가 없지만 따옴표로 'requestId' 값을 래핑 해 보았습니까? jsonPayload.requestId = "875325619" – quartzmo

답변

1

편집 :

그것은 같은 jsonPayload.FIELD처럼 인덱싱되지 않은 필드가있는 항목을 검색 할 로깅 스택 드라이버에 대한 더 시간이 걸릴 수 있습니다. 서비스는 첫 번째 페이지가 비어 있더라도 특정 제한 시간이 지나면 결과의 첫 페이지를 반환 할 수 있습니다. 다음 번호로 전화하여 모든 페이지를 쿼리 할 수 ​​있습니다. logging.entries(filter: "jsonPayload.requestId=875325619").all.to_a

이렇게하면 여러 요청이 발생하고 시간이 오래 걸릴 수 있습니다.

색인 된 필드를 포함하여 항상 filter을 제한하는 것이 도움이된다는 사실을 발견했습니다. 즉 resource.type 필드입니다.

당신이 쿼리 코드를 변경하는 경우 :

logging.entries filter: "resource.type=gce_instance AND jsonPayload.requestId=875325619"

올바른 항목을 반환 빠르게 실행해야합니다.

관련 문제