如何按 python 中的时间戳过滤 GCP stackdriver 日志
How to filter GCP stackdriver logs by timestamp from python
我正在尝试从 python 模块获取 GCP stackdriver 日志。
我可以过滤来自 request_id 和用户
的日志
但是当我试图获取两个时间段之间的日志时,它给出了我的错误。
import json
import sys
from google.cloud import logging
from google.cloud.logging import DESCENDING
from google.cloud import bigquery
#stackdriver client object
logging_client = logging.Client()
FILTER="logName:projects/cognitedata-europe-west1-1/logs/stdout AND timestamp>="+sys.argv[3]
results_iterator = logging_client.list_entries(filter_=FILTER,projects=PROJECT_IDS,order_by=DESCENDING,page_size=1000)
我使用以下模式来提供时间。
timestamp:sys.argv[3]
timestamp=sys.argv[3]
timestamp>sys.argv[3]
timestamp>=sys.argv[3]
但注意解决了我的问题。
我输入 sys.argv3 的时间为“2019-09-28T03:28:04.189Z”
我的需求是从时间戳中过滤数据
但在 GCP 堆栈驱动程序记录器中 UI 它给出了两者的结果
timestamp:"2019-09-28T03:28:04.189Z"
和
timestamp>="2019-09-28T03:28:04.189Z" AND timestamp<="2019-09-28T03:30:39.189Z"
正如 DazWilkin 在评论中提到的,您还需要在过滤器中包含双引号。
你可以这样做:
FILTER="logName:projects/cognitedata-europe-west1-1/logs/stdout AND timestamp>=" + "\"" + sys.argv[3] + "\""
如果上面的内容看起来太复杂而难以阅读,您可以使用 Python 的单引号和双引号字符串的组合,如下所示:
FILTER='logName:projects/cognitedata-europe-west1-1/logs/stdout AND timestamp>=' + '\"' + sys.argv[3] + '\"'
注意:反斜杠 (\) 用于转义双引号 (")。
我正在尝试从 python 模块获取 GCP stackdriver 日志。 我可以过滤来自 request_id 和用户
的日志但是当我试图获取两个时间段之间的日志时,它给出了我的错误。
import json
import sys
from google.cloud import logging
from google.cloud.logging import DESCENDING
from google.cloud import bigquery
#stackdriver client object
logging_client = logging.Client()
FILTER="logName:projects/cognitedata-europe-west1-1/logs/stdout AND timestamp>="+sys.argv[3]
results_iterator = logging_client.list_entries(filter_=FILTER,projects=PROJECT_IDS,order_by=DESCENDING,page_size=1000)
我使用以下模式来提供时间。
timestamp:sys.argv[3]
timestamp=sys.argv[3]
timestamp>sys.argv[3]
timestamp>=sys.argv[3]
但注意解决了我的问题。
我输入 sys.argv3 的时间为“2019-09-28T03:28:04.189Z”
我的需求是从时间戳中过滤数据
但在 GCP 堆栈驱动程序记录器中 UI 它给出了两者的结果
timestamp:"2019-09-28T03:28:04.189Z"
和
timestamp>="2019-09-28T03:28:04.189Z" AND timestamp<="2019-09-28T03:30:39.189Z"
正如 DazWilkin 在评论中提到的,您还需要在过滤器中包含双引号。 你可以这样做:
FILTER="logName:projects/cognitedata-europe-west1-1/logs/stdout AND timestamp>=" + "\"" + sys.argv[3] + "\""
如果上面的内容看起来太复杂而难以阅读,您可以使用 Python 的单引号和双引号字符串的组合,如下所示:
FILTER='logName:projects/cognitedata-europe-west1-1/logs/stdout AND timestamp>=' + '\"' + sys.argv[3] + '\"'
注意:反斜杠 (\) 用于转义双引号 (")。