README
¶
Nginx Plus Input Plugin
Nginx Plus is a commercial version of the open source web server Nginx. The use this plugin you will need a license. For more information about the differences between Nginx (F/OSS) and Nginx Plus, click here.
Structures for Nginx Plus have been built based on history of status module documentation
Configuration:
# Read Nginx Plus' advanced status information
[[inputs.nginx_plus]]
## An array of Nginx status URIs to gather stats.
urls = ["http://localhost/status"]
Measurements & Fields:
- nginx_plus_processes
- respawned
- nginx_plus_connections
- accepted
- dropped
- active
- idle
- nginx_plus_ssl
- handshakes
- handshakes_failed
- session_reuses
- nginx_plus_requests
- total
- current
- nginx_plus_upstream, nginx_plus_stream_upstream
- keepalive
- zombies
- nginx_plus_upstream_peer, nginx_plus_stream_upstream_peer
- requests
- unavail
- healthchecks_checks
- header_time
- response_time
- state
- active
- downstart
- healthchecks_last_passed
- weight
- responses_1xx
- responses_2xx
- responses_3xx
- responses_4xx
- responses_5xx
- received
- selected
- healthchecks_fails
- healthchecks_unhealthy
- backup
- responses_total
- sent
- fails
- downtime
Tags:
-
nginx_plus_processes, nginx_plus_connections, nginx_plus_ssl, nginx_plus_requests
- server
- port
-
nginx_plus_upstream, nginx_plus_stream_upstream
- upstream
- server
- port
-
nginx_plus_upstream_peer, nginx_plus_stream_upstream_peer
- id
- upstream
- server
- port
- upstream_address
Example Output:
Using this configuration:
[[inputs.nginx_plus]]
## An array of Nginx Plus status URIs to gather stats.
urls = ["http://localhost/status"]
When run with:
./telegraf -config telegraf.conf -input-filter nginx_plus -test
It produces:
* Plugin: inputs.nginx_plus, Collection 1
> nginx_plus_processes,server=localhost,port=12021,host=word.local respawned=0i 1505782513000000000
> nginx_plus_connections,server=localhost,port=12021,host=word.local accepted=5535735212i,dropped=10140186i,active=9541i,idle=67540i 1505782513000000000
> nginx_plus_ssl,server=localhost,port=12021,host=word.local handshakes=0i,handshakes_failed=0i,session_reuses=0i 1505782513000000000
> nginx_plus_requests,server=localhost,port=12021,host=word.local total=186780541173i,current=9037i 1505782513000000000
> nginx_plus_upstream,port=12021,host=word.local,upstream=dataserver80,server=localhost keepalive=0i,zombies=0i 1505782513000000000
> nginx_plus_upstream_peer,upstream=dataserver80,upstream_address=10.10.102.181:80,id=0,server=localhost,port=12021,host=word.local sent=53806910399i,received=7516943964i,fails=207i,downtime=2325979i,selected=1505782512000i,backup=false,active=6i,responses_4xx=6935i,header_time=80i,response_time=80i,healthchecks_last_passed=true,responses_1xx=0i,responses_2xx=36299890i,responses_5xx=360450i,responses_total=36667275i,unavail=154i,downstart=0i,state="up",requests=36673741i,responses_3xx=0i,healthchecks_unhealthy=5i,weight=1i,healthchecks_checks=177209i,healthchecks_fails=29i 1505782513000000000
> nginx_plus_stream_upstream,server=localhost,port=12021,host=word.local,upstream=dataserver443 zombies=0i 1505782513000000000
> nginx_plus_stream_upstream_peer,server=localhost,upstream_address=10.10.102.181:443,id=0,port=12021,host=word.local,upstream=dataserver443 active=1i,healthchecks_unhealthy=1i,weight=1i,unavail=0i,connect_time=24i,first_byte_time=78i,healthchecks_last_passed=true,state="up",sent=4457713140i,received=698065272i,fails=0i,healthchecks_checks=178421i,downstart=0i,selected=1505782512000i,response_time=5156i,backup=false,connections=56251i,healthchecks_fails=20i,downtime=391017i 1505782513000000000
Reference material
Subsequent versions of status response structure available here:
Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BasicHitStats ¶
type ExtendedHitStats ¶
type ExtendedHitStats struct { BasicHitStats ResponsesWritten int64 `json:"responses_written"` BytesWritten int64 `json:"bytes_written"` }
type HealthCheckStats ¶
type NginxPlus ¶
type NginxPlus struct { Urls []string `toml:"urls"` ResponseTimeout internal.Duration `toml:"response_timeout"` tls.ClientConfig // contains filtered or unexported fields }
func (*NginxPlus) Description ¶
func (*NginxPlus) SampleConfig ¶
type ResponseStats ¶
type Status ¶
type Status struct { Version int `json:"version"` NginxVersion string `json:"nginx_version"` Address string `json:"address"` Generation *int `json:"generation"` // added in version 5 LoadTimestamp *int64 `json:"load_timestamp"` // added in version 2 Timestamp int64 `json:"timestamp"` Pid *int `json:"pid"` // added in version 6 Processes *struct { Respawned *int `json:"respawned"` } `json:"processes"` Connections struct { Accepted int64 `json:"accepted"` Dropped int64 `json:"dropped"` Active int64 `json:"active"` Idle int64 `json:"idle"` } `json:"connections"` Ssl *struct { Handshakes int64 `json:"handshakes"` HandshakesFailed int64 `json:"handshakes_failed"` SessionReuses int64 `json:"session_reuses"` } `json:"ssl"` Requests struct { Total int64 `json:"total"` Current int `json:"current"` } `json:"requests"` ServerZones map[string]struct { Processing int `json:"processing"` Requests int64 `json:"requests"` Responses ResponseStats `json:"responses"` Discarded *int64 `json:"discarded"` // added in version 6 Received int64 `json:"received"` Sent int64 `json:"sent"` } `json:"server_zones"` Upstreams map[string]struct { Peers []struct { ID *int `json:"id"` // added in version 3 Server string `json:"server"` Backup bool `json:"backup"` Weight int `json:"weight"` State string `json:"state"` Active int `json:"active"` Keepalive *int `json:"keepalive"` // removed in version 5 MaxConns *int `json:"max_conns"` // added in version 3 Requests int64 `json:"requests"` Responses ResponseStats `json:"responses"` Sent int64 `json:"sent"` Received int64 `json:"received"` Fails int64 `json:"fails"` Unavail int64 `json:"unavail"` HealthChecks HealthCheckStats `json:"health_checks"` Downtime int64 `json:"downtime"` Downstart int64 `json:"downstart"` Selected *int64 `json:"selected"` // added in version 4 HeaderTime *int64 `json:"header_time"` // added in version 5 ResponseTime *int64 `json:"response_time"` // added in version 5 } `json:"peers"` Keepalive int `json:"keepalive"` Zombies int `json:"zombies"` // added in version 6 Queue *struct { Size int `json:"size"` MaxSize int `json:"max_size"` Overflows int64 `json:"overflows"` } `json:"queue"` } `json:"upstreams"` Caches map[string]struct { Size int64 `json:"size"` MaxSize int64 `json:"max_size"` Cold bool `json:"cold"` Hit BasicHitStats `json:"hit"` Stale BasicHitStats `json:"stale"` Updating BasicHitStats `json:"updating"` Revalidated *BasicHitStats `json:"revalidated"` // added in version 3 Miss ExtendedHitStats `json:"miss"` Expired ExtendedHitStats `json:"expired"` Bypass ExtendedHitStats `json:"bypass"` } `json:"caches"` Stream struct { ServerZones map[string]struct { Processing int `json:"processing"` Connections int `json:"connections"` Sessions *ResponseStats `json:"sessions"` Discarded *int64 `json:"discarded"` // added in version 7 Received int64 `json:"received"` Sent int64 `json:"sent"` } `json:"server_zones"` Upstreams map[string]struct { Peers []struct { ID int `json:"id"` Server string `json:"server"` Backup bool `json:"backup"` Weight int `json:"weight"` State string `json:"state"` Active int `json:"active"` Connections int64 `json:"connections"` ConnectTime *int `json:"connect_time"` FirstByteTime *int `json:"first_byte_time"` ResponseTime *int `json:"response_time"` Sent int64 `json:"sent"` Received int64 `json:"received"` Fails int64 `json:"fails"` Unavail int64 `json:"unavail"` HealthChecks HealthCheckStats `json:"health_checks"` Downtime int64 `json:"downtime"` Downstart int64 `json:"downstart"` Selected int64 `json:"selected"` } `json:"peers"` Zombies int `json:"zombies"` } `json:"upstreams"` } `json:"stream"` }
Click to show internal directories.
Click to hide internal directories.