首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义OpenCensus指标未出现在堆栈驱动程序中

自定义OpenCensus指标未出现在堆栈驱动程序中
EN

Stack Overflow用户
提问于 2019-07-08 22:59:12
回答 1查看 657关注 0票数 2

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

我遵循了guide,所以视图和导出器都设置好了:

代码语言:javascript
复制
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
}

然后我使用以下命令发送我的指标:

代码语言:javascript
复制
func RequestDuration(d time.Duration) {
    stats.Record(context.Background(), apiRequestDurationMs.M(int64(d)))
}

但是我发送的自定义指标没有出现在Stackdriver的指标资源管理器中。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-09 15:33:04

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

代码语言:javascript
复制
view.RegisterExporter(exporter)
view.SetReportingPeriod(60 * time.Second)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56937653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档