-
Notifications
You must be signed in to change notification settings - Fork 21
/
pgbouncer_pool_overview_types.go
90 lines (78 loc) · 4.16 KB
/
pgbouncer_pool_overview_types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
Copyright AppsCode Inc. and Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
const (
ResourceKindPgBouncerPoolOverview = "PgBouncerPoolOverview"
ResourcePgBouncerPoolOverview = "pgbouncerpooloverview"
ResourcePgBouncerPoolOverviews = "pgbouncerpooloverviews"
)
type PgBouncerPoolOverviewSpec struct {
Pools []PgBouncerPool `json:"pools"`
}
type PgBouncerPool struct {
// PodName represents the corresponding pod for the pool
PodName string `json:"podName"`
// Database represents the database of the pool
Database string `json:"database"`
// User represents the user of the pool
User string `json:"user"`
// ActiveClientConnections represents client connections that are either linked to server connections
// or are idle with no queries waiting to be processed
ActiveClientConnections *int32 `json:"activeClientConnections,omitempty"`
// WaitingClientConnections represents client connections that have sent queries
// but have not yet got a server connection
WaitingClientConnections *int32 `json:"waitingClientConnections,omitempty"`
// ActiveQueryCancellationRequest represents client connections that have forwarded query cancellations to the server
ActiveQueryCancellationRequest *int32 `json:"activeQueryCancellationRequest,omitempty"`
// WaitingQueryCancellationRequest represents client connections that are waiting to forwarded query cancellations to the server
WaitingQueryCancellationRequest *int32 `json:"waitingQueryCancellationRequest,omitempty"`
// ActiveServerConnections represents server connections that are linked to a client.
ActiveServerConnections *int32 `json:"activeServerConnections,omitempty"`
// ActiveServersCancelRequest represents server connections that are currently forwarding a cancel request.
ActiveServersCancelRequest *int32 `json:"activeServersCancelRequest,omitempty"`
// ServersBeingCanceled represents servers that normally could become idle but are waiting to do
// so until all in-flight cancel requests have completed
ServersBeingCanceled *int32 `json:"serversBeingCanceled,omitempty"`
// IdleServers represents server connections that are unused and immediately usable for client queries.
IdleServers *int32 `json:"idleServers,omitempty"`
// UsedServers represents server connections that have been idle for more than server_check_delay
UsedServers *int32 `json:"usedServers,omitempty"`
// ServersTested represents server connections that are currently running either server_reset_query or server_check_query
TestedServers *int32 `json:"testedServers,omitempty"`
// ServersInLogin represents server connections currently in the process of logging in
ServersInLogin *int32 `json:"serversInLogin,omitempty"`
// MaxWaitMS represents how long the first (oldest) client in the queue has waited
MaxWaitMS *metav1.Duration `json:"maxWaitMS,omitempty"`
// Mode represents the pooling mode in use. ex: session, transaction, statement
Mode string `json:"mode"`
}
// PgBouncerPoolOverview is the Schema for the PgBouncerPoolOverviews API
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type PgBouncerPoolOverview struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec PgBouncerPoolOverviewSpec `json:"spec,omitempty"`
}
// PgBouncerPoolOverviewList contains a list of PgBouncerPoolOverviews
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type PgBouncerPoolOverviewList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []PgBouncerPoolOverview `json:"items"`
}
func init() {
SchemeBuilder.Register(&PgBouncerPoolOverview{}, &PgBouncerPoolOverviewList{})
}