opentelemetry-collector/extension/memorylimiterextension/factory.go

35 lines
1.1 KiB
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package memorylimiterextension // import "go.opentelemetry.io/collector/extension/memorylimiterextension"
//go:generate mdatagen metadata.yaml
import (
"context"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/extension"
"go.opentelemetry.io/collector/extension/memorylimiterextension/internal/metadata"
"go.opentelemetry.io/collector/internal/memorylimiter"
)
// NewFactory returns a new factory for the Memory Limiter extension.
func NewFactory() extension.Factory {
return extension.NewFactory(
metadata.Type,
createDefaultConfig,
create,
metadata.ExtensionStability)
}
// CreateDefaultConfig creates the default configuration for extension. Notice
// that the default configuration is expected to fail for this extension.
func createDefaultConfig() component.Config {
return memorylimiter.NewDefaultConfig()
}
func create(_ context.Context, set extension.Settings, cfg component.Config) (extension.Extension, error) {
return newMemoryLimiter(cfg.(*Config), set.Logger)
}