in exporter/collector/googlemanagedprometheus/naming.go [27:57]
func GetMetricName(baseName, compliantName string, metric pmetric.Metric) (string, error) {
// Second, ad the GMP-specific suffix
switch metric.Type() {
case pmetric.MetricTypeSum:
if !metric.Sum().IsMonotonic() {
// Non-monotonic sums are converted to GCM gauges
return compliantName + "/gauge", nil
}
return getUnknownMetricName(metric, metric.Sum().DataPoints(), "/counter", "counter", compliantName), nil
case pmetric.MetricTypeGauge:
return getUnknownMetricName(metric, metric.Gauge().DataPoints(), "/gauge", "", compliantName), nil
case pmetric.MetricTypeSummary:
// summaries are sent as the following series:
// * Sum: prometheus.googleapis.com/<baseName>_sum/summary:counter
// * Count: prometheus.googleapis.com/<baseName>_count/summary
// * Quantiles: prometheus.googleapis.com/<baseName>/summary
if strings.HasSuffix(baseName, "_sum") {
return compliantName + "_sum/summary:counter", nil
}
if strings.HasSuffix(baseName, "_count") {
return compliantName + "_count/summary", nil
}
return compliantName + "/summary", nil
case pmetric.MetricTypeHistogram:
fallthrough
case pmetric.MetricTypeExponentialHistogram:
return compliantName + "/histogram", nil
default:
return "", fmt.Errorf("unsupported metric datatype: %v", metric.Type())
}
}