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 中的输出。
我目前正在通过 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 中的输出。