Skip to content

Commit 4092fc3

Browse files
authored
K8SPG-753: Add field to control pg_stat_statements (#1114)
* K8SPG-753: Add field to control pg_stat_statements * fix monitoring test * fix * fix * fix
1 parent 2d3207f commit 4092fc3

File tree

9 files changed

+45
-10
lines changed

9 files changed

+45
-10
lines changed

build/crd/percona/generated/pgv2.percona.com_perconapgclusters.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -8072,6 +8072,8 @@ spec:
80728072
type: boolean
80738073
pg_stat_monitor:
80748074
type: boolean
8075+
pg_stat_statements:
8076+
type: boolean
80758077
pgvector:
80768078
type: boolean
80778079
type: object

config/crd/bases/pgv2.percona.com_perconapgclusters.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -8477,6 +8477,8 @@ spec:
84778477
type: boolean
84788478
pg_stat_monitor:
84798479
type: boolean
8480+
pg_stat_statements:
8481+
type: boolean
84808482
pgvector:
84818483
type: boolean
84828484
type: object

deploy/bundle.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -8774,6 +8774,8 @@ spec:
87748774
type: boolean
87758775
pg_stat_monitor:
87768776
type: boolean
8777+
pg_stat_statements:
8778+
type: boolean
87778779
pgvector:
87788780
type: boolean
87798781
type: object

deploy/crd.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -8774,6 +8774,8 @@ spec:
87748774
type: boolean
87758775
pg_stat_monitor:
87768776
type: boolean
8777+
pg_stat_statements:
8778+
type: boolean
87778779
pgvector:
87788780
type: boolean
87798781
type: object

deploy/cw-bundle.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -8774,6 +8774,8 @@ spec:
87748774
type: boolean
87758775
pg_stat_monitor:
87768776
type: boolean
8777+
pg_stat_statements:
8778+
type: boolean
87778779
pgvector:
87788780
type: boolean
87798781
type: object

e2e-tests/tests/monitoring-pmm3/06-check-pgstatstatements-query-source.yaml

+11-3
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,19 @@ commands:
77
88
source ../../functions
99
10-
kubectl -n ${NAMESPACE} patch perconapgcluster/monitoring-pmm3 --type=merge -p '{"spec":{"pmm":{"querySource":"pgstatstatements"}}}'
10+
kubectl -n ${NAMESPACE} patch perconapgcluster/monitoring-pmm3 --type=merge -p '{
11+
"spec":{
12+
"pmm":{"querySource":"pgstatstatements"},
13+
"extensions": {"builtin": {"pg_stat_statements": true }}}
14+
}
15+
'
1116
1217
# Wait for the pg_stat_statements extension to be created
1318
sleep 80
1419
1520
primary=$(get_pod_by_role monitoring-pmm3 primary name)
16-
res=$(kubectl -n ${NAMESPACE} exec ${primary} -- bash -c 'psql -c "SELECT extname FROM pg_extension;"')
17-
echo ${res} | grep -q pg_stat_statements
21+
kubectl -n ${NAMESPACE} exec ${primary} -- bash -c 'psql -c "SELECT * FROM pg_extension;"'
22+
if ! kubectl -n ${NAMESPACE} exec ${primary} -- bash -c 'psql -c "SELECT extname FROM pg_extension;"' | grep pg_stat_statements; then
23+
echo "pg_stat_statements is not found in pg_extension"
24+
fi
25+
timeout: 360

e2e-tests/tests/monitoring/06-check-pgstatstatements-query-source.yaml

+10-3
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,19 @@ commands:
77
88
source ../../functions
99
10-
kubectl -n ${NAMESPACE} patch perconapgcluster/monitoring --type=merge -p '{"spec":{"pmm":{"querySource":"pgstatstatements"}}}'
10+
kubectl -n ${NAMESPACE} patch perconapgcluster/monitoring --type=merge -p '{
11+
"spec":{
12+
"pmm":{"querySource":"pgstatstatements"},
13+
"extensions": {"builtin": {"pg_stat_statements": true }}}
14+
}
15+
'
1116
1217
# Wait for the pg_stat_statements extension to be created
1318
sleep 80
1419
1520
primary=$(get_pod_by_role monitoring primary name)
16-
res=$(kubectl -n ${NAMESPACE} exec ${primary} -- bash -c 'psql -c "SELECT extname FROM pg_extension;"')
17-
echo ${res} | grep -q pg_stat_statements
21+
kubectl -n ${NAMESPACE} exec ${primary} -- bash -c 'psql -c "SELECT * FROM pg_extension;"'
22+
if ! kubectl -n ${NAMESPACE} exec ${primary} -- bash -c 'psql -c "SELECT extname FROM pg_extension;"' | grep pg_stat_statements; then
23+
echo "pg_stat_statements is not found in pg_extension"
24+
fi
1825
timeout: 360

pkg/apis/pgv2.percona.com/v2/perconapgcluster_types.go

+9-4
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,9 @@ func (cr *PerconaPGCluster) Default() {
225225
if cr.Spec.Extensions.BuiltIn.PGStatMonitor == nil {
226226
cr.Spec.Extensions.BuiltIn.PGStatMonitor = &t
227227
}
228+
if cr.Spec.Extensions.BuiltIn.PGStatStatements == nil {
229+
cr.Spec.Extensions.BuiltIn.PGStatStatements = &f
230+
}
228231
if cr.Spec.Extensions.BuiltIn.PGAudit == nil {
229232
cr.Spec.Extensions.BuiltIn.PGAudit = &t
230233
}
@@ -355,6 +358,7 @@ func (cr *PerconaPGCluster) ToCrunchy(ctx context.Context, postgresCluster *crun
355358
postgresCluster.Spec.Proxy = cr.Spec.Proxy.ToCrunchy()
356359

357360
postgresCluster.Spec.Extensions.PGStatMonitor = *cr.Spec.Extensions.BuiltIn.PGStatMonitor
361+
postgresCluster.Spec.Extensions.PGStatStatements = *cr.Spec.Extensions.BuiltIn.PGStatStatements
358362
postgresCluster.Spec.Extensions.PGAudit = *cr.Spec.Extensions.BuiltIn.PGAudit
359363
postgresCluster.Spec.Extensions.PGVector = *cr.Spec.Extensions.BuiltIn.PGVector
360364
postgresCluster.Spec.Extensions.PGRepack = *cr.Spec.Extensions.BuiltIn.PGRepack
@@ -605,10 +609,11 @@ type CustomExtensionsStorageSpec struct {
605609
}
606610

607611
type BuiltInExtensionsSpec struct {
608-
PGStatMonitor *bool `json:"pg_stat_monitor,omitempty"`
609-
PGAudit *bool `json:"pg_audit,omitempty"`
610-
PGVector *bool `json:"pgvector,omitempty"`
611-
PGRepack *bool `json:"pg_repack,omitempty"`
612+
PGStatMonitor *bool `json:"pg_stat_monitor,omitempty"`
613+
PGStatStatements *bool `json:"pg_stat_statements,omitempty"`
614+
PGAudit *bool `json:"pg_audit,omitempty"`
615+
PGVector *bool `json:"pgvector,omitempty"`
616+
PGRepack *bool `json:"pg_repack,omitempty"`
612617
}
613618

614619
type ExtensionsSpec struct {

pkg/apis/pgv2.percona.com/v2/zz_generated.deepcopy.go

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)