| 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 | } |