Documentation
¶
Index ¶
- Constants
- Variables
- func DisableExporterInPostgreSQL(ctx context.Context, exec postgres.Executor) error
- func EnableExporterInPostgreSQL(ctx context.Context, exec postgres.Executor, monitoringSecret *corev1.Secret, ...) error
- func ExporterEnabled(cluster *v1beta1.PostgresCluster) bool
- func ExporterStartCommand(builtinCollectors bool, commandFlags ...string) []string
- func GenerateDefaultExporterQueries(ctx context.Context, cluster *v1beta1.PostgresCluster) string
- func GetQueriesConfigDir(ctx context.Context) string
- func PostgreSQLHBAs(inCluster *v1beta1.PostgresCluster, outHBAs *postgres.HBAs)
- func PostgreSQLParameters(inCluster *v1beta1.PostgresCluster, outParameters *postgres.Parameters)
- type Executor
Constants ¶
const ( ExporterPort = int32(9187) // TODO: With the current implementation of the crunchy-postgres-exporter // it makes sense to hard-code the database. When moving away from the // crunchy-postgres-exporter start.sh script we should re-evaluate always // setting the exporter database to `postgres`. ExporterDB = "postgres" // The exporter connects to all databases over loopback using a password. // Kubernetes guarantees localhost resolves to loopback: // https://kubernetes.io/docs/concepts/cluster-administration/networking/ // https://releases.k8s.io/v1.21.0/pkg/kubelet/kubelet_pods.go#L343 ExporterHost = "localhost" )
const (
// MonitoringUser is a Postgres user created by pgMonitor configuration
MonitoringUser = "ccp_monitoring"
)
Variables ¶
var ( ExporterWebConfigFileFlag = "--web.config.file=/web-config/web-config.yml" ExporterDeactivateStatBGWriterFlag = "--no-collector.stat_bgwriter" )
postgres_exporter command flags
var DefaultValuesForQueries = map[string]string{
"PGBACKREST_INFO_THROTTLE_MINUTES": "10",
"PG_STAT_STATEMENTS_LIMIT": "20",
"PG_STAT_STATEMENTS_THROTTLE_MINUTES": "-1",
}
Defaults for certain values used in queries.yml TODO(dsessler7): make these values configurable via spec
Functions ¶
func DisableExporterInPostgreSQL ¶
DisableExporterInPostgreSQL disables the exporter configuration in PostgreSQL. Currently the exporter is disabled by removing login permissions for the monitoring user. TODO: evaluate other uninstall/removal options
func EnableExporterInPostgreSQL ¶
func EnableExporterInPostgreSQL(ctx context.Context, exec postgres.Executor, monitoringSecret *corev1.Secret, database, setup string) error
EnableExporterInPostgreSQL runs SQL setup commands in `database` to enable the exporter to retrieve metrics. pgMonitor objects are created and expected extensions are installed. We also ensure that the monitoring user has the current password and can login.
func ExporterEnabled ¶
func ExporterEnabled(cluster *v1beta1.PostgresCluster) bool
ExporterEnabled returns true if the monitoring exporter is enabled
func ExporterStartCommand ¶
ExporterStartCommand generates an entrypoint that will create a master queries file and start the postgres_exporter. It will repeat those steps if it notices a change in the source queries files.
func GenerateDefaultExporterQueries ¶
func GenerateDefaultExporterQueries(ctx context.Context, cluster *v1beta1.PostgresCluster) string
GenerateDefaultExporterQueries generates the default queries used by exporter
func GetQueriesConfigDir ¶
func PostgreSQLHBAs ¶
func PostgreSQLHBAs(inCluster *v1beta1.PostgresCluster, outHBAs *postgres.HBAs)
PostgreSQLHBAs provides the Postgres HBA rules for allowing the monitoring exporter to be accessible
func PostgreSQLParameters ¶
func PostgreSQLParameters(inCluster *v1beta1.PostgresCluster, outParameters *postgres.Parameters)
PostgreSQLParameters provides additional required configuration parameters that Postgres needs to support monitoring