我目前正在通过google-fluentd将日志写入云记录,这很棒。现在我想过滤和检索这些条目。 google-fluentd代理使用v1 API编写v1格式条目。
从我收集的内容来看,v1 API没有检索条目的方法(v1beta3.projects.logs.entries只暴露了'write'方法。这是真的吗?
v2 API公开了条目的列表方法(v2beta1.entries.list),但它似乎无法返回v1条目。
我难以置信,不可能以某种方式检索v1条目(毕竟网络控制台会这样做)。有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
(我在Google上进行云记录工作)
v1和v2 API存储&检索相同的基础数据,因此您可以使用使用v1 API编写的v2 API读回条目。 Cloud Logging将自动在LogEntry表示之间进行转换。
您可能无法使用v2 API读取条目,因为某些LogEntry字段的命名方式不同,filter
请求中的entries.list
字段需要v2样式的字段名称。< / p>
例如,从&#34; syslog&#34;回读最近的条目;项目ID中的日志流&#34; myproject&#34;你可以发出这样的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获取输出。