用于在GKE上将自定义OpenCensus指标写入StackDriver的简单hello world演示?

时间:2019-08-26 23:46:41

标签: google-cloud-platform google-kubernetes-engine stackdriver google-cloud-stackdriver opencensus

是否有一个简单的hello world示例,用于在GKE应用程序中创建自定义指标并将其写入StackDriver?

我看到有一些较大的演示项目似乎正在使用它,例如:

https://github.com/GoogleCloudPlatform/microservices-demo https://github.com/rghetia/microservices-demo/tree/oc_agent

但是它们似乎有所不同。后者有一个oc-agent的DaemonSet,而第一个似乎没有。此外,还有beta版Stackdriver Kubernetes引擎监控程序,我不确定是否可以通过其他方式完成?似乎已经设置了指标服务器容器和prometheus-to-sd产品。

3 个答案:

答案 0 :(得分:2)

如果您要专门将自定义OpenCensus指标写入Stackdriver,则支持OpenCensus的Stackdriver支持的Stats / Metrics和Trace导出器。可以在https://opencensus.io/exporters/上找到示例。

有一些示例代码用于使用Stackdriver实现的统计/指标,这些代码专门用于Node.js,Go和JAVA。

这是GCP文档中的示例: https://cloud.google.com/monitoring/custom-metrics/open-census

答案 1 :(得分:1)

上面的AlphaPapa答案很好。

我也写了几个简单的例子:

https://medium.com/google-cloud/opencensus-and-firestore-native-34bc1e3a962f

一些背景|指导:

在Google acquired Stackdriver之后,提供了客户端库,使开发人员可以将指标发送到Stackdriver。这种紧密耦合的方法面临的挑战是,客户还使用Prometheus,Datadog,Azure,AWS等进行度量,而Zipkin,Jaeger,Stackdriver等用于跟踪,客户应该在他们今天使用的和将来使用的系统中要求灵活性。

Google内部使用了一个名为Census的系统,该系统可将指标生成器(例如您的代码)与指标使用者(例如Stackdriver)分离。该机制作为OpenCensus开源。 OpenCensus使指标生产者与消费者追踪生产者与消费者脱钩。这使您可以编写一次代码度量|跟踪客户端代码,并允许您的SRE团队不受干扰地切换监视系统。 OpenCensus Agent | Collector是这种方法的顶峰,并且应该是使用OpenCensus时的默认选择。

OpenCensus可能代表了最好的方法,并且它非常出色。 OpenCensus和OpenTracing合并到OpenTelemetry中,并且-IMO-这引起了减速。

我建议您:

  • 考虑OpenCensus,但要知道它已经进入了重大变化的时期。
  • 更喜欢使用OpenCensus Agent | Collector来分离客户端代码和服务
  • 配置代理以使用例如Stackdriver和其他metric | trace服务
  • 在具有相应IAM角色的代理上使用
  • 使用应用程序默认凭据:
    • 将指标写入Stackdriver
    • 将跟踪信息写入Stackdriver Trace

在我的示例中,我使用了Stackdriver Exporter。您应该改为使用OpenCensus Agent Exporter。唯一需要注意的是,并非所有OpenCensus语言SDK都已扩展为包括OpenCensus Agent。该代理在例如高朗我的示例展示了如何使用通过Kubernetes Secret映射的Google服务帐户部署到Kubernetes。您可以将代理添加为辅助工具(首选),然后重新调整Kubernetes配置以向代理提供服务帐户密码。

HTH!

答案 2 :(得分:0)

您可以使用Prometheus将自定义指标发送到Stackdriver。您拥有Go,Java,Python和Ruby,以及许多非官方的第三方客户端库。

这里有一个guide和一些示例herehere