使用 stackdriver CLI 查找时间戳之间的日志

Aru*_*n A 7 google-cloud-platform gcloud stackdriver

我需要使用 stackdriver CLI 查找两个时间戳之间的日志。我使用了以下命令。

gcloud beta logging read "timestamp>=\"2017-02-19T00:00:00Z\" AND timestamp<\"2017-03-14T00:00:00Z\"" 
Run Code Online (Sandbox Code Playgroud)

但它给了我错误:

文件名、目录名或卷标语法不正确。

这是我的 gcloud 版本详细信息

gcloud --version

EFr*_*eak 7

上面的答案似乎不再有效。这是新命令。

gcloud logging read 'receiveTimestamp>="2019-08-08T21:00:00Z" AND receiveTimestamp<="2019-08-08T22:00:00Z"'
Run Code Online (Sandbox Code Playgroud)

其实这个更简单。转义字符已与双“双引号”一起删除。:)


Mar*_*oes 6

我是一名使用 Stackdriver 日志记录的产品经理。我们已经测试了该命令,它似乎工作正常。问题可能与 Windows 命令外壳有关?一种猜测是,也许“>”和“<”前面需要“/”?将您的查询复制并粘贴到 Cloud Shell 中可以正常工作。

向推荐这个的 Google 工程师致敬:我在 Windows 上使用 gcloud --filter 命令经常遇到这个问题。以下工作:

gcloud beta logging read "timestamp^>=""2017-02-19T00:00:00Z"" AND ""timestamp^<2017-03-14T00:00:00Z"""
Run Code Online (Sandbox Code Playgroud)

注意使用双 "" 和 ^ 转义字符。

您可以将 --verbosity debug 添加到命令行,它将向您显示 gcloud 如何准确理解参数。


joh*_*ich 5

您可以简单地使用以下命令来根据时间戳和其他过滤条件获取日志 -

gcloud logging read 
"resource.type=cloud_run_revision
 resource.labels.service_name=new_service
 timestamp>=\"2021-08-30T00:00:01.086988Z\" AND timestamp<=\"2021-08-30T23:59:59.086988Z\""
 --format json > logs.json
Run Code Online (Sandbox Code Playgroud)

已于2021 年 9 月 3 日进行测试和验证