有没有办法监控pod状态并使用Stackdriver重新启动在GKE集群中运行的pod的数量?
虽然我可以看到Stackdriver中所有pod的CPU,内存和磁盘使用情况指标,但似乎没有办法获得有关由于崩溃而重新启动副本集中的pod或pod的崩溃的指标.
我正在使用Kubernetes副本集来管理pod,因此它们会在重新生成时重新生成并在崩溃时使用新名称创建.据我所知,Stackdriver中的指标由pod-name(在pod的生命周期中是唯一的)显示,这听起来并不合理.
警告pod故障听起来像是一件很自然的事情,听起来很难相信目前还不支持.我从Stackdriver for Google Container Engine获得的监控和警报功能似乎相当无用,因为它们都绑定到了生命周期非常短的pod.
因此,如果这不起作用,那么有关于如何监控持续崩溃的pod的已知变通方法或最佳实践吗?
monitoring kubernetes google-kubernetes-engine stackdriver google-cloud-stackdriver
我将 GKE 集群从 1.13 更新到 1.15.9-gke.12。在此过程中,我从传统日志记录切换到 Stackdriver Kubernetes Engine Monitoring。现在我stackdriver-metadata-agent-cluster-level遇到了pod 不断重启的问题,因为它获取OOMKilled.
不过内存好像还好。

日志看起来也很好(与新创建的集群的日志相同):
I0305 08:32:33.436613 1 log_spam.go:42] Command line arguments:
I0305 08:32:33.436726 1 log_spam.go:44] argv[0]: '/k8s_metadata'
I0305 08:32:33.436753 1 log_spam.go:44] argv[1]: '-logtostderr'
I0305 08:32:33.436779 1 log_spam.go:44] argv[2]: '-v=1'
I0305 08:32:33.436818 1 log_spam.go:46] Process id 1
I0305 08:32:33.436859 1 log_spam.go:50] Current working directory /
I0305 08:32:33.436901 1 log_spam.go:52] Built on Jun 27 20:15:21 (1561666521)
at gcm-agent-dev-releaser@ikle14.prod.google.com:/google/src/files/255462966/depot/branches/gcm_k8s_metadata_release_branch/255450506.1/OVERLAY_READONLY/google3
as //cloud/monitoring/agents/k8s_metadata:k8s_metadata
with gc go1.12.5 for linux/amd64
from changelist 255462966 with …Run Code Online (Sandbox Code Playgroud) 我对如何在kubernetes中设置错误报告感到困惑,因此在Google Cloud Console/Stackdriver"错误报告"中可以看到错误?
根据文档 https://cloud.google.com/error-reporting/docs/setting-up-on-compute-engine, 我们需要启用流畅的"转发输入插件",然后从我们的应用程序发送异常数据.我认为如果我们自己设置了流畅的设置,这种方法会有效,但它已经预先安装在只运行gcr.io/google_containers/fluentd-gcp docker image的pod中的每个节点上.
我们如何在这些pod上启用前向输入并确保节点上的每个pod都可以使用http端口?我们还需要确保在向集群添加更多节点时默认使用此配置.
任何帮助将不胜感激,可能是我从错误的角度看待这一切?
在云控制台中创建了基于日志的指标后,我想创建警报,以便每次有新的匹配日志条目时,警报都会触发。
在尝试创建合适的指标时,最有可能的选项似乎是阈值或变化率,但我认为它们都不适用于 1 条日志消息 => 1 条警报的策略。
帮助表示赞赏。
我一直在深入研究 Google Cloud Run 上的 Stackdriver Trace 集成。我可以让它与代理一起工作,但有几个问题困扰着我。
我进入了 Cloud Endpoints ESP 的源代码(Cloud Run 集成处于测试阶段),看看他们是否以不同的方式解决它,但使用了相同的模式:有一个带有跟踪 (1s) 和它会定期清除。
虽然我的跟踪集成似乎在我的测试设置中工作,但我担心在生产环境中运行它时不完整和丢失的跟踪。
这是一个假设的问题还是一个真实的问题?
看起来解决这个问题的正确方法是将遥测数据写入日志,而不是使用代理进程。Stackdriver Trace 支持吗?
我是GCP AppEngine的新手,我选择Flexible环境有几个原因.但是,我很震惊地发现灵活环境的非"兼容"运行时似乎不允许我将应用程序的日志记录事件映射到云日志记录中的相应日志级别.我读得对吗? https://cloud.google.com/appengine/docs/flexible/java/writing-application-logs#writing_application_logs_1
这个页面真是无益.https://cloud.google.com/java/getting-started/logging-application-events
这是经过几个小时阅读GAE日志记录问题并尝试确定哪些应用于标准环境与灵活.我可以说,在标准环境中可以进行事件级映射.
但是,要在Cloud Platform Console中更精细地控制日志级别显示,日志记录框架必须使用java.util.logging适配器.https://cloud.google.com/appengine/docs/java/how-requests-are-handled#Java_Logging
好.这是一个模糊的参考,但我想我在其他地方看到了更清楚的东西.
无论如何,在"灵活"的环境中,这不应该更容易吗?谁不想通过记录级别轻松过滤事件?
更新:我澄清了一个问题,表明我在询问GAE灵活环境中的不兼容运行时.
java logging google-app-engine google-cloud-logging stackdriver
是否可以通过声明性模板以编程方式创建StackDriver仪表板(类似于Google Cloud Deployment如何创建和管理云资源)?
我们为每个环境(master,staging,prod)使用不同的GCP项目,并希望在每个项目中使用具有相同指标的StackDriver仪表板.
我检查了StackDriver Monitoring API文档以及Cloud Deployment支持的资源,但没有找到任何支持此用例的证据.
我最近开始在我的Kubernetes集群上使用stackdriver日志记录.该服务正在记录json有效负载.在stackdriver日志记录中,我看到正确解析了json有效负载,但所有内容都具有严重性"ERROR".这不是预期的.大多数这些日志都不是错误.它们也不包含错误字段或类似字段.有没有办法告诉stackdriver如何确定从kubernetes中的日志代理收到的日志条目的严重性?或者我是否需要以某种方式修改结构化日志输出以使stackdriver更好地理解它?
提前致谢.
logging google-cloud-platform google-kubernetes-engine stackdriver
我有一个登录Stackdriver,记录每个请求进入我的api并失败,我想写一个脚本来指望每个错误消息出现的次数.问题是,Stackdriver V2中的导出功能只允许我接收即将发生的错误消息,但我只关心已经存在于日志中的日志条目.有没有办法从Stackdriver下载完整的日志?
我有一个在Kubernetes上的docker镜像中运行Java的项目.日志由流畅的代理自动提取,最终在Stackdriver中.
但是,日志的格式是错误的:多行日志在Stackdriver中被放入单独的日志行中,并且所有日志都具有"INFO"日志级别,即使它们确实是警告或错误.
我一直在搜索有关如何配置logback以输出正确格式以使其正常工作的信息,但我在google Stackdriver或GKE文档中找不到这样的指南.
我的猜测是我应该输出某种形式的JSON,但是我在哪里可以找到关于格式的信息,甚至是如何正确设置这个管道的指南.
谢谢!
stackdriver ×10
kubernetes ×4
logging ×3
java ×2
fluentd ×1
gcloud ×1
logback ×1
monitoring ×1