1

Is there a simple hello world sample for creating and writing custom metrics in a GKE application to StackDriver?

I see there’s a couple larger demo projects that seem to use it, like:

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

But they seem to be different. The latter one has a DaemonSet for the oc-agent, whereas the first one appears to not have one. Also, there’s the beta Stackdriver Kubernetes Engine Monitoring, and I’m not sure if it would be done differently that way? It seems already set up a metrics server pod, as well as a prometheus-to-sd prod.

4

3 回答 3

2

如果您希望专门为 Stackdriver 编写自定义 OpenCensus 指标,可以使用适用于 OpenCensus 的 Stackdriver 支持的 Stats/Metrics 和 Trace 导出器。示例可以在https://opencensus.io/exporters/找到。

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

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

于 2019-08-27T12:52:01.893 回答
2

上面的AlphaPapa回答很好。

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

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

一些背景|指导:

Google收购Stackdriver 后,提供了客户端库,使开发人员能够将指标发送到 Stackdriver。这种紧密耦合方法的一个挑战是,客户还使用 Prometheus、Datadog、Azure、AWS 等作为指标,使用 Zipkin、Jaeger、Stackdriver 等进行跟踪,客户应该要求他们今天使用的系统具有灵活性,明天可能会使用.

Google 在内部使用了一个名为 Census 的系统,该系统将指标生产者(例如您的代码)与指标消费者(例如 Stackdriver)分离。该机制作为 OpenCensus 开源。OpenCensus 将指标生产者与消费者分离,并将跟踪生产者与消费者分离。这允许您编写代码度量|跟踪客户端代码一次,它允许您的 SRE 团队切换监控|跟踪系统而不受惩罚。OpenCensus代理|Collector 是这种方法的顶峰,在使用 OpenCensus 时应该是您的默认选择。

OpenCensus 可能代表了最好的方法,除了OpenCensus 和 OpenTracing 正在合并到OpenTelemetry和 - IMO - 这导致了减速带之外,它大部分都非常出色。

我推荐你:

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

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

HTH!

于 2019-08-28T00:48:25.653 回答
0

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

在这里这里你有一个指南和一些例子。

于 2019-08-27T15:48:25.623 回答