1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package monitoring
- import (
- "errors"
- "github.com/imgproxy/imgproxy/v3/ensure"
- "github.com/imgproxy/imgproxy/v3/monitoring/cloudwatch"
- "github.com/imgproxy/imgproxy/v3/monitoring/datadog"
- "github.com/imgproxy/imgproxy/v3/monitoring/newrelic"
- "github.com/imgproxy/imgproxy/v3/monitoring/otel"
- "github.com/imgproxy/imgproxy/v3/monitoring/prometheus"
- )
- // Config holds the configuration for all monitoring services
- type Config struct {
- Prometheus prometheus.Config // Prometheus metrics configuration
- NewRelic newrelic.Config // New Relic configuration
- DataDog datadog.Config // DataDog configuration
- OpenTelemetry otel.Config // OpenTelemetry configuration
- CloudWatch cloudwatch.Config // CloudWatch configuration
- }
- // NewDefaultConfig returns a new default configuration for all monitoring services
- func NewDefaultConfig() Config {
- return Config{
- Prometheus: prometheus.NewDefaultConfig(),
- NewRelic: newrelic.NewDefaultConfig(),
- DataDog: datadog.NewDefaultConfig(),
- OpenTelemetry: otel.NewDefaultConfig(),
- CloudWatch: cloudwatch.NewDefaultConfig(),
- }
- }
- // LoadConfigFromEnv loads configuration for all monitoring services from environment variables
- func LoadConfigFromEnv(c *Config) (*Config, error) {
- c = ensure.Ensure(c, NewDefaultConfig)
- var promErr, nrErr, ddErr, otelErr, cwErr error
- _, promErr = prometheus.LoadConfigFromEnv(&c.Prometheus)
- _, nrErr = newrelic.LoadConfigFromEnv(&c.NewRelic)
- _, ddErr = datadog.LoadConfigFromEnv(&c.DataDog)
- _, otelErr = otel.LoadConfigFromEnv(&c.OpenTelemetry)
- _, cwErr = cloudwatch.LoadConfigFromEnv(&c.CloudWatch)
- err := errors.Join(promErr, nrErr, ddErr, otelErr, cwErr)
- return c, err
- }
- func (c *Config) Validate() error {
- return nil
- }
|