func createMetricsExporter()

in collector/exporter/googlemanagedprometheusexporter/factory.go [49:73]


func createMetricsExporter(
	ctx context.Context,
	params exporter.Settings,
	cfg component.Config) (exporter.Metrics, error) {
	eCfg := cfg.(*Config)
	collectorConfig := eCfg.GMPConfig.toCollectorConfig()
	collectorConfig.MetricConfig.CumulativeNormalization = false
	mExp, err := collector.NewGoogleCloudMetricsExporter(ctx, collectorConfig, params.TelemetrySettings.Logger, params.TelemetrySettings.MeterProvider, params.BuildInfo.Version, eCfg.TimeoutSettings.Timeout)
	if err != nil {
		return nil, err
	}
	return exporterhelper.NewMetrics(
		ctx,
		params,
		cfg,
		mExp.PushMetrics,
		exporterhelper.WithStart(mExp.Start),
		exporterhelper.WithShutdown(mExp.Shutdown),
		// Disable exporterhelper Timeout, since we are using a custom mechanism
		// within exporter itself
		exporterhelper.WithTimeout(exporterhelper.TimeoutConfig{Timeout: 0}),
		exporterhelper.WithQueue(eCfg.QueueSettings),
		exporterhelper.WithCapabilities(consumer.Capabilities{MutatesData: true}),
	)
}