登录
首页 >  Golang >  Go问答

在 Kubernetes / Google Container Engine (GKE) 上使用 Stackdriver API 进行日志记录

来源:Golang技术栈

时间:2023-05-03 13:54:06 393浏览 收藏

哈喽!今天心血来潮给大家带来了《在 Kubernetes / Google Container Engine (GKE) 上使用 Stackdriver API 进行日志记录》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到golang,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我有一个利用 Google Cloud Logging API 的 go 应用程序。

相关代码与其文档中的此示例相同:[https ://github.com/GoogleCloudPlatform/golang- samples/blob/master/logging/logging_quickstart/main.go](https://github.com/GoogleCloudPlatform/golang- samples/blob/master/logging/logging_quickstart/main.go)

在检查了它是否可以与 minikube 一起使用(我的有效负载出现在Global我的日志查看器的类别中)之后,我在 Google Container Engine (GKE) 上部署了该应用程序。

在那里部署后,我再也看不到应用程序通过日志记录 API 发送的日志。写入 std 的日志出现在GKE container类别中,但没有我使用 API 发送的条目的痕迹。

我的集群启用了 Stackdriver logging API/只写,默认服务帐户是 Editor(甚至尝试使用 Owner),我还尝试使用GOOGLE_APPLICATION_CREDENTIALS具有日志写入器甚至所有者访问权限的专用服务帐户(使用 env),我可以看到从客户端库报告日志并且没有错误。

可能是什么原因或我可以从哪里开始调试此类问题?

谢谢,

正确答案

结果证明日志在那里,但不在我期望的地方。

使用 gcloud CLI 我可以看到这些日志获得了资源类型gce_instance,因此出现在GCE VM Instance类别中

要弄清楚这一点:

  $ gcloud beta logging logs list
  projects//logs/
  ...

然后

$ gcloud beta logging read projects//logs/
---
insertId: ...
jsonPayload:
   ...
logName: ...
receiveTimestamp: ...
resource:
  labels:
    instance_id: ...
    project_id: ...
    zone: ...
  type: gce_instance
timestamp: ...

注意typegce_instance

终于介绍完啦!小伙伴们,这篇关于《在 Kubernetes / Google Container Engine (GKE) 上使用 Stackdriver API 进行日志记录》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表