Skip to content

Commit 5b8fe24

Browse files
author
Alex Shchukin
committed
add func to get only a subset of stats
1 parent 75e4d00 commit 5b8fe24

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

client/nginx.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,6 +1020,60 @@ func (client *NginxClient) GetStats() (*Stats, error) {
10201020
}, nil
10211021
}
10221022

1023+
// GetSubStats gets a subset of GetStats() stats from the NGINX Plus API.
1024+
func (client *NginxClient) GetSubStats() (*Stats, error) {
1025+
info, err := client.getNginxInfo()
1026+
if err != nil {
1027+
return nil, fmt.Errorf("failed to get stats: %v", err)
1028+
}
1029+
1030+
processes, err := client.getProcesses()
1031+
if err != nil {
1032+
return nil, fmt.Errorf("failed to get stats: %v", err)
1033+
}
1034+
1035+
slabs, err := client.getSlabs()
1036+
if err != nil {
1037+
return nil, fmt.Errorf("failed to get stats: %v", err)
1038+
}
1039+
1040+
cons, err := client.getConnections()
1041+
if err != nil {
1042+
return nil, fmt.Errorf("failed to get stats: %v", err)
1043+
}
1044+
1045+
requests, err := client.getHTTPRequests()
1046+
if err != nil {
1047+
return nil, fmt.Errorf("Failed to get stats: %v", err)
1048+
}
1049+
1050+
ssl, err := client.getSSL()
1051+
if err != nil {
1052+
return nil, fmt.Errorf("failed to get stats: %v", err)
1053+
}
1054+
1055+
zones, err := client.getServerZones()
1056+
if err != nil {
1057+
return nil, fmt.Errorf("failed to get stats: %v", err)
1058+
}
1059+
1060+
upstreams, err := client.getUpstreams()
1061+
if err != nil {
1062+
return nil, fmt.Errorf("failed to get stats: %v", err)
1063+
}
1064+
1065+
return &Stats{
1066+
NginxInfo: *info,
1067+
Processes: *processes,
1068+
Slabs: *slabs,
1069+
Connections: *cons,
1070+
HTTPRequests: *requests,
1071+
SSL: *ssl,
1072+
ServerZones: *zones,
1073+
Upstreams: *upstreams,
1074+
}, nil
1075+
}
1076+
10231077
func (client *NginxClient) getNginxInfo() (*NginxInfo, error) {
10241078
var info NginxInfo
10251079
err := client.get("nginx", &info)

0 commit comments

Comments
 (0)