diff options
Diffstat (limited to 'src/go/collectors/go.d.plugin/modules/nginxplus/nginx_http_api.go')
-rw-r--r-- | src/go/collectors/go.d.plugin/modules/nginxplus/nginx_http_api.go | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/nginxplus/nginx_http_api.go b/src/go/collectors/go.d.plugin/modules/nginxplus/nginx_http_api.go new file mode 100644 index 000000000..0f7999ac5 --- /dev/null +++ b/src/go/collectors/go.d.plugin/modules/nginxplus/nginx_http_api.go @@ -0,0 +1,212 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package nginxplus + +import "time" + +// https://demo.nginx.com/dashboard.html +// https://demo.nginx.com/swagger-ui/ +// http://nginx.org/en/docs/http/ngx_http_api_module.html + +type nginxAPIVersions []int64 + +type ( + nginxInfo struct { + Version string `json:"version"` + Build string `json:"build"` + Address string `json:"address"` + Generation int `json:"generation"` + LoadTimestamp time.Time `json:"load_timestamp"` + Timestamp time.Time `json:"timestamp"` + } + nginxConnections struct { + Accepted int64 `json:"accepted"` + Dropped int64 `json:"dropped"` + Active int64 `json:"active"` + Idle int64 `json:"idle"` + } + nginxSSL struct { + Handshakes int64 `json:"handshakes"` + HandshakesFailed int64 `json:"handshakes_failed"` + SessionReuses int64 `json:"session_reuses"` + NoCommonProtocol int64 `json:"no_common_protocol"` + NoCommonCipher int64 `json:"no_common_cipher"` + HandshakeTimeout int64 `json:"handshake_timeout"` + PeerRejectedCert int64 `json:"peer_rejected_cert"` + VerifyFailures struct { + NoCert int64 `json:"no_cert"` + ExpiredCert int64 `json:"expired_cert"` + RevokedCert int64 `json:"revoked_cert"` + HostnameMismatch int64 `json:"hostname_mismatch"` + Other int64 `json:"other"` + } `json:"verify_failures"` + } +) + +type ( + nginxHTTPRequests struct { + Total int64 `json:"total"` + Current int64 `json:"current"` + } + nginxHTTPServerZones map[string]struct { + Processing int64 `json:"processing"` + Requests int64 `json:"requests"` + Responses struct { + Class1xx int64 `json:"1xx"` + Class2xx int64 `json:"2xx"` + Class3xx int64 `json:"3xx"` + Class4xx int64 `json:"4xx"` + Class5xx int64 `json:"5xx"` + Total int64 + } `json:"responses"` + Discarded int64 `json:"discarded"` + Received int64 `json:"received"` + Sent int64 `json:"sent"` + } + nginxHTTPLocationZones map[string]struct { + Requests int64 `json:"requests"` + Responses struct { + Class1xx int64 `json:"1xx"` + Class2xx int64 `json:"2xx"` + Class3xx int64 `json:"3xx"` + Class4xx int64 `json:"4xx"` + Class5xx int64 `json:"5xx"` + Total int64 + } `json:"responses"` + Discarded int64 `json:"discarded"` + Received int64 `json:"received"` + Sent int64 `json:"sent"` + } + nginxHTTPUpstreams map[string]struct { + Peers []struct { + Id int64 `json:"id"` + Server string `json:"server"` + Name string `json:"name"` + Backup bool `json:"backup"` + Weight int64 `json:"weight"` + State string `json:"state"` + Active int64 `json:"active"` + Requests int64 `json:"requests"` + HeaderTime int64 `json:"header_time"` + ResponseTime int64 `json:"response_time"` + Responses struct { + Class1xx int64 `json:"1xx"` + Class2xx int64 `json:"2xx"` + Class3xx int64 `json:"3xx"` + Class4xx int64 `json:"4xx"` + Class5xx int64 `json:"5xx"` + Total int64 + } `json:"responses"` + Sent int64 `json:"sent"` + Received int64 `json:"received"` + Fails int64 `json:"fails"` + Unavail int64 `json:"unavail"` + HealthChecks struct { + Checks int64 `json:"checks"` + Fails int64 `json:"fails"` + Unhealthy int64 `json:"unhealthy"` + } `json:"health_checks"` + Downtime int64 `json:"downtime"` + Selected time.Time `json:"selected"` + } `json:"peers"` + Keepalive int64 `json:"keepalive"` + Zombies int64 `json:"zombies"` + Zone string `json:"zone"` + } + nginxHTTPCaches map[string]struct { + Size int64 `json:"size"` + Cold bool `json:"cold"` + Hit struct { + Responses int64 `json:"responses"` + Bytes int64 `json:"bytes"` + } `json:"hit"` + Stale struct { + Responses int64 `json:"responses"` + Bytes int64 `json:"bytes"` + } `json:"stale"` + Updating struct { + Responses int64 `json:"responses"` + Bytes int64 `json:"bytes"` + } `json:"updating"` + Revalidated struct { + Responses int64 `json:"responses"` + Bytes int64 `json:"bytes"` + } `json:"revalidated"` + Miss struct { + Responses int64 `json:"responses"` + Bytes int64 `json:"bytes"` + ResponsesWritten int64 `json:"responses_written"` + BytesWritten int64 `json:"bytes_written"` + } `json:"miss"` + Expired struct { + Responses int64 `json:"responses"` + Bytes int64 `json:"bytes"` + ResponsesWritten int64 `json:"responses_written"` + BytesWritten int64 `json:"bytes_written"` + } `json:"expired"` + Bypass struct { + Responses int64 `json:"responses"` + Bytes int64 `json:"bytes"` + ResponsesWritten int64 `json:"responses_written"` + BytesWritten int64 `json:"bytes_written"` + } `json:"bypass"` + } +) + +type ( + nginxStreamServerZones map[string]struct { + Processing int64 `json:"processing"` + Connections int64 `json:"connections"` + Sessions struct { + Class2xx int64 `json:"2xx"` + Class4xx int64 `json:"4xx"` + Class5xx int64 `json:"5xx"` + Total int64 `json:"total"` + } `json:"sessions"` + Discarded int64 `json:"discarded"` + Received int64 `json:"received"` + Sent int64 `json:"sent"` + } + nginxStreamUpstreams map[string]struct { + Peers []struct { + Id int64 `json:"id"` + Server string `json:"server"` + Name string `json:"name"` + Backup bool `json:"backup"` + Weight int64 `json:"weight"` + State string `json:"state"` + Active int64 `json:"active"` + Connections int64 `json:"connections"` + Sent int64 `json:"sent"` + Received int64 `json:"received"` + Fails int64 `json:"fails"` + Unavail int64 `json:"unavail"` + HealthChecks struct { + Checks int64 `json:"checks"` + Fails int64 `json:"fails"` + Unhealthy int64 `json:"unhealthy"` + } `json:"health_checks"` + Downtime int64 `json:"downtime"` + } `json:"peers"` + Zombies int64 `json:"zombies"` + Zone string `json:"zone"` + } +) + +type nginxResolvers map[string]struct { + Requests struct { + Name int64 `json:"name"` + Srv int64 `json:"srv"` + Addr int64 `json:"addr"` + } `json:"requests"` + Responses struct { + NoError int64 `json:"noerror"` + Formerr int64 `json:"formerr"` + Servfail int64 `json:"servfail"` + Nxdomain int64 `json:"nxdomain"` + Notimp int64 `json:"notimp"` + Refused int64 `json:"refused"` + TimedOut int64 `json:"timedout"` + Unknown int64 `json:"unknown"` + } `json:"responses"` +} |