go - 自定义 OpenCensus 指标未出现在 Stackdriver 上

标签 go stackdriver google-cloud-stackdriver opencensus

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

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

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 中。

我错过了什么?

最佳答案

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

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

关于go - 自定义 OpenCensus 指标未出现在 Stackdriver 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56937653/

相关文章:

Golang JSON 数组

mongodb - 如何使用 mgo 编写查询 $centerSphere

go - 如何在 Go 中以惯用的方式将数据库访问权限转换为函数

go - 在Linux中通过USB连接到USBTMC设备

google-cloud-platform - 是否可以通过 API 关闭 stackdriver 创建的事件?

elasticsearch - 如何安装stackdriver elasticsearch插件来监视在GKE上的k8s v1.11中运行的ES实例?

kubernetes - 使用部署中的自定义指标进行GKE自动扩展

monitoring - 问题 : empty graphics in GKE cluster node detail (No data for this time interval). 我该如何解决?

firebase - 我在哪里可以在 Firebase 控制台中找到 Stackdriver?