【问题标题】:Custom OpenCensus metrics not appearing on StackdriverStackdriver 上未显示自定义 OpenCensus 指标
【发布时间】:2019-11-18 03:07:18
【问题描述】:

我正在尝试使用 OpenCensus 从我的 Go 应用程序向 Stackdriver 发送自定义指标。

我已关注guide,因此已设置视图和导出器:

import (
    "context"
    "contrib.go.opencensus.io/exporter/stackdriver"
    "github.com/pkg/errors"
    "go.opencensus.io/stats"
    "go.opencensus.io/stats/view"
    "time"
)

var (
    apiRequestDurationMs = stats.Int64("api_request_duration", "API request duration in milliseconds", stats.UnitMilliseconds)
)

func NewMetricsExporter() (*stackdriver.Exporter, error) {
    v := &view.View{
        Name:        "api_request_durations",
        Measure:     apiRequestDurationMs,
        Description: "The distribution of request durations",
        Aggregation: view.Distribution(0, 100, 200, 400, 1000, 2000, 4000),
    }
    if registerError := view.Register(v); registerError != nil {
        return nil, errors.Wrapf(registerError, "failed to register request duration view")
    }

    exporter, exporterError := stackdriver.NewExporter(stackdriver.Options{ProjectID: "project-ID"})
    if exporterError != nil {
        return nil, errors.Wrapf(exporterError, "failed to create stackdriver exporter")
    }

    if startError := exporter.StartMetricsExporter(); startError != nil {
        return nil, errors.Wrapf(startError, "failed to create stackdriver exporter")

    }
    return exporter, nil
}

然后我使用以下方式发送我的指标:

func RequestDuration(d time.Duration) {
    stats.Record(context.Background(), apiRequestDurationMs.M(int64(d)))
}

但我发送的自定义指标没有出现在 Stackdriver 的 Metrics Explorer 中。

我错过了什么?

【问题讨论】:

  • 您是否在 Google Cloud Platform 项目上启用了结算功能?
  • APIs Explorer 是测试任何 Google REST API 的出色工具。请参阅此处以枚举 Stackdriver Monitoring 时间序列:developers.google.com/apis-explorer/#search/…
  • OpenCensus 页面还建议使用 view.SetReportingPeriod(60 * time.Second) 使用 Stackdriver (opencensus.io/exporters/supported-exporters/go/stackdriver/…)。你应该在退出之前sd.Flush(),但我认为这不是你的问题。
  • 谢谢,@DazWilkin。是的,计费已启用。我会查看开放的人口普查文档

标签: go stackdriver google-cloud-stackdriver opencensus


【解决方案1】:

问题出在用户指南中。 实际上,您必须注册出口商并设置报告间隔:

view.RegisterExporter(exporter)
view.SetReportingPeriod(60 * time.Second)

【讨论】:

    猜你喜欢
    • 2018-07-09
    • 2019-12-31
    • 2017-12-02
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2020-01-25
    相关资源
    最近更新 更多