【问题标题】:Find logs between timestamps using stackdriver CLI使用 stackdriver CLI 查找时间戳之间的日志
【发布时间】:2017-08-06 16:03:17
【问题描述】:

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

gcloud beta logging read "timestamp>=\"2017-02-19T00:00:00Z\" AND timestamp<\"2017-03-14T00:00:00Z\"" 

但它给了我错误:

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

这是我的 gcloud 版本详情

【问题讨论】:

    标签: google-cloud-platform gcloud stackdriver


    【解决方案1】:

    我是 Stackdriver 日志记录的产品经理。我们已经测试了该命令,它似乎工作正常。问题可能与 Windows 命令外壳有关?一种猜测是“>”和“

    感谢推荐以下内容的 Google 工程师: 我在 Windows 上使用 gcloud --filter 命令经常遇到这个问题。以下作品:

    gcloud beta logging read "timestamp^>=""2017-02-19T00:00:00Z"" AND ""timestamp^<2017-03-14T00:00:00Z"""
    

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

    你可以在命令行中添加--verbosity debug,它会告诉你gcloud是如何理解参数的。

    【讨论】:

    • 正如您提到的,该命令在浏览器中的 gcloud shell 中运行良好,但在 Windows 命令 shell 中失败。
    • 在 gcloud beta logging read "logName=projects/myproject/logs /output_log AND Exception AND timestamp^>=""2017-03-22T14:01:32Z"" AND timestamp^
    • 这还能用吗? ❯ gcloud logging read 'timestamp^>="2019-08-08T21:00:00Z"' ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Field not found: 'timestamp^'.
    【解决方案2】:

    上面的答案似乎不再起作用了。这是新命令。

    gcloud logging read 'receiveTimestamp>="2019-08-08T21:00:00Z" AND receiveTimestamp<="2019-08-08T22:00:00Z"'
    

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

    【讨论】:

      【解决方案3】:

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

      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
      

      这是在 2021 年 9 月 3 日

      测试和验证的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-16
        • 1970-01-01
        • 1970-01-01
        • 2014-07-12
        • 1970-01-01
        相关资源
        最近更新 更多