Skip to main content

config.go

config.go - Overview

  1. Overview Defines the configuration structure and related functions for the SigNoz application. It handles loading, validation, and backward compatibility of configurations from various sources.

  2. Detailed Documentation

Type: Config

  • Purpose: Defines the overall configuration structure for the SigNoz application, encompassing configurations for various sub-components.
  • Fields:
    • Version (version.Config): Configuration related to version information.
    • Instrumentation (instrumentation.Config): Configuration for instrumentation (e.g., metrics, tracing).
    • Web (web.Config): Configuration for the web interface.
    • Cache (cache.Config): Configuration for caching mechanisms.
    • SQLStore (sqlstore.Config): Configuration for the SQL database.
    • SQLMigration (sqlmigration.Config): Configuration for SQL database migrations.
    • SQLMigrator (sqlmigrator.Config): Configuration for the SQL migrator tool.
    • APIServer (apiserver.Config): Configuration for the API server.
    • TelemetryStore (telemetrystore.Config): Configuration for the telemetry data store (e.g., ClickHouse).
    • Prometheus (prometheus.Config): Configuration for Prometheus integration.
    • Alertmanager (alertmanager.Config): Configuration for Alertmanager integration.

Type: DeprecatedFlags

  • Purpose: Defines a structure for deprecated flags, used for backward compatibility.
  • Fields:
    • MaxIdleConns (int): Maximum number of idle connections.
    • MaxOpenConns (int): Maximum number of open connections.
    • DialTimeout (time.Duration): Dial timeout duration.
    • Config (string): Configuration file path.

Function: NewConfig

  • Purpose: Creates a new Config instance by loading configurations from different factories and resolving dependencies.
  • Parameters:
    • ctx (context.Context): The context for managing the lifecycle of the configuration loading.
    • resolverConfig (config.ResolverConfig): Configuration for resolving configuration values.
    • deprecatedFlags (DeprecatedFlags): Deprecated flags for backward compatibility.
  • Returns:
    • Config: The loaded configuration.
    • error: An error if configuration loading or validation fails.

Function: validateConfig

  • Purpose: Validates the configuration of each sub-component within the Config struct.
  • Parameters:
    • config (Config): The configuration to validate.
  • Returns:
    • error: An error if any sub-component's configuration is invalid.

Function: mergeAndEnsureBackwardCompatibility

  • Purpose: Merges deprecated configurations from environment variables and flags into the main configuration, ensuring backward compatibility.
  • Parameters:
    • config (*Config): A pointer to the Config struct to modify.
    • deprecatedFlags (DeprecatedFlags): The deprecated flags.
  • Returns: None
  1. Code Examples None

  2. Clarity and Accuracy The documentation is derived directly from the code.

  3. Markdown & MDX Perfection The markdown is properly formatted and validated.

  4. Edge Cases To Avoid Breaking MDX All potential MDX issues have been addressed.

  5. Getting Started Relevance Include in Getting Started: NO