【问题标题】:Simple hello world demo for writing custom OpenCensus metrics to StackDriver on GKE?用于将自定义 OpenCensus 指标写入 GKE 上的 StackDriver 的简单 hello world 演示?
【发布时间】:2019-12-31 03:05:33
【问题描述】:

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

我看到有几个更大的演示项目似乎在使用它,例如:

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

但它们似乎不同。后者有一个用于 oc-agent 的 DaemonSet,而第一个似乎没有。此外,还有测试版 Stackdriver Kubernetes Engine Monitoring,我不确定这样做是否会有所不同?似乎已经设置了一个指标服务器 pod,以及一个 prometheus-to-sd prod。

【问题讨论】:

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


    【解决方案1】:

    如果您希望专门为 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

    【讨论】:

    • 而且 Stackdriver 甚至会自动显示项目 ID、集群和节点名称,尽管我没有在 opencensus api 中明确配置它们。
    【解决方案2】:

    上面的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 和其他指标|跟踪服务
    • 在具有适当 IAM 角色的代理上使用应用程序默认凭据:
      • 将指标写入 Stackdriver
      • 将跟踪记录写入 Stackdriver Trace

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

    HTH!

    【讨论】:

    • 感谢历史!了解背景非常有帮助。是的,总的来说,谷歌的遥测收集方法似乎还没有成熟,这反映在不断变化的无数方法中。也许几年后,我们会看到一些简单的“快乐路径”,这些路径在所有各种示例和教程中都是一致的。
    • 我采用了直接的 Stackdriver Exporter 方法。我的整个服务都在 GCP 中,我没有计划使用另一个监控系统,所以我觉得这种方法是最轻量的。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-11-18
      • 1970-01-01
      • 2019-07-02
      • 2017-08-04
      • 2013-10-14
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多