Update changelog and tidy openntpd input
This commit is contained in:
		
							parent
							
								
									153dd585af
								
							
						
					
					
						commit
						1ad10c8a52
					
				| 
						 | 
				
			
			@ -11,6 +11,7 @@
 | 
			
		|||
 | 
			
		||||
- [docker_log](/plugins/inputs/docker_log) - Contributed by @prashanthjbabu
 | 
			
		||||
- [fireboard](/plugins/inputs/fireboard) - Contributed by @ronnocol
 | 
			
		||||
- [openntpd](/plugins/inputs/openntpd) - Contributed by @aromeyer
 | 
			
		||||
- [uwsgi](/plugins/inputs/uswgi) - Contributed by @blaggacao
 | 
			
		||||
 | 
			
		||||
#### New Parsers
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,8 @@
 | 
			
		|||
# OpenNTPD Input Plugin
 | 
			
		||||
 | 
			
		||||
Get standard NTP query metrics from OpenNTPD ([OpenNTPD - a FREE, easy to use
 | 
			
		||||
implementation of the Network Time Protocol](http://www.openntpd.org/)).
 | 
			
		||||
Get standard NTP query metrics from [OpenNTPD][] using the ntpctl command.
 | 
			
		||||
 | 
			
		||||
[OpenNTPD]: http://www.openntpd.org/
 | 
			
		||||
 | 
			
		||||
Below is the documentation of the various headers returned from the NTP query
 | 
			
		||||
command when running `ntpctl -s peers`.
 | 
			
		||||
| 
						 | 
				
			
			@ -19,40 +20,36 @@ the remote peer or server (RMS, milliseconds);
 | 
			
		|||
- jitter – Mean deviation (jitter) in the time reported for that remote peer or
 | 
			
		||||
server (RMS of difference of multiple time samples, milliseconds);
 | 
			
		||||
 | 
			
		||||
### Configuration:
 | 
			
		||||
### Configuration
 | 
			
		||||
 | 
			
		||||
```toml
 | 
			
		||||
# Get standard NTP query metrics, requires ntpctls executable
 | 
			
		||||
# provided by openntpd packages
 | 
			
		||||
[[inputs.openntpd]]
 | 
			
		||||
  ## If running as a restricted user you can prepend sudo for additional access:
 | 
			
		||||
  #use_sudo = false
 | 
			
		||||
  ## Run ntpctl binary with sudo.
 | 
			
		||||
  # use_sudo = false
 | 
			
		||||
 | 
			
		||||
  ## The default location of the ntpctl binary can be overridden with:
 | 
			
		||||
  binary = "/usr/sbin/ntpctl"
 | 
			
		||||
  ## Location of the ntpctl binary.
 | 
			
		||||
  # binary = "/usr/sbin/ntpctl"
 | 
			
		||||
 | 
			
		||||
  ## The default timeout of 1000ms can be overriden with (in milliseconds):
 | 
			
		||||
  #timeout = 1000
 | 
			
		||||
  ## Maximum time the ntpctl binary is allowed to run.
 | 
			
		||||
  # timeout = "5ms"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Measurements & Fields:
 | 
			
		||||
### Metrics
 | 
			
		||||
 | 
			
		||||
- ntpctl
 | 
			
		||||
  - delay (float, milliseconds)
 | 
			
		||||
  - jitter (float, milliseconds)
 | 
			
		||||
  - offset (float, milliseconds)
 | 
			
		||||
  - poll (int, seconds)
 | 
			
		||||
  - next (int,,seconds)
 | 
			
		||||
  - wt (int)
 | 
			
		||||
  - tl (int)
 | 
			
		||||
  - tags:
 | 
			
		||||
    - remote
 | 
			
		||||
    - stratum
 | 
			
		||||
  - fields:
 | 
			
		||||
    - delay (float, milliseconds)
 | 
			
		||||
    - jitter (float, milliseconds)
 | 
			
		||||
    - offset (float, milliseconds)
 | 
			
		||||
    - poll (int, seconds)
 | 
			
		||||
    - next (int, seconds)
 | 
			
		||||
    - wt (int)
 | 
			
		||||
    - tl (int)
 | 
			
		||||
 | 
			
		||||
### Tags:
 | 
			
		||||
 | 
			
		||||
- All measurements have the following tags:
 | 
			
		||||
  - remote
 | 
			
		||||
  - stratum
 | 
			
		||||
 | 
			
		||||
### Permissions:
 | 
			
		||||
### Permissions
 | 
			
		||||
 | 
			
		||||
It's important to note that this plugin references ntpctl, which may require
 | 
			
		||||
additional permissions to execute successfully.
 | 
			
		||||
| 
						 | 
				
			
			@ -80,17 +77,17 @@ If you use this method, you will need the following in your telegraf config:
 | 
			
		|||
You will also need to update your sudoers file:
 | 
			
		||||
```bash
 | 
			
		||||
$ visudo
 | 
			
		||||
# Add the following line:
 | 
			
		||||
telegraf ALL=(ALL) NOPASSWD: /usr/sbin/ntpctl
 | 
			
		||||
# Add the following lines:
 | 
			
		||||
Cmnd_Alias NTPCTL = /usr/sbin/ntpctl
 | 
			
		||||
telegraf ALL=(ALL) NOPASSWD: NTPCTL
 | 
			
		||||
Defaults!NTPCTL !logfile, !syslog, !pam_session
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Please use the solution you see as most appropriate.
 | 
			
		||||
 | 
			
		||||
### Example Output:
 | 
			
		||||
### Example Output
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ telegraf --config ~/ws/telegraf.conf --input-filter openntpd --test
 | 
			
		||||
* Plugin: openntpd, Collection 1
 | 
			
		||||
> openntpd,remote=194.57.169.1,stratum=2,host=localhost tl=10i,poll=1007i,
 | 
			
		||||
openntpd,remote=194.57.169.1,stratum=2,host=localhost tl=10i,poll=1007i,
 | 
			
		||||
offset=2.295,jitter=3.896,delay=53.766,next=266i,wt=1i 1514454299000000000
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,7 +53,7 @@ type Openntpd struct {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
var defaultBinary = "/usr/sbin/ntpctl"
 | 
			
		||||
var defaultTimeout = internal.Duration{Duration: time.Second}
 | 
			
		||||
var defaultTimeout = internal.Duration{Duration: 5 * time.Second}
 | 
			
		||||
 | 
			
		||||
func (n *Openntpd) Description() string {
 | 
			
		||||
	return "Get standard NTP query metrics from OpenNTPD."
 | 
			
		||||
| 
						 | 
				
			
			@ -61,14 +61,14 @@ func (n *Openntpd) Description() string {
 | 
			
		|||
 | 
			
		||||
func (n *Openntpd) SampleConfig() string {
 | 
			
		||||
	return `
 | 
			
		||||
  ## If running as a restricted user you can prepend sudo for additional access:
 | 
			
		||||
  #use_sudo = false
 | 
			
		||||
  ## Run ntpctl binary with sudo.
 | 
			
		||||
  # use_sudo = false
 | 
			
		||||
 | 
			
		||||
  ## The default location of the ntpctl binary can be overridden with:
 | 
			
		||||
  binary = "/usr/sbin/ntpctl"
 | 
			
		||||
  ## Location of the ntpctl binary.
 | 
			
		||||
  # binary = "/usr/sbin/ntpctl"
 | 
			
		||||
 | 
			
		||||
  ## The default timeout of 1000ms can be overriden with (in milliseconds):
 | 
			
		||||
  timeout = 1000
 | 
			
		||||
  ## Maximum time the ntpctl binary is allowed to run.
 | 
			
		||||
  # timeout = "5ms"
 | 
			
		||||
  `
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -135,12 +135,12 @@ func (n *Openntpd) Gather(acc telegraf.Accumulator) error {
 | 
			
		|||
		// if there is an ntpctl state prefix, remove it and make it it's own tag
 | 
			
		||||
		if strings.ContainsAny(string(fields[0]), "*") {
 | 
			
		||||
			tags["state_prefix"] = string(fields[0])
 | 
			
		||||
			fields = append(fields[:0], fields[1:]...)
 | 
			
		||||
			fields = fields[1:]
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Get tags from output
 | 
			
		||||
		for key, index := range tagI {
 | 
			
		||||
			if len(fields) < index {
 | 
			
		||||
			if index >= len(fields) {
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
			tags[key] = fields[index]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue