Documentation ¶
Index ¶
- Constants
- Variables
- type Connections
- type HTTPRequests
- type HealthChecks
- type KeyValPairs
- type KeyValPairsByZone
- type LocationZone
- type LocationZones
- type NginxClient
- func (client *NginxClient) AddHTTPServer(upstream string, server UpstreamServer) error
- func (client *NginxClient) AddKeyValPair(zone string, key string, val string) error
- func (client *NginxClient) AddStreamKeyValPair(zone string, key string, val string) error
- func (client *NginxClient) AddStreamServer(upstream string, server StreamUpstreamServer) error
- func (client *NginxClient) CheckIfStreamUpstreamExists(upstream string) error
- func (client *NginxClient) CheckIfUpstreamExists(upstream string) error
- func (client *NginxClient) DeleteHTTPServer(upstream string, server string) error
- func (client *NginxClient) DeleteKeyValPairs(zone string) error
- func (client *NginxClient) DeleteKeyValuePair(zone string, key string) error
- func (client *NginxClient) DeleteStreamKeyValPairs(zone string) error
- func (client *NginxClient) DeleteStreamKeyValuePair(zone string, key string) error
- func (client *NginxClient) DeleteStreamServer(upstream string, server string) error
- func (client *NginxClient) GetAllKeyValPairs() (KeyValPairsByZone, error)
- func (client *NginxClient) GetAllStreamKeyValPairs() (KeyValPairsByZone, error)
- func (client *NginxClient) GetConnections() (*Connections, error)
- func (client *NginxClient) GetHTTPRequests() (*HTTPRequests, error)
- func (client *NginxClient) GetHTTPServers(upstream string) ([]UpstreamServer, error)
- func (client *NginxClient) GetKeyValPairs(zone string) (KeyValPairs, error)
- func (client *NginxClient) GetLocationZones() (*LocationZones, error)
- func (client *NginxClient) GetNginxInfo() (*NginxInfo, error)
- func (client *NginxClient) GetProcesses() (*Processes, error)
- func (client *NginxClient) GetResolvers() (*Resolvers, error)
- func (client *NginxClient) GetSSL() (*SSL, error)
- func (client *NginxClient) GetServerZones() (*ServerZones, error)
- func (client *NginxClient) GetSlabs() (*Slabs, error)
- func (client *NginxClient) GetStats() (*Stats, error)
- func (client *NginxClient) GetStreamKeyValPairs(zone string) (KeyValPairs, error)
- func (client *NginxClient) GetStreamServerZones() (*StreamServerZones, error)
- func (client *NginxClient) GetStreamServers(upstream string) ([]StreamUpstreamServer, error)
- func (client *NginxClient) GetStreamUpstreams() (*StreamUpstreams, error)
- func (client *NginxClient) GetStreamZoneSync() (*StreamZoneSync, error)
- func (client *NginxClient) GetUpstreams() (*Upstreams, error)
- func (client *NginxClient) ModifyKeyValPair(zone string, key string, val string) error
- func (client *NginxClient) ModifyStreamKeyValPair(zone string, key string, val string) error
- func (client *NginxClient) UpdateHTTPServer(upstream string, server UpstreamServer) error
- func (client *NginxClient) UpdateHTTPServers(upstream string, servers []UpstreamServer) (added []UpstreamServer, deleted []UpstreamServer, updated []UpstreamServer, ...)
- func (client *NginxClient) UpdateStreamServer(upstream string, server StreamUpstreamServer) error
- func (client *NginxClient) UpdateStreamServers(upstream string, servers []StreamUpstreamServer) (added []StreamUpstreamServer, deleted []StreamUpstreamServer, ...)
- func (client *NginxClient) Version() int
- type NginxInfo
- type Pages
- type Peer
- type Processes
- type Queue
- type Resolver
- type ResolverRequests
- type ResolverResponses
- type Resolvers
- type Responses
- type SSL
- type ServerZone
- type ServerZones
- type Sessions
- type Slab
- type Slabs
- type Slot
- type Slots
- type Stats
- type StreamPeer
- type StreamServerZone
- type StreamServerZones
- type StreamUpstream
- type StreamUpstreamServer
- type StreamUpstreams
- type StreamZoneSync
- type StreamZoneSyncStatus
- type SyncZone
- type Upstream
- type UpstreamServer
- type Upstreams
Constants ¶
const (
// APIVersion is the default version of NGINX Plus API supported by the client.
APIVersion = 5
)
Variables ¶
var ErrUnsupportedVer = errors.New("API version of the client is not supported by running NGINX Plus")
ErrUnsupportedVer means that client's API version is not supported by NGINX plus API
Functions ¶
This section is empty.
Types ¶
type Connections ¶
Connections represents connection related stats.
type HTTPRequests ¶
HTTPRequests represents HTTP request related stats.
type HealthChecks ¶
type HealthChecks struct { Checks uint64 Fails uint64 Unhealthy uint64 LastPassed bool `json:"last_passed"` }
HealthChecks represents health check related stats for a peer.
type KeyValPairs ¶
KeyValPairs are the key-value pairs stored in a zone.
type KeyValPairsByZone ¶
type KeyValPairsByZone map[string]KeyValPairs
KeyValPairsByZone are the KeyValPairs for all zones, by zone name.
type LocationZone ¶ added in v0.5.0
type LocationZone struct { Requests int64 Responses Responses Discarded int64 Received int64 Sent int64 }
LocationZone represents location_zones related stats
type LocationZones ¶ added in v0.5.0
type LocationZones map[string]LocationZone
LocationZones represents location_zones related stats
type NginxClient ¶
type NginxClient struct {
// contains filtered or unexported fields
}
NginxClient lets you access NGINX Plus API.
func NewNginxClient ¶
func NewNginxClient(httpClient *http.Client, apiEndpoint string) (*NginxClient, error)
NewNginxClient creates an NginxClient with the latest supported version.
func NewNginxClientWithVersion ¶ added in v0.8.0
func NewNginxClientWithVersion(httpClient *http.Client, apiEndpoint string, version int) (*NginxClient, error)
NewNginxClientWithVersion creates an NginxClient with the given version of NGINX Plus API.
func (*NginxClient) AddHTTPServer ¶
func (client *NginxClient) AddHTTPServer(upstream string, server UpstreamServer) error
AddHTTPServer adds the server to the upstream.
func (*NginxClient) AddKeyValPair ¶
func (client *NginxClient) AddKeyValPair(zone string, key string, val string) error
AddKeyValPair adds a new key/value pair to a given HTTP zone.
func (*NginxClient) AddStreamKeyValPair ¶
func (client *NginxClient) AddStreamKeyValPair(zone string, key string, val string) error
AddStreamKeyValPair adds a new key/value pair to a given Stream zone.
func (*NginxClient) AddStreamServer ¶
func (client *NginxClient) AddStreamServer(upstream string, server StreamUpstreamServer) error
AddStreamServer adds the stream server to the upstream.
func (*NginxClient) CheckIfStreamUpstreamExists ¶
func (client *NginxClient) CheckIfStreamUpstreamExists(upstream string) error
CheckIfStreamUpstreamExists checks if the stream upstream exists in NGINX. If the upstream doesn't exist, it returns the error.
func (*NginxClient) CheckIfUpstreamExists ¶
func (client *NginxClient) CheckIfUpstreamExists(upstream string) error
CheckIfUpstreamExists checks if the upstream exists in NGINX. If the upstream doesn't exist, it returns the error.
func (*NginxClient) DeleteHTTPServer ¶
func (client *NginxClient) DeleteHTTPServer(upstream string, server string) error
DeleteHTTPServer the server from the upstream.
func (*NginxClient) DeleteKeyValPairs ¶
func (client *NginxClient) DeleteKeyValPairs(zone string) error
DeleteKeyValPairs deletes all the key-value pairs in a given HTTP zone.
func (*NginxClient) DeleteKeyValuePair ¶
func (client *NginxClient) DeleteKeyValuePair(zone string, key string) error
DeleteKeyValuePair deletes the key/value pair for a key in a given HTTP zone.
func (*NginxClient) DeleteStreamKeyValPairs ¶
func (client *NginxClient) DeleteStreamKeyValPairs(zone string) error
DeleteStreamKeyValPairs deletes all the key-value pairs in a given Stream zone.
func (*NginxClient) DeleteStreamKeyValuePair ¶
func (client *NginxClient) DeleteStreamKeyValuePair(zone string, key string) error
DeleteStreamKeyValuePair deletes the key/value pair for a key in a given Stream zone.
func (*NginxClient) DeleteStreamServer ¶
func (client *NginxClient) DeleteStreamServer(upstream string, server string) error
DeleteStreamServer the server from the upstream.
func (*NginxClient) GetAllKeyValPairs ¶
func (client *NginxClient) GetAllKeyValPairs() (KeyValPairsByZone, error)
GetAllKeyValPairs fetches all key/value pairs for all HTTP zones.
func (*NginxClient) GetAllStreamKeyValPairs ¶
func (client *NginxClient) GetAllStreamKeyValPairs() (KeyValPairsByZone, error)
GetAllStreamKeyValPairs fetches all key/value pairs for all Stream zones.
func (*NginxClient) GetConnections ¶ added in v0.7.0
func (client *NginxClient) GetConnections() (*Connections, error)
GetConnections returns Connections stats.
func (*NginxClient) GetHTTPRequests ¶ added in v0.7.0
func (client *NginxClient) GetHTTPRequests() (*HTTPRequests, error)
GetHTTPRequests returns http/requests stats.
func (*NginxClient) GetHTTPServers ¶
func (client *NginxClient) GetHTTPServers(upstream string) ([]UpstreamServer, error)
GetHTTPServers returns the servers of the upstream from NGINX.
func (*NginxClient) GetKeyValPairs ¶
func (client *NginxClient) GetKeyValPairs(zone string) (KeyValPairs, error)
GetKeyValPairs fetches key/value pairs for a given HTTP zone.
func (*NginxClient) GetLocationZones ¶ added in v0.7.0
func (client *NginxClient) GetLocationZones() (*LocationZones, error)
GetLocationZones returns http/location_zones stats.
func (*NginxClient) GetNginxInfo ¶ added in v0.7.0
func (client *NginxClient) GetNginxInfo() (*NginxInfo, error)
GetNginxInfo returns Nginx stats.
func (*NginxClient) GetProcesses ¶ added in v0.7.0
func (client *NginxClient) GetProcesses() (*Processes, error)
GetProcesses returns Processes stats.
func (*NginxClient) GetResolvers ¶ added in v0.7.0
func (client *NginxClient) GetResolvers() (*Resolvers, error)
GetResolvers returns Resolvers stats.
func (*NginxClient) GetSSL ¶ added in v0.7.0
func (client *NginxClient) GetSSL() (*SSL, error)
GetSSL returns SSL stats.
func (*NginxClient) GetServerZones ¶ added in v0.7.0
func (client *NginxClient) GetServerZones() (*ServerZones, error)
GetServerZones returns http/server_zones stats.
func (*NginxClient) GetSlabs ¶ added in v0.7.0
func (client *NginxClient) GetSlabs() (*Slabs, error)
GetSlabs returns Slabs stats.
func (*NginxClient) GetStats ¶
func (client *NginxClient) GetStats() (*Stats, error)
GetStats gets process, slab, connection, request, ssl, zone, stream zone, upstream and stream upstream related stats from the NGINX Plus API.
func (*NginxClient) GetStreamKeyValPairs ¶
func (client *NginxClient) GetStreamKeyValPairs(zone string) (KeyValPairs, error)
GetStreamKeyValPairs fetches key/value pairs for a given Stream zone.
func (*NginxClient) GetStreamServerZones ¶ added in v0.7.0
func (client *NginxClient) GetStreamServerZones() (*StreamServerZones, error)
GetStreamServerZones returns stream/server_zones stats.
func (*NginxClient) GetStreamServers ¶
func (client *NginxClient) GetStreamServers(upstream string) ([]StreamUpstreamServer, error)
GetStreamServers returns the stream servers of the upstream from NGINX.
func (*NginxClient) GetStreamUpstreams ¶ added in v0.7.0
func (client *NginxClient) GetStreamUpstreams() (*StreamUpstreams, error)
GetStreamUpstreams returns stream/upstreams stats.
func (*NginxClient) GetStreamZoneSync ¶ added in v0.7.0
func (client *NginxClient) GetStreamZoneSync() (*StreamZoneSync, error)
GetStreamZoneSync returns stream/zone_sync stats.
func (*NginxClient) GetUpstreams ¶ added in v0.7.0
func (client *NginxClient) GetUpstreams() (*Upstreams, error)
GetUpstreams returns http/upstreams stats.
func (*NginxClient) ModifyKeyValPair ¶
func (client *NginxClient) ModifyKeyValPair(zone string, key string, val string) error
ModifyKeyValPair modifies the value of an existing key in a given HTTP zone.
func (*NginxClient) ModifyStreamKeyValPair ¶
func (client *NginxClient) ModifyStreamKeyValPair(zone string, key string, val string) error
ModifyStreamKeyValPair modifies the value of an existing key in a given Stream zone.
func (*NginxClient) UpdateHTTPServer ¶ added in v0.6.0
func (client *NginxClient) UpdateHTTPServer(upstream string, server UpstreamServer) error
UpdateHTTPServer updates the server of the upstream.
func (*NginxClient) UpdateHTTPServers ¶
func (client *NginxClient) UpdateHTTPServers(upstream string, servers []UpstreamServer) (added []UpstreamServer, deleted []UpstreamServer, updated []UpstreamServer, err error)
UpdateHTTPServers updates the servers of the upstream. Servers that are in the slice, but don't exist in NGINX will be added to NGINX. Servers that aren't in the slice, but exist in NGINX, will be removed from NGINX. Servers that are in the slice and exist in NGINX, but have different parameters, will be updated.
func (*NginxClient) UpdateStreamServer ¶ added in v0.6.0
func (client *NginxClient) UpdateStreamServer(upstream string, server StreamUpstreamServer) error
UpdateStreamServer updates the stream server of the upstream.
func (*NginxClient) UpdateStreamServers ¶
func (client *NginxClient) UpdateStreamServers(upstream string, servers []StreamUpstreamServer) (added []StreamUpstreamServer, deleted []StreamUpstreamServer, updated []StreamUpstreamServer, err error)
UpdateStreamServers updates the servers of the upstream. Servers that are in the slice, but don't exist in NGINX will be added to NGINX. Servers that aren't in the slice, but exist in NGINX, will be removed from NGINX. Servers that are in the slice and exist in NGINX, but have different parameters, will be updated.
func (*NginxClient) Version ¶ added in v0.8.0
func (client *NginxClient) Version() int
Version returns client's current N+ API version.
type NginxInfo ¶
type NginxInfo struct { Version string Build string Address string Generation uint64 LoadTimestamp string `json:"load_timestamp"` Timestamp string ProcessID uint64 `json:"pid"` ParentProcessID uint64 `json:"ppid"` }
NginxInfo contains general information about NGINX Plus.
type Peer ¶
type Peer struct { ID int Server string Service string Name string Backup bool Weight int State string Active uint64 MaxConns int `json:"max_conns"` Requests uint64 Responses Responses Sent uint64 Received uint64 Fails uint64 HealthChecks HealthChecks `json:"health_checks"` Downtime uint64 Downstart string Selected string HeaderTime uint64 `json:"header_time"` ResponseTime uint64 `json:"response_time"` }
Peer represents peer (upstream server) related stats.
type Processes ¶ added in v0.7.0
type Processes struct {
Respawned int64
}
Processes represents processes related stats
type Resolver ¶ added in v0.5.0
type Resolver struct { Requests ResolverRequests `json:"requests"` Responses ResolverResponses `json:"responses"` }
Resolver represents resolvers related stats
type ResolverRequests ¶ added in v0.5.0
ResolverRequests represents resolver requests
type ResolverResponses ¶ added in v0.5.0
type ResolverResponses struct { Noerror int64 Formerr int64 Servfail int64 Nxdomain int64 Notimp int64 Refused int64 Timedout int64 Unknown int64 }
ResolverResponses represents resolver responses
type Responses ¶
type Responses struct { Responses1xx uint64 `json:"1xx"` Responses2xx uint64 `json:"2xx"` Responses3xx uint64 `json:"3xx"` Responses4xx uint64 `json:"4xx"` Responses5xx uint64 `json:"5xx"` Total uint64 }
Responses represents HTTP response related stats.
type SSL ¶
type SSL struct { Handshakes uint64 HandshakesFailed uint64 `json:"handshakes_failed"` SessionReuses uint64 `json:"session_reuses"` }
SSL represents SSL related stats.
type ServerZone ¶
type ServerZone struct { Processing uint64 Requests uint64 Responses Responses Discarded uint64 Received uint64 Sent uint64 }
ServerZone represents server zone related stats.
type ServerZones ¶
type ServerZones map[string]ServerZone
ServerZones is map of server zone stats by zone name
type Sessions ¶
type Sessions struct { Sessions2xx uint64 `json:"2xx"` Sessions4xx uint64 `json:"4xx"` Sessions5xx uint64 `json:"5xx"` Total uint64 }
Sessions represents stream session related stats.
type Stats ¶
type Stats struct { NginxInfo NginxInfo Processes Processes Connections Connections Slabs Slabs HTTPRequests HTTPRequests SSL SSL ServerZones ServerZones Upstreams Upstreams StreamServerZones StreamServerZones StreamUpstreams StreamUpstreams StreamZoneSync *StreamZoneSync LocationZones LocationZones Resolvers Resolvers }
Stats represents NGINX Plus stats fetched from the NGINX Plus API. https://nginx.org/en/docs/http/ngx_http_api_module.html
type StreamPeer ¶
type StreamPeer struct { ID int Server string Service string Name string Backup bool Weight int State string Active uint64 MaxConns int `json:"max_conns"` Connections uint64 ConnectTime int `json:"connect_time"` FirstByteTime int `json:"first_byte_time"` ResponseTime uint64 `json:"response_time"` Sent uint64 Received uint64 Fails uint64 HealthChecks HealthChecks `json:"health_checks"` Downtime uint64 Downstart string Selected string }
StreamPeer represents peer (stream upstream server) related stats.
type StreamServerZone ¶
type StreamServerZone struct { Processing uint64 Connections uint64 Sessions Sessions Discarded uint64 Received uint64 Sent uint64 }
StreamServerZone represents stream server zone related stats.
type StreamServerZones ¶
type StreamServerZones map[string]StreamServerZone
StreamServerZones is map of stream server zone stats by zone name.
type StreamUpstream ¶
type StreamUpstream struct { Peers []StreamPeer Zombies int Zone string }
StreamUpstream represents stream upstream related stats.
type StreamUpstreamServer ¶
type StreamUpstreamServer struct { ID int `json:"id,omitempty"` Server string `json:"server"` MaxConns *int `json:"max_conns,omitempty"` MaxFails *int `json:"max_fails,omitempty"` FailTimeout string `json:"fail_timeout,omitempty"` SlowStart string `json:"slow_start,omitempty"` Backup *bool `json:"backup,omitempty"` Down *bool `json:"down,omitempty"` Weight *int `json:"weight,omitempty"` Service string `json:"service,omitempty"` }
StreamUpstreamServer lets you configure Stream upstreams.
type StreamUpstreams ¶
type StreamUpstreams map[string]StreamUpstream
StreamUpstreams is a map of stream upstream stats by upstream name.
type StreamZoneSync ¶
type StreamZoneSync struct { Zones map[string]SyncZone Status StreamZoneSyncStatus }
StreamZoneSync represents the sync information per each shared memory zone and the sync information per node in a cluster
type StreamZoneSyncStatus ¶
type StreamZoneSyncStatus struct { BytesIn uint64 `json:"bytes_in"` MsgsIn uint64 `json:"msgs_in"` MsgsOut uint64 `json:"msgs_out"` BytesOut uint64 `json:"bytes_out"` NodesOnline uint64 `json:"nodes_online"` }
StreamZoneSyncStatus represents the status of a shared memory zone
type SyncZone ¶
type SyncZone struct { RecordsPending uint64 `json:"records_pending"` RecordsTotal uint64 `json:"records_total"` }
SyncZone represents the synchronization status of a shared memory zone
type UpstreamServer ¶
type UpstreamServer struct { ID int `json:"id,omitempty"` Server string `json:"server"` MaxConns *int `json:"max_conns,omitempty"` MaxFails *int `json:"max_fails,omitempty"` FailTimeout string `json:"fail_timeout,omitempty"` SlowStart string `json:"slow_start,omitempty"` Route string `json:"route,omitempty"` Backup *bool `json:"backup,omitempty"` Down *bool `json:"down,omitempty"` Drain bool `json:"drain,omitempty"` Weight *int `json:"weight,omitempty"` Service string `json:"service,omitempty"` }
UpstreamServer lets you configure HTTP upstreams.