master
go 212 lines 6.31 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package nginxplus
4
5 import "time"
6
7 // https://demo.nginx.com/dashboard.html
8 // https://demo.nginx.com/swagger-ui/
9 // http://nginx.org/en/docs/http/ngx_http_api_module.html
10
11 type nginxAPIVersions []int64
12
13 type (
14 nginxInfo struct {
15 Version string `json:"version"`
16 Build string `json:"build"`
17 Address string `json:"address"`
18 Generation int `json:"generation"`
19 LoadTimestamp time.Time `json:"load_timestamp"`
20 Timestamp time.Time `json:"timestamp"`
21 }
22 nginxConnections struct {
23 Accepted int64 `json:"accepted"`
24 Dropped int64 `json:"dropped"`
25 Active int64 `json:"active"`
26 Idle int64 `json:"idle"`
27 }
28 nginxSSL struct {
29 Handshakes int64 `json:"handshakes"`
30 HandshakesFailed int64 `json:"handshakes_failed"`
31 SessionReuses int64 `json:"session_reuses"`
32 NoCommonProtocol int64 `json:"no_common_protocol"`
33 NoCommonCipher int64 `json:"no_common_cipher"`
34 HandshakeTimeout int64 `json:"handshake_timeout"`
35 PeerRejectedCert int64 `json:"peer_rejected_cert"`
36 VerifyFailures struct {
37 NoCert int64 `json:"no_cert"`
38 ExpiredCert int64 `json:"expired_cert"`
39 RevokedCert int64 `json:"revoked_cert"`
40 HostnameMismatch int64 `json:"hostname_mismatch"`
41 Other int64 `json:"other"`
42 } `json:"verify_failures"`
43 }
44 )
45
46 type (
47 nginxHTTPRequests struct {
48 Total int64 `json:"total"`
49 Current int64 `json:"current"`
50 }
51 nginxHTTPServerZones map[string]struct {
52 Processing int64 `json:"processing"`
53 Requests int64 `json:"requests"`
54 Responses struct {
55 Class1xx int64 `json:"1xx"`
56 Class2xx int64 `json:"2xx"`
57 Class3xx int64 `json:"3xx"`
58 Class4xx int64 `json:"4xx"`
59 Class5xx int64 `json:"5xx"`
60 Total int64
61 } `json:"responses"`
62 Discarded int64 `json:"discarded"`
63 Received int64 `json:"received"`
64 Sent int64 `json:"sent"`
65 }
66 nginxHTTPLocationZones map[string]struct {
67 Requests int64 `json:"requests"`
68 Responses struct {
69 Class1xx int64 `json:"1xx"`
70 Class2xx int64 `json:"2xx"`
71 Class3xx int64 `json:"3xx"`
72 Class4xx int64 `json:"4xx"`
73 Class5xx int64 `json:"5xx"`
74 Total int64
75 } `json:"responses"`
76 Discarded int64 `json:"discarded"`
77 Received int64 `json:"received"`
78 Sent int64 `json:"sent"`
79 }
80 nginxHTTPUpstreams map[string]struct {
81 Peers []struct {
82 Id int64 `json:"id"`
83 Server string `json:"server"`
84 Name string `json:"name"`
85 Backup bool `json:"backup"`
86 Weight int64 `json:"weight"`
87 State string `json:"state"`
88 Active int64 `json:"active"`
89 Requests int64 `json:"requests"`
90 HeaderTime int64 `json:"header_time"`
91 ResponseTime int64 `json:"response_time"`
92 Responses struct {
93 Class1xx int64 `json:"1xx"`
94 Class2xx int64 `json:"2xx"`
95 Class3xx int64 `json:"3xx"`
96 Class4xx int64 `json:"4xx"`
97 Class5xx int64 `json:"5xx"`
98 Total int64
99 } `json:"responses"`
100 Sent int64 `json:"sent"`
101 Received int64 `json:"received"`
102 Fails int64 `json:"fails"`
103 Unavail int64 `json:"unavail"`
104 HealthChecks struct {
105 Checks int64 `json:"checks"`
106 Fails int64 `json:"fails"`
107 Unhealthy int64 `json:"unhealthy"`
108 } `json:"health_checks"`
109 Downtime int64 `json:"downtime"`
110 Selected time.Time `json:"selected"`
111 } `json:"peers"`
112 Keepalive int64 `json:"keepalive"`
113 Zombies int64 `json:"zombies"`
114 Zone string `json:"zone"`
115 }
116 nginxHTTPCaches map[string]struct {
117 Size int64 `json:"size"`
118 Cold bool `json:"cold"`
119 Hit struct {
120 Responses int64 `json:"responses"`
121 Bytes int64 `json:"bytes"`
122 } `json:"hit"`
123 Stale struct {
124 Responses int64 `json:"responses"`
125 Bytes int64 `json:"bytes"`
126 } `json:"stale"`
127 Updating struct {
128 Responses int64 `json:"responses"`
129 Bytes int64 `json:"bytes"`
130 } `json:"updating"`
131 Revalidated struct {
132 Responses int64 `json:"responses"`
133 Bytes int64 `json:"bytes"`
134 } `json:"revalidated"`
135 Miss struct {
136 Responses int64 `json:"responses"`
137 Bytes int64 `json:"bytes"`
138 ResponsesWritten int64 `json:"responses_written"`
139 BytesWritten int64 `json:"bytes_written"`
140 } `json:"miss"`
141 Expired struct {
142 Responses int64 `json:"responses"`
143 Bytes int64 `json:"bytes"`
144 ResponsesWritten int64 `json:"responses_written"`
145 BytesWritten int64 `json:"bytes_written"`
146 } `json:"expired"`
147 Bypass struct {
148 Responses int64 `json:"responses"`
149 Bytes int64 `json:"bytes"`
150 ResponsesWritten int64 `json:"responses_written"`
151 BytesWritten int64 `json:"bytes_written"`
152 } `json:"bypass"`
153 }
154 )
155
156 type (
157 nginxStreamServerZones map[string]struct {
158 Processing int64 `json:"processing"`
159 Connections int64 `json:"connections"`
160 Sessions struct {
161 Class2xx int64 `json:"2xx"`
162 Class4xx int64 `json:"4xx"`
163 Class5xx int64 `json:"5xx"`
164 Total int64 `json:"total"`
165 } `json:"sessions"`
166 Discarded int64 `json:"discarded"`
167 Received int64 `json:"received"`
168 Sent int64 `json:"sent"`
169 }
170 nginxStreamUpstreams map[string]struct {
171 Peers []struct {
172 Id int64 `json:"id"`
173 Server string `json:"server"`
174 Name string `json:"name"`
175 Backup bool `json:"backup"`
176 Weight int64 `json:"weight"`
177 State string `json:"state"`
178 Active int64 `json:"active"`
179 Connections int64 `json:"connections"`
180 Sent int64 `json:"sent"`
181 Received int64 `json:"received"`
182 Fails int64 `json:"fails"`
183 Unavail int64 `json:"unavail"`
184 HealthChecks struct {
185 Checks int64 `json:"checks"`
186 Fails int64 `json:"fails"`
187 Unhealthy int64 `json:"unhealthy"`
188 } `json:"health_checks"`
189 Downtime int64 `json:"downtime"`
190 } `json:"peers"`
191 Zombies int64 `json:"zombies"`
192 Zone string `json:"zone"`
193 }
194 )
195
196 type nginxResolvers map[string]struct {
197 Requests struct {
198 Name int64 `json:"name"`
199 Srv int64 `json:"srv"`
200 Addr int64 `json:"addr"`
201 } `json:"requests"`
202 Responses struct {
203 NoError int64 `json:"noerror"`
204 Formerr int64 `json:"formerr"`
205 Servfail int64 `json:"servfail"`
206 Nxdomain int64 `json:"nxdomain"`
207 Notimp int64 `json:"notimp"`
208 Refused int64 `json:"refused"`
209 TimedOut int64 `json:"timedout"`
210 Unknown int64 `json:"unknown"`
211 } `json:"responses"`
212 }