2

我是 Google PubSub 的新手。我正在使用 GoLang 作为客户端库。

如何查看 google-cloud-go 库记录的 opencensus 指标?

我已经成功向 Google PubSub 发布了一条消息。现在我想查看这个指标,但我在 Google Stackdriver 中找不到这些指标。

PublishLatency = stats.Float64(statsPrefix+"publish_roundtrip_latency", "The latency in milliseconds per publish batch", stats.UnitMilliseconds)

https://github.com/googleapis/google-cloud-go/blob/25803d86c6f5d3a315388d369bf6ddecfadfbfb5/pubsub/trace.go#L59

4

1 回答 1

1

这很奇怪;我很惊讶地看到这些(机器生成的)API 散布着 OpenCensus(Stats)集成。

没有尝试过,但我熟悉 OpenCensus。

OpenCensus 的好处之一是它松散地耦合了消费指标的生成。因此,虽然代码定义了指标(和视图),但我希望(!?)API 让您选择要使用的导出器并配置它们。

在您的代码中,您需要导入 Stackdriver(以及您希望使用的任何其他导出器),然后按照以下说明进行操作:

https://opencensus.io/exporters/supported-exporters/go/stackdriver/#creating-the-exporter

注意我鼓励您也查看 OpenCensus 代理,因为这会进一步解耦您的代码;您在代码中引用通用 Opencensus 代理并配置代理以将例如指标路由到例如 Stackdriver。

对于 Stackdriver,您需要使用 GCP 项目 ID 配置导出器,并且该项目需要启用(并配置)Stackdriver Monitor。我已经有几个月没有使用 Stackdriver 了,但这过去也需要手动操作。最简单的检查方法是访问:

https://console.cloud.google.com/monitoring/?project=[[YOUR-PROJECT]]

如果我正确理解了意图(!),我希望 API 调用将在您引用的代码中定义的视图中的指标上记录统计信息。

一旦您确信指标正在发送到 Stackdriver,确认这一点的最简单方法是使用 Stackdriver 的指标资源管理器查询指标:

https://console.cloud.google.com/monitoring/metrics-explorer?project=[[YOUR-PROJECT]]

您可能希望使用Prometheus Exporter来测试这种方法,因为它更简单。配置 Prometheus 导出器后,当您运行代码时,它将创建一个 HTTP 服务器,您可以 curl 生成的指标:

http://localhost:8888/metrics

注意Opencensus 正在被(!?)弃用,取而代之的是一种名为OpenTelemetry的替代解决方案。

于 2020-06-02T20:56:07.250 回答