Documentation
¶
Index ¶
- Constants
- func AivenCollectors(adapter *AivenPostgreSQLAdapter) []agent.MetricCollector
- func AuroraCollectors(adapter *AuroraRDSAdapter) []agent.MetricCollector
- func DefaultCollectors(pgAdapter *DefaultPostgreSQLAdapter) []agent.MetricCollector
- func DockerCollectors(adapter *DockerContainerAdapter) []agent.MetricCollector
- type AivenPostgreSQLAdapter
- func (adapter *AivenPostgreSQLAdapter) ApplyConfig(proposedConfig *agent.ProposedConfigResponse) error
- func (adapter *AivenPostgreSQLAdapter) GetActiveConfig() (agent.ConfigArraySchema, error)
- func (adapter *AivenPostgreSQLAdapter) GetAivenClient() *aiven.Client
- func (adapter *AivenPostgreSQLAdapter) GetAivenConfig() *adeptersinterfaces.AivenConfig
- func (adapter *AivenPostgreSQLAdapter) GetAivenState() *adeptersinterfaces.AivenState
- func (adapter *AivenPostgreSQLAdapter) GetSystemInfo() ([]utils.FlatValue, error)
- func (adapter *AivenPostgreSQLAdapter) Guardrails() *agent.GuardrailSignal
- func (adapter *AivenPostgreSQLAdapter) PGDriver() *pgPool.Pool
- type AuroraRDSAdapter
- func (adapter *AuroraRDSAdapter) APIClient() *retryablehttp.Client
- func (adapter *AuroraRDSAdapter) ApplyConfig(proposedConfig *agent.ProposedConfigResponse) error
- func (adapter *AuroraRDSAdapter) GetAuroraRDSConfig() *adapters.AuroraRDSConfig
- func (adapter *AuroraRDSAdapter) GetAuroraState() *adapters.AuroraRDSState
- func (adapter *AuroraRDSAdapter) GetCWClient() *cloudwatch.Client
- func (adapter *AuroraRDSAdapter) GetEC2Client() *ec2.Client
- func (adapter *AuroraRDSAdapter) GetEC2InstanceTypeInfo() (*ec2types.InstanceTypeInfo, error)
- func (adapter *AuroraRDSAdapter) GetPIClient() *pi.Client
- func (adapter *AuroraRDSAdapter) GetRDSClient() *rds.Client
- func (adapter *AuroraRDSAdapter) GetSystemInfo() ([]utils.FlatValue, error)
- func (adapter *AuroraRDSAdapter) Guardrails() *agent.GuardrailSignal
- func (adapter *AuroraRDSAdapter) PGDriver() *pgPool.Pool
- type DefaultPostgreSQLAdapter
- func (adapter *DefaultPostgreSQLAdapter) APIClient() *retryablehttp.Client
- func (adapter *DefaultPostgreSQLAdapter) ApplyConfig(proposedConfig *agent.ProposedConfigResponse) error
- func (adapter *DefaultPostgreSQLAdapter) GetActiveConfig() (agent.ConfigArraySchema, error)
- func (adapter *DefaultPostgreSQLAdapter) GetSystemInfo() ([]utils.FlatValue, error)
- func (adapter *DefaultPostgreSQLAdapter) Guardrails() *agent.GuardrailSignal
- func (adapter *DefaultPostgreSQLAdapter) PGDriver() *pgPool.Pool
- type DockerContainerAdapter
- func (d *DockerContainerAdapter) ApplyConfig(proposedConfig *agent.ProposedConfigResponse) error
- func (d *DockerContainerAdapter) GetContainerName() string
- func (d *DockerContainerAdapter) GetDockerClient() *client.Client
- func (d *DockerContainerAdapter) GetSystemInfo() ([]utils.FlatValue, error)
- func (d *DockerContainerAdapter) Guardrails() *agent.GuardrailSignal
- type GuardrailSettings
- type InitialServiceLevelParameters
- type ModifyLevel
- type PostgreSQLConfig
Constants ¶
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 {
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 )