client

package
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 26, 2020 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// APIVersion is the default version of NGINX Plus API supported by the client.
	APIVersion = 5
)

Variables

View Source
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

type Connections struct {
	Accepted uint64
	Dropped  uint64
	Active   uint64
	Idle     uint64
}

Connections represents connection related stats.

type HTTPRequests

type HTTPRequests struct {
	Total   uint64
	Current uint64
}

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

type KeyValPairs map[string]string

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 Pages added in v0.7.0

type Pages struct {
	Used uint64
	Free uint64
}

Pages represents the slab memory usage stats.

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
	Unavail      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 Queue

type Queue struct {
	Size      int
	MaxSize   int `json:"max_size"`
	Overflows uint64
}

Queue represents queue related stats for an upstream.

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

type ResolverRequests struct {
	Name int64
	Srv  int64
	Addr int64
}

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 Resolvers added in v0.5.0

type Resolvers map[string]Resolver

Resolvers represents resolvers related stats

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 Slab added in v0.7.0

type Slab struct {
	Pages Pages
	Slots Slots
}

Slab represents slab related stats.

type Slabs added in v0.7.0

type Slabs map[string]Slab

Slabs is map of slab stats by zone name.

type Slot added in v0.7.0

type Slot struct {
	Used  uint64
	Free  uint64
	Reqs  uint64
	Fails uint64
}

Slot represents slot related stats.

type Slots added in v0.7.0

type Slots map[string]Slot

Slots is a map of slots by slot size

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
	Unavail       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 Upstream

type Upstream struct {
	Peers      []Peer
	Keepalives int
	Zombies    int
	Zone       string
	Queue      Queue
}

Upstream represents upstream related stats.

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.

type Upstreams

type Upstreams map[string]Upstream

Upstreams is a map of upstream stats by upstream name.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL