Google Cloud Logging:使用 V2 搜索 v1 条目 API?

Google Cloud Logging: Search v1 Entries with V2 API?

我目前正在通过 google-fluentd 将日志写入 Cloud logging,这很棒。现在我想过滤和检索这些条目。 google-fluentd 代理使用 v1 API.

写入 v1 格式条目

据我所知,v1 API 没有检索条目的方法(v1beta3.projects.logs.entries 仅公开了一个 'write' 方法。这是真的吗?

v2 API 公开了条目列表方法 (v2beta1.entries.list),但是它似乎无法 return v1 条目。

我不敢相信不可能以某种方式检索 v1 条目(毕竟 Web 控制台可以做到)。有人可以帮我解决这个问题吗?

(我在 Cloud Logging 的 Google 工作)

v1 和 v2 API 存储和检索相同的基础数据,因此您可以使用 v2 API 回读使用 v1 API 编写的条目。 Cloud Logging 将在 LogEntry 表示之间自动转换。

您可能无法使用 v2 API 读取条目,因为某些 LogEntry 字段的名称不同,并且 entries.list 请求中的 filter 字段需要 v2 -style 字段名称。

例如,要从项目 ID "myproject" 中的 "syslog" 日志流中读回最新条目,您可以发出这样的 API 请求:

POST https://logging.googleapis.com/v2beta1/entries:list
{
  "filter": "logName=projects/myproject/logs/syslog",
  "orderBy": "timestamp desc",
  "pageSize": 1,
  "projectIds": ["myproject"]
}

Cloud SDK 中的 gcloud beta logging read 命令对于试验请求和查看返回条目的结构也很有用。您可以传递 --log-http 标志让它向您显示它发出的 HTTP 请求,并传递 --format=json 以获取 JSON 而不是 YAML 中的输出。