components/otelopscol/receiver/varnishreceiver/internal/metadata/generated_config.go (107 lines of code) (raw):
// Code generated by mdatagen. DO NOT EDIT.
package metadata
import (
"go.opentelemetry.io/collector/confmap"
"go.opentelemetry.io/collector/filter"
)
// MetricConfig provides common config for a particular metric.
type MetricConfig struct {
Enabled bool `mapstructure:"enabled"`
enabledSetByUser bool
}
func (ms *MetricConfig) Unmarshal(parser *confmap.Conf) error {
if parser == nil {
return nil
}
err := parser.Unmarshal(ms)
if err != nil {
return err
}
ms.enabledSetByUser = parser.IsSet("enabled")
return nil
}
// MetricsConfig provides config for varnish metrics.
type MetricsConfig struct {
VarnishBackendConnectionCount MetricConfig `mapstructure:"varnish.backend.connection.count"`
VarnishBackendRequestCount MetricConfig `mapstructure:"varnish.backend.request.count"`
VarnishCacheOperationCount MetricConfig `mapstructure:"varnish.cache.operation.count"`
VarnishClientRequestCount MetricConfig `mapstructure:"varnish.client.request.count"`
VarnishClientRequestErrorCount MetricConfig `mapstructure:"varnish.client.request.error.count"`
VarnishObjectCount MetricConfig `mapstructure:"varnish.object.count"`
VarnishObjectExpired MetricConfig `mapstructure:"varnish.object.expired"`
VarnishObjectMoved MetricConfig `mapstructure:"varnish.object.moved"`
VarnishObjectNuked MetricConfig `mapstructure:"varnish.object.nuked"`
VarnishSessionCount MetricConfig `mapstructure:"varnish.session.count"`
VarnishThreadOperationCount MetricConfig `mapstructure:"varnish.thread.operation.count"`
}
func DefaultMetricsConfig() MetricsConfig {
return MetricsConfig{
VarnishBackendConnectionCount: MetricConfig{
Enabled: true,
},
VarnishBackendRequestCount: MetricConfig{
Enabled: true,
},
VarnishCacheOperationCount: MetricConfig{
Enabled: true,
},
VarnishClientRequestCount: MetricConfig{
Enabled: true,
},
VarnishClientRequestErrorCount: MetricConfig{
Enabled: true,
},
VarnishObjectCount: MetricConfig{
Enabled: true,
},
VarnishObjectExpired: MetricConfig{
Enabled: true,
},
VarnishObjectMoved: MetricConfig{
Enabled: true,
},
VarnishObjectNuked: MetricConfig{
Enabled: true,
},
VarnishSessionCount: MetricConfig{
Enabled: true,
},
VarnishThreadOperationCount: MetricConfig{
Enabled: true,
},
}
}
// ResourceAttributeConfig provides common config for a particular resource attribute.
type ResourceAttributeConfig struct {
Enabled bool `mapstructure:"enabled"`
// Experimental: MetricsInclude defines a list of filters for attribute values.
// If the list is not empty, only metrics with matching resource attribute values will be emitted.
MetricsInclude []filter.Config `mapstructure:"metrics_include"`
// Experimental: MetricsExclude defines a list of filters for attribute values.
// If the list is not empty, metrics with matching resource attribute values will not be emitted.
// MetricsInclude has higher priority than MetricsExclude.
MetricsExclude []filter.Config `mapstructure:"metrics_exclude"`
enabledSetByUser bool
}
func (rac *ResourceAttributeConfig) Unmarshal(parser *confmap.Conf) error {
if parser == nil {
return nil
}
err := parser.Unmarshal(rac)
if err != nil {
return err
}
rac.enabledSetByUser = parser.IsSet("enabled")
return nil
}
// ResourceAttributesConfig provides config for varnish resource attributes.
type ResourceAttributesConfig struct {
VarnishCacheName ResourceAttributeConfig `mapstructure:"varnish.cache.name"`
}
func DefaultResourceAttributesConfig() ResourceAttributesConfig {
return ResourceAttributesConfig{
VarnishCacheName: ResourceAttributeConfig{
Enabled: false,
},
}
}
// MetricsBuilderConfig is a configuration for varnish metrics builder.
type MetricsBuilderConfig struct {
Metrics MetricsConfig `mapstructure:"metrics"`
ResourceAttributes ResourceAttributesConfig `mapstructure:"resource_attributes"`
}
func DefaultMetricsBuilderConfig() MetricsBuilderConfig {
return MetricsBuilderConfig{
Metrics: DefaultMetricsConfig(),
ResourceAttributes: DefaultResourceAttributesConfig(),
}
}