in collector/exporter/googlemanagedprometheusexporter/config.go [42:67]
func (c *GMPConfig) toCollectorConfig() collector.Config {
// start with whatever the default collector config is.
cfg := collector.DefaultConfig()
cfg.MetricConfig.Prefix = c.MetricConfig.Prefix
if c.MetricConfig.Prefix == "" {
cfg.MetricConfig.Prefix = "prometheus.googleapis.com"
}
cfg.MetricConfig.SkipCreateMetricDescriptor = true
cfg.MetricConfig.InstrumentationLibraryLabels = false
cfg.MetricConfig.ServiceResourceLabels = false
// Update metric naming to match GMP conventions
cfg.MetricConfig.GetMetricName = func(baseName string, metric pmetric.Metric) (string, error) {
compliantName := prometheus.BuildCompliantName(metric, "", c.MetricConfig.Config.AddMetricSuffixes)
return googlemanagedprometheus.GetMetricName(baseName, compliantName, metric)
}
// Map to the prometheus_target monitored resource
cfg.MetricConfig.MapMonitoredResource = c.MetricConfig.Config.MapToPrometheusTarget
cfg.MetricConfig.ExtraMetrics = c.MetricConfig.Config.ExtraMetrics
cfg.MetricConfig.EnableSumOfSquaredDeviation = true
// map the GMP config's fields to the collector config
cfg.ProjectID = c.ProjectID
cfg.UserAgent = c.UserAgent
cfg.MetricConfig.ClientConfig = c.MetricConfig.ClientConfig
cfg.MetricConfig.ResourceFilters = c.MetricConfig.ResourceFilters
return cfg
}