我们有一个Google Coud Platform项目,在该项目中我们使用集群来部署应用程序,我们在本月的账单中注意到Stackdriver Logging增加太多,因此我们开始创建排除项。
我们从resource.type="container"
没有问题的情况下排除了日志,
但是我们无法从 resource.type="k8s_cluster"
过滤以创建所需的排除项:
resource.type="k8s_cluster"
protoPayload.serviceName="k8s.io"
protoPayload.resourceName="app.k8s.io/v1beta1/namespaces/default/applications/prometheus-1"
奇怪的是,除非我们进行过滤,否则Stackdriver Monitoring不会从那里检测到任何数据(提取的0B),也不会从我们的gcp-project(https://console.cloud.google.com/logs/usage?project=xxxx)中检测到任何数据。使用日志查看器,那么我们可以看到日志。
Grafana能够使用Stackdriver Datasource检测数据,您可以在此处查看
过滤器resource.type="k8s_cluster"
包含始终启用的系统事件的审核日志,因此,不会将它们排除在Stackdriver Logging中,而resource.type="container"
仅包含容器stdout和stderr日志记录。
此外,您可以通过在Stackdriver过滤器中添加'@type'条件来确定哪些日志属于Audit Logs流:
resource.type="k8s_cluster"
protoPayload.serviceName="k8s.io"
protoPayload.resourceName="app.k8s.io/v1beta1/namespaces/default/applications/prometheus-1"
protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
最后,Grafana能够显示这些基于日志的指标,因为它们是通过数据源而不是通过Stackdriver导出到其中的。