2

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

从我收集到的 v1 API 没有检索条目的方法( v1beta3.projects.logs.entries 只公开了一个“写”方法。这是真的吗?

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

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

4

1 回答 1

0

(我为 Google Cloud Logging 工作)

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

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

例如,要从项目 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 格式获取输出。

于 2016-03-20T01:10:46.707 回答