adapters

package
v0.2.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2025 License: Apache-2.0 Imports: 37 Imported by: 0

Documentation

Index

Constants

View Source
const (
	METRIC_RESOLUTION_SECONDS         = 30
	DEFAULT_SHARED_BUFFERS_PERCENTAGE = 20.0
	DEFAULT_PG_STAT_MONITOR_ENABLE    = false
)

Variables

This section is empty.

Functions

func AivenCollectors added in v0.2.3

func AivenCollectors(adapter *AivenPostgreSQLAdapter) []agent.MetricCollector

AivenCollectors returns the metrics collectors for Aiven PostgreSQL

func AuroraCollectors

func AuroraCollectors(adapter *AuroraRDSAdapter) []agent.MetricCollector

func DefaultCollectors

func DefaultCollectors(pgAdapter *DefaultPostgreSQLAdapter) []agent.MetricCollector

func DockerCollectors

func DockerCollectors(adapter *DockerContainerAdapter) []agent.MetricCollector

DockerCollectors returns the list of collectors for Docker, replacing system metrics with Docker-specific ones while keeping database-specific collectors

Types

type AivenPostgreSQLAdapter added in v0.2.3

type AivenPostgreSQLAdapter struct {
	DefaultPostgreSQLAdapter

	GuardrailConfig GuardrailSettings
	// contains filtered or unexported fields
}

AivenPostgreSQLAdapter represents an adapter for connecting to Aiven PostgreSQL services

func CreateAivenPostgreSQLAdapter added in v0.2.3

func CreateAivenPostgreSQLAdapter() (*AivenPostgreSQLAdapter, error)

CreateAivenPostgreSQLAdapter creates a new Aiven PostgreSQL adapter

func (*AivenPostgreSQLAdapter) ApplyConfig added in v0.2.3

func (adapter *AivenPostgreSQLAdapter) ApplyConfig(proposedConfig *agent.ProposedConfigResponse) error

ApplyConfig applies configuration changes to the Aiven PostgreSQL service

func (*AivenPostgreSQLAdapter) GetActiveConfig added in v0.2.3

func (adapter *AivenPostgreSQLAdapter) GetActiveConfig() (agent.ConfigArraySchema, error)

GetActiveConfig returns the active configuration for the Aiven API as well as through PostgreSQL

func (*AivenPostgreSQLAdapter) GetAivenClient added in v0.2.3

func (adapter *AivenPostgreSQLAdapter) GetAivenClient() *aiven.Client

func (*AivenPostgreSQLAdapter) GetAivenConfig added in v0.2.3

func (adapter *AivenPostgreSQLAdapter) GetAivenConfig() *adeptersinterfaces.AivenConfig

func (*AivenPostgreSQLAdapter) GetAivenState added in v0.2.3

func (adapter *AivenPostgreSQLAdapter) GetAivenState() *adeptersinterfaces.AivenState

func (*AivenPostgreSQLAdapter) GetSystemInfo added in v0.2.3

func (adapter *AivenPostgreSQLAdapter) GetSystemInfo() ([]utils.FlatValue, error)

GetSystemInfo returns system information for the Aiven PostgreSQL service

func (*AivenPostgreSQLAdapter) Guardrails added in v0.2.3

func (adapter *AivenPostgreSQLAdapter) Guardrails() *agent.GuardrailSignal

Guardrails implements resource usage guardrails Aiven only provides 30 second resolution data for hardware info, which we need for guardrails.

func (*AivenPostgreSQLAdapter) PGDriver added in v0.2.3

func (adapter *AivenPostgreSQLAdapter) PGDriver() *pgPool.Pool

type AuroraRDSAdapter

type AuroraRDSAdapter struct {
	DefaultPostgreSQLAdapter
	// contains filtered or unexported fields
}

func CreateAuroraRDSAdapter

func CreateAuroraRDSAdapter() (*AuroraRDSAdapter, error)

func (*AuroraRDSAdapter) APIClient

func (adapter *AuroraRDSAdapter) APIClient() *retryablehttp.Client

func (*AuroraRDSAdapter) ApplyConfig

func (adapter *AuroraRDSAdapter) ApplyConfig(proposedConfig *agent.ProposedConfigResponse) error

func (*AuroraRDSAdapter) GetAuroraRDSConfig

func (adapter *AuroraRDSAdapter) GetAuroraRDSConfig() *adapters.AuroraRDSConfig

func (*AuroraRDSAdapter) GetAuroraState

func (adapter *AuroraRDSAdapter) GetAuroraState() *adapters.AuroraRDSState

func (*AuroraRDSAdapter) GetCWClient

func (adapter *AuroraRDSAdapter) GetCWClient() *cloudwatch.Client

func (*AuroraRDSAdapter) GetEC2Client

func (adapter *AuroraRDSAdapter) GetEC2Client() *ec2.Client

func (*AuroraRDSAdapter) GetEC2InstanceTypeInfo

func (adapter *AuroraRDSAdapter) GetEC2InstanceTypeInfo() (*ec2types.InstanceTypeInfo, error)

func (*AuroraRDSAdapter) GetPIClient

func (adapter *AuroraRDSAdapter) GetPIClient() *pi.Client

func (*AuroraRDSAdapter) GetRDSClient

func (adapter *AuroraRDSAdapter) GetRDSClient() *rds.Client

func (*AuroraRDSAdapter) GetSystemInfo

func (adapter *AuroraRDSAdapter) GetSystemInfo() ([]utils.FlatValue, error)

func (*AuroraRDSAdapter) Guardrails

func (adapter *AuroraRDSAdapter) Guardrails() *agent.GuardrailSignal

Guardrails checks memory utilization and returns Critical if thresholds are exceeded

func (*AuroraRDSAdapter) PGDriver

func (adapter *AuroraRDSAdapter) PGDriver() *pgPool.Pool

type DefaultPostgreSQLAdapter

type DefaultPostgreSQLAdapter struct {
	agent.CommonAgent

	GuardrailConfig GuardrailSettings
	// contains filtered or unexported fields
}

func CreateDefaultPostgreSQLAdapter

func CreateDefaultPostgreSQLAdapter() (*DefaultPostgreSQLAdapter, error)

func (*DefaultPostgreSQLAdapter) APIClient

func (adapter *DefaultPostgreSQLAdapter) APIClient() *retryablehttp.Client

func (*DefaultPostgreSQLAdapter) ApplyConfig

func (adapter *DefaultPostgreSQLAdapter) ApplyConfig(proposedConfig *agent.ProposedConfigResponse) error

func (*DefaultPostgreSQLAdapter) GetActiveConfig

func (adapter *DefaultPostgreSQLAdapter) GetActiveConfig() (agent.ConfigArraySchema, error)

func (*DefaultPostgreSQLAdapter) GetSystemInfo

func (adapter *DefaultPostgreSQLAdapter) GetSystemInfo() ([]utils.FlatValue, error)

func (*DefaultPostgreSQLAdapter) Guardrails

func (adapter *DefaultPostgreSQLAdapter) Guardrails() *agent.GuardrailSignal

Guardrails for default PostgreSQL adapter performs the following: 1. Checks if the total memory is set. If not fetches it from the system and sets it in cache. 2. Fetches current memory usage 3. If memory usage is greater than 90% of total memory, triggers a critical guardrail

func (*DefaultPostgreSQLAdapter) PGDriver

func (adapter *DefaultPostgreSQLAdapter) PGDriver() *pgPool.Pool

type DockerContainerAdapter

type DockerContainerAdapter struct {
	DefaultPostgreSQLAdapter
	ContainerName string
	// contains filtered or unexported fields
}

DockerContainerAdapter works with the container name and by communicating with the docker Unix socket to get stats like memory usage, number of CPUs available and memory limit

func CreateDockerContainerAdapter

func CreateDockerContainerAdapter() (*DockerContainerAdapter, error)

func (*DockerContainerAdapter) ApplyConfig

func (d *DockerContainerAdapter) ApplyConfig(proposedConfig *agent.ProposedConfigResponse) error

func (*DockerContainerAdapter) GetContainerName

func (d *DockerContainerAdapter) GetContainerName() string

func (*DockerContainerAdapter) GetDockerClient

func (d *DockerContainerAdapter) GetDockerClient() *client.Client

func (*DockerContainerAdapter) GetSystemInfo

func (d *DockerContainerAdapter) GetSystemInfo() ([]utils.FlatValue, error)

func (*DockerContainerAdapter) Guardrails

func (d *DockerContainerAdapter) Guardrails() *agent.GuardrailSignal

type GuardrailSettings added in v0.2.2

type GuardrailSettings struct {
	MemoryThreshold float64 `mapstructure:"memory_threshold" validate:"gte=1,lte=100"`
}

type InitialServiceLevelParameters added in v0.2.3

type InitialServiceLevelParameters struct {
	InitialSharedBuffersPercentage float64
	InitialPGStatMonitorEnable     bool
}

type ModifyLevel added in v0.2.3

type ModifyLevel string
const (
	ModifyServiceLevel ModifyLevel = "service_level"  // Can modify via service level config Aiven API
	ModifyUserPGConfig ModifyLevel = "user_pg_config" // Can modify via user config Aiven API, prefer over ModifyAlterDB, no restart
	ModifyAlterDB      ModifyLevel = "alter_db"       // Can modify with ALTER DATABASE <dbname> SET <param> = <value>, requires restart
	NoModify           ModifyLevel = "no_modify"      // Can not modify at all
)

type PostgreSQLConfig

type PostgreSQLConfig struct {
	ConnectionURL string `mapstructure:"connection_url" validate:"required"`
	ServiceName   string `mapstructure:"service_name"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL