in cmd/otelinmemexporter/factory.go [35:61]
func createMetricsExporter(
ctx context.Context,
settings exporter.Settings,
rawCfg component.Config,
) (exporter.Metrics, error) {
cfg := rawCfg.(*Config)
logger := settings.TelemetrySettings.Logger
// create in memory metrics store
store, err := NewStore(cfg.Aggregations, logger)
if err != nil {
return nil, fmt.Errorf("failed to create in-memory metrics store: %w", err)
}
// Start http server
newServer(store, cfg.Server.Endpoint, logger).Start()
exp := newInMemExporter(*cfg, store, logger)
return exporterhelper.NewMetrics(
ctx, settings, cfg,
exp.consumeMetrics,
exporterhelper.WithCapabilities(consumer.Capabilities{MutatesData: false}),
// Disable Timeout/RetryOnFailure and SendingQueue
exporterhelper.WithTimeout(exporterhelper.TimeoutConfig{Timeout: 0}),
exporterhelper.WithRetry(configretry.BackOffConfig{Enabled: false}),
exporterhelper.WithQueue(exporterhelper.QueueConfig{Enabled: false}),
)
}