opencensus-go-exporter-stackdriver icon indicating copy to clipboard operation
opencensus-go-exporter-stackdriver copied to clipboard

GetMetricDisplayName option does not work

Open kaoet opened this issue 2 years ago • 1 comments

Please answer these questions before submitting a bug report.

What version of the Exporter are you using?

v0.13.4

What version of OpenCensus are you using?

v0.23.0

What version of Go are you using?

1.21

What did you do?

If possible, provide a recipe for reproducing the error.

I created a exporter with custom GetMetricDisplayName option:

exporter, err := stackdriver.NewExporter(stackdriver.Options{
	MetricPrefix: "custom.googleapis.com/myapp/",
	GetMetricDisplayName: func(view *view.View) string {
		return path.Join("My App", view.Name)
	},
})

What did you expect to see?

I want the display name of the metric displayed in Cloud Monitoring to be My App/my_metric.

What did you see instead?

The display name is still OpenCensus/my_metric.

Additional context

Add any other context about the problem here.

I found there are two places a MetricDescriptor was built.

  • https://github.com/census-ecosystem/opencensus-go-exporter-stackdriver/blob/e367a86b6a7cb739f47f73dcc2e53e14771709fa/metrics.go#L284-L296
  • https://github.com/census-ecosystem/opencensus-go-exporter-stackdriver/blob/e367a86b6a7cb739f47f73dcc2e53e14771709fa/stats.go#L309-L325

As you can see in the first place, GetMetricDisplayName was not used, and it directly constructs the display name with the default display name prefix. But in the second place, GetMetricDisplayName was used if it's not nil.

I suspect that's the reason it's not working.

kaoet avatar Mar 16 '23 09:03 kaoet

Sorry for the slow response. That does look like a bug. Feel free to open a PR with a fix, and we can get it merged.

dashpole avatar Jun 26 '23 15:06 dashpole