35 lines
1.1 KiB
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)
|
|
}
|