Documentation ¶
Overview ¶
Package ngx is a Go client library for NGINX Plus API.
Index ¶
- func WithHTTPClient(h *http.Client) option
- func WithVersion(v int) option
- type CacheStats
- type Caches
- type Client
- func (c Client) AddHTTPServer(ctx context.Context, upstream string, server UpstreamServer) error
- func (c Client) AddKeyValPair(ctx context.Context, zone string, key string, val string) error
- func (c Client) AddStreamKeyValPair(ctx context.Context, zone string, key string, val string) error
- func (c Client) AddStreamServer(ctx context.Context, upstream string, server StreamUpstreamServer) error
- func (c Client) CheckIfStreamUpstreamExists(ctx context.Context, upstream string) error
- func (c Client) CheckIfUpstreamExists(ctx context.Context, upstream string) error
- func (c Client) DeleteHTTPServer(ctx context.Context, upstream string, server string) error
- func (c Client) DeleteKeyValPairs(ctx context.Context, zone string) error
- func (c Client) DeleteKeyValuePair(ctx context.Context, zone string, key string) error
- func (c Client) DeleteStreamKeyValPairs(ctx context.Context, zone string) error
- func (c *Client) DeleteStreamKeyValuePair(ctx context.Context, zone string, key string) error
- func (c Client) DeleteStreamServer(ctx context.Context, upstream string, server string) error
- func (c Client) GetAllKeyValPairs(ctx context.Context) (KeyValPairsByZone, error)
- func (c Client) GetAllStreamKeyValPairs(ctx context.Context) (KeyValPairsByZone, error)
- func (c Client) GetCaches(ctx context.Context) (Caches, error)
- func (c Client) GetConnections(ctx context.Context) (Connections, error)
- func (c Client) GetHTTPConnectionsLimit(ctx context.Context) (HTTPLimitConnections, error)
- func (c Client) GetHTTPLimitReqs(ctx context.Context) (HTTPLimitRequests, error)
- func (c Client) GetHTTPRequests(ctx context.Context) (HTTPRequests, error)
- func (c Client) GetHTTPServers(ctx context.Context, upstream string) ([]UpstreamServer, error)
- func (c Client) GetKeyValPairs(ctx context.Context, zone string) (KeyValPairs, error)
- func (c Client) GetLocationZones(ctx context.Context) (LocationZones, error)
- func (c Client) GetNGINXStatus(ctx context.Context, fields ...string) (NginxInfo, error)
- func (c Client) GetNginxInfo(ctx context.Context) (NginxInfo, error)
- func (c Client) GetProcesses(ctx context.Context) (Processes, error)
- func (c Client) GetResolvers(ctx context.Context) (Resolvers, error)
- func (c Client) GetSSL(ctx context.Context) (SSL, error)
- func (c *Client) GetServerZones(ctx context.Context) (ServerZones, error)
- func (c Client) GetSlabs(ctx context.Context) (Slabs, error)
- func (c Client) GetStats(ctx context.Context) (_ Stats, err error)
- func (c Client) GetStreamConnectionsLimit(ctx context.Context) (StreamLimitConnections, error)
- func (c Client) GetStreamKeyValPairs(ctx context.Context, zone string) (KeyValPairs, error)
- func (c Client) GetStreamServerZones(ctx context.Context) (StreamServerZones, error)
- func (c Client) GetStreamServers(ctx context.Context, upstream string) ([]StreamUpstreamServer, error)
- func (c Client) GetStreamUpstreams(ctx context.Context) (StreamUpstreams, error)
- func (c Client) GetStreamZoneSync(ctx context.Context) (StreamZoneSync, error)
- func (c Client) GetUpstreams(ctx context.Context) (Upstreams, error)
- func (c Client) ModifyKeyValPair(ctx context.Context, zone string, key string, val string) error
- func (c Client) ModifyStreamKeyValPair(ctx context.Context, zone string, key string, val string) error
- func (c Client) UpdateHTTPServer(ctx context.Context, upstream string, server UpstreamServer) error
- func (c Client) UpdateHTTPServers(ctx context.Context, upstream string, servers []UpstreamServer) ([]UpstreamServer, []UpstreamServer, []UpstreamServer, error)
- func (c Client) UpdateStreamServer(ctx context.Context, upstream string, server StreamUpstreamServer) error
- func (c Client) UpdateStreamServers(ctx context.Context, upstream string, servers []StreamUpstreamServer) ([]StreamUpstreamServer, []StreamUpstreamServer, []StreamUpstreamServer, error)
- type Connections
- type ExtendedCacheStats
- type HTTPCache
- type HTTPCodes
- type HTTPLimitConnections
- type HTTPLimitRequest
- type HTTPLimitRequests
- type HTTPRequests
- type HealthChecks
- type KeyValPairs
- type KeyValPairsByZone
- type LimitConnection
- type LocationZone
- type LocationZones
- 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 StreamLimitConnections
- 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 ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithHTTPClient ¶
WithHTTPClient is a func option that configures NGINX Client to use a custom HTTP Client.
func WithVersion ¶
func WithVersion(v int) option
WithVersion is a func option that configures version of the NGINX API the Client talks to. It is user's responsibility to provide valid version of the NGINX Plus that the Client talks to. Valid versions are 4,5,6,7,8. The Client's default version is 8.
Types ¶
type CacheStats ¶
CacheStats are basic cache stats.
type Client ¶
NginxClient lets you access NGINX Plus API.
func NewClient ¶
NewClient takes NGINX base URL and constructs a new default client. The client can be customized by passing functional options that configure client version and http.Client.
func (Client) AddHTTPServer ¶
AddHTTPServer adds the server to the upstream.
func (Client) AddKeyValPair ¶
AddKeyValPair adds a new key/value pair to a given HTTP zone.
func (Client) AddStreamKeyValPair ¶
AddStreamKeyValPair adds a new key/value pair to a given Stream zone.
func (Client) AddStreamServer ¶
func (c Client) AddStreamServer(ctx context.Context, upstream string, server StreamUpstreamServer) error
AddStreamServer adds the stream server to the upstream.
func (Client) CheckIfStreamUpstreamExists ¶
CheckIfStreamUpstreamExists checks if the stream upstream exists in NGINX. If the upstream doesn't exist, it returns the error.
func (Client) CheckIfUpstreamExists ¶
CheckIfUpstreamExists checks if the upstream exists in NGINX. If the upstream doesn't exist, it returns the error.
func (Client) DeleteHTTPServer ¶
DeleteHTTPServer the server from the upstream.
func (Client) DeleteKeyValPairs ¶
DeleteKeyValPairs deletes all the key-value pairs in a given HTTP zone.
func (Client) DeleteKeyValuePair ¶
DeleteKeyValuePair deletes the key/value pair for a key in a given HTTP zone.
func (Client) DeleteStreamKeyValPairs ¶
DeleteStreamKeyValPairs deletes all the key-value pairs in a given Stream zone.
func (*Client) DeleteStreamKeyValuePair ¶
DeleteStreamKeyValuePair deletes the key/value pair for a key in a given Stream zone.
func (Client) DeleteStreamServer ¶
DeleteStreamServer the server from the upstream.
func (Client) GetAllKeyValPairs ¶
func (c Client) GetAllKeyValPairs(ctx context.Context) (KeyValPairsByZone, error)
GetAllKeyValPairs fetches all key/value pairs for all HTTP zones.
func (Client) GetAllStreamKeyValPairs ¶
func (c Client) GetAllStreamKeyValPairs(ctx context.Context) (KeyValPairsByZone, error)
GetAllStreamKeyValPairs fetches all key/value pairs for all Stream zones.
func (Client) GetConnections ¶
func (c Client) GetConnections(ctx context.Context) (Connections, error)
GetConnections returns Connections stats.
func (Client) GetHTTPConnectionsLimit ¶
func (c Client) GetHTTPConnectionsLimit(ctx context.Context) (HTTPLimitConnections, error)
GetHTTPConnectionsLimit returns http/limit_conns stats.
func (Client) GetHTTPLimitReqs ¶
func (c Client) GetHTTPLimitReqs(ctx context.Context) (HTTPLimitRequests, error)
GetHTTPLimitReqs returns http/limit_reqs stats.
func (Client) GetHTTPRequests ¶
func (c Client) GetHTTPRequests(ctx context.Context) (HTTPRequests, error)
GetHTTPRequests returns http/requests stats.
func (Client) GetHTTPServers ¶
GetHTTPServers returns the servers of the upstream from NGINX.
func (Client) GetKeyValPairs ¶
GetKeyValPairs fetches key/value pairs for a given HTTP zone.
func (Client) GetLocationZones ¶
func (c Client) GetLocationZones(ctx context.Context) (LocationZones, error)
GetLocationZones returns http/location_zones stats.
func (Client) GetNGINXStatus ¶
Returns nginx version, build name, address, number of configuration reloads, IDs of master and worker processes. Limits which fields of nginx running instance will be output.
Available fields: "version", "build", "address", "generation", "load_timestamp", "timestamp", "pid", "ppid".
func (Client) GetNginxInfo ¶
GetNginxInfo returns status of nginx running instance. Returned status includes nginx version, build name, address, number of configuration reloads, IDs of master and worker processes.
func (Client) GetProcesses ¶
GetProcesses returns Processes stats.
func (Client) GetResolvers ¶
GetResolvers returns Resolvers stats.
func (*Client) GetServerZones ¶
func (c *Client) GetServerZones(ctx context.Context) (ServerZones, error)
GetServerZones returns http/server_zones stats.
func (Client) GetStats ¶
GetStats gets process, slab, connection, request, ssl, zone, stream zone, upstream and stream upstream related stats from the NGINX Plus API.
func (Client) GetStreamConnectionsLimit ¶
func (c Client) GetStreamConnectionsLimit(ctx context.Context) (StreamLimitConnections, error)
GetStreamConnectionsLimit returns stream/limit_conns stats.
func (Client) GetStreamKeyValPairs ¶
GetStreamKeyValPairs fetches key/value pairs for a given Stream zone.
func (Client) GetStreamServerZones ¶
func (c Client) GetStreamServerZones(ctx context.Context) (StreamServerZones, error)
GetStreamServerZones returns stream/server_zones stats.
func (Client) GetStreamServers ¶
func (c Client) GetStreamServers(ctx context.Context, upstream string) ([]StreamUpstreamServer, error)
GetStreamServers returns the stream servers of the upstream from NGINX.
func (Client) GetStreamUpstreams ¶
func (c Client) GetStreamUpstreams(ctx context.Context) (StreamUpstreams, error)
GetStreamUpstreams returns stream/upstreams stats.
func (Client) GetStreamZoneSync ¶
func (c Client) GetStreamZoneSync(ctx context.Context) (StreamZoneSync, error)
GetStreamZoneSync returns stream/zone_sync stats.
func (Client) GetUpstreams ¶
GetUpstreams returns http/upstreams stats.
func (Client) ModifyKeyValPair ¶
ModifyKeyValPair modifies the value of an existing key in a given HTTP zone.
func (Client) ModifyStreamKeyValPair ¶
func (c Client) ModifyStreamKeyValPair(ctx context.Context, zone string, key string, val string) error
Modify10KeyValPair modifies the value of an existing key in a given Stream zone.
func (Client) UpdateHTTPServer ¶
UpdateHTTPServer updates the server of the upstream.
func (Client) UpdateHTTPServers ¶
func (c Client) UpdateHTTPServers(ctx context.Context, upstream string, servers []UpstreamServer) ([]UpstreamServer, []UpstreamServer, []UpstreamServer, 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 (Client) UpdateStreamServer ¶
func (c Client) UpdateStreamServer(ctx context.Context, upstream string, server StreamUpstreamServer) error
UpdateStreamServer updates the stream server of the upstream.
func (Client) UpdateStreamServers ¶
func (c Client) UpdateStreamServers(ctx context.Context, upstream string, servers []StreamUpstreamServer) ([]StreamUpstreamServer, []StreamUpstreamServer, []StreamUpstreamServer, 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.
type Connections ¶
Connections represents connection related stats.
type ExtendedCacheStats ¶
type ExtendedCacheStats struct { CacheStats ResponsesWritten uint64 `json:"responses_written"` BytesWritten uint64 `json:"bytes_written"` }
ExtendedCacheStats are extended cache stats.
type HTTPCache ¶
type HTTPCache struct { Size uint64 MaxSize uint64 `json:"max_size"` Cold bool Hit CacheStats Stale CacheStats Updating CacheStats Revalidated CacheStats Miss CacheStats Expired ExtendedCacheStats Bypass ExtendedCacheStats }
HTTPCache represents a zone's HTTP Cache
type HTTPCodes ¶
type HTTPCodes struct { HTTPContinue uint64 `json:"100,omitempty"` HTTPSwitchingProtocols uint64 `json:"101,omitempty"` HTTPProcessing uint64 `json:"102,omitempty"` HTTPOk uint64 `json:"200,omitempty"` HTTPCreated uint64 `json:"201,omitempty"` HTTPAccepted uint64 `json:"202,omitempty"` HTTPNoContent uint64 `json:"204,omitempty"` HTTPPartialContent uint64 `json:"206,omitempty"` HTTPSpecialResponse uint64 `json:"300,omitempty"` HTTPMovedPermanently uint64 `json:"301,omitempty"` HTTPMovedTemporarily uint64 `json:"302,omitempty"` HTTPSeeOther uint64 `json:"303,omitempty"` HTTPNotModified uint64 `json:"304,omitempty"` HTTPTemporaryRedirect uint64 `json:"307,omitempty"` HTTPBadRequest uint64 `json:"400,omitempty"` HTTPForbidden uint64 `json:"403,omitempty"` HTTPNotFound uint64 `json:"404,omitempty"` HTTPNotAllowed uint64 `json:"405,omitempty"` HTTPRequestTimeOut uint64 `json:"408,omitempty"` HTTPConflict uint64 `json:"409,omitempty"` HTTPLengthRequired uint64 `json:"411,omitempty"` HTTPPreconditionFailed uint64 `json:"412,omitempty"` HTTPRequestEntityTooLarge uint64 `json:"413,omitempty"` HTTPRequestURITooLarge uint64 `json:"414,omitempty"` HTTPUnsupportedMediaType uint64 `json:"415,omitempty"` HTTPRangeNotSatisfiable uint64 `json:"416,omitempty"` HTTPTooManyRequests uint64 `json:"429,omitempty"` HTTPClose uint64 `json:"444,omitempty"` HTTPRequestHeaderTooLarge uint64 `json:"494,omitempty"` HTTPSCertError uint64 `json:"495,omitempty"` HTTPSNoCert uint64 `json:"496,omitempty"` HTTPToHTTPS uint64 `json:"497,omitempty"` HTTPClientClosedRequest uint64 `json:"499,omitempty"` HTTPInternalServerError uint64 `json:"500,omitempty"` HTTPNotImplemented uint64 `json:"501,omitempty"` HTTPBadGateway uint64 `json:"502,omitempty"` HTTPGatewayTimeOut uint64 `json:"504,omitempty"` HTTPInsufficientStorage uint64 `json:"507,omitempty"` }
HTTPCodes represents HTTP response codes
type HTTPLimitConnections ¶
type HTTPLimitConnections map[string]LimitConnection
HTTPLimitConnections represents limit connections related stats
type HTTPLimitRequest ¶
type HTTPLimitRequest struct { Passed uint64 Delayed uint64 Rejected uint64 DelayedDryRun uint64 `json:"delayed_dry_run"` RejectedDryRun uint64 `json:"rejected_dry_run"` }
HTTPLimitRequest represents HTTP Requests Rate Limiting
type HTTPLimitRequests ¶
type HTTPLimitRequests map[string]HTTPLimitRequest
HTTPLimitRequests represents limit requests 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 LimitConnection ¶
type LimitConnection struct { Passed uint64 Rejected uint64 RejectedDryRun uint64 `json:"rejected_dry_run"` }
LimitConnection represents Connections Limiting
type LocationZone ¶
type LocationZone struct { Requests int64 Responses Responses Discarded int64 Received int64 Sent int64 }
LocationZone represents location_zones related stats
type LocationZones ¶
type LocationZones map[string]LocationZone
LocationZones represents location_zones related stats
type NginxInfo ¶
type NginxInfo struct { Version string Build string Address string Generation int LoadTimestamp time.Time Timestamp time.Time ProcessID int ParentProcessID int }
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 SSL SSL 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 ¶
type Processes struct {
Respawned int
}
Processes represents processes related stats
type Resolver ¶
type Resolver struct { Requests ResolverRequests `json:"requests"` Responses ResolverResponses `json:"responses"` }
Resolver represents resolvers related stats
type ResolverRequests ¶
ResolverRequests represents resolver requests
type ResolverResponses ¶
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 { Codes HTTPCodes 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 SSL SSL }
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 Caches Caches Processes Processes Connections Connections Slabs Slabs HTTPRequests HTTPRequests SSL SSL ServerZones ServerZones Upstreams Upstreams StreamServerZones StreamServerZones StreamUpstreams StreamUpstreams StreamZoneSync StreamZoneSync LocationZones LocationZones Resolvers Resolvers HTTPLimitRequests HTTPLimitRequests HTTPLimitConnections HTTPLimitConnections StreamLimitConnections StreamLimitConnections }
Stats represents NGINX Plus stats fetched from the NGINX Plus API.
type StreamLimitConnections ¶
type StreamLimitConnections map[string]LimitConnection
StreamLimitConnections represents limit connections related stats
type StreamPeer ¶
type StreamPeer struct { ID int Server string Service string Name string Backup bool Weight int State string Active uint64 SSL SSL 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 SSL SSL }
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.