2017-05-08 13 views
0

google-cloud-logging ruby gemからログを検索する際に問題が発生しています。Google Cloud Logging Ruby:特定のログが見つかりません

私は、高度な検索で自分のGoogleクラウドコンソールを介してこれらのログを見つけることができます。これは返すルビーエージェントを介ししかし

{ 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

複数の結果を返す1つの基本的な例を空アレイ:

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

しかし、私は作品を送って別のログメッセージを探して:

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

データは次のように見えること:

{ 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" }

なぜ私は1つのログメッセージのセットと他のないを見つけることができますか?

+0

これはおそらく違いはありませんが、引用符で 'requestId'値をラップしてみましたか? jsonPayload.requestId = "875325619" – quartzmo

答えて

1

編集:

それは、このようなjsonPayload.FIELDとしてだけでインデックス付けされていないフィールドを持つエントリを検索するログのStackdriverのために長い時間がかかることがあります。サービスは、最初のページが空であっても、一定の制限時間が経過した後、結果の最初のページを返すことがあります。すべてのページを照会できるのは、 logging.entries(filter: "jsonPayload.requestId=875325619").all.to_a

です。これにより、複数のリクエストが発生し、時間がかかることがあります。

インデックスフィールドを含めることによって常にfilterを制限することが役立ちます。すなわち、resource.typeフィールド。

あなたはあなたのクエリのコードを変更した場合:

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

それが正しいエントリを返し、より速く実行する必要があります。

関連する問題