chore: clean up markdown lint errors input plugins w to z (#10166)

This commit is contained in:
Mya 2021-11-24 11:50:22 -07:00 committed by GitHub
parent 837465fcd5
commit 7d3531a29b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 184 additions and 122 deletions

View File

@ -3,18 +3,17 @@
This is a Telegraf service plugin that start an http server and register multiple webhook listeners.
```sh
$ telegraf config -input-filter webhooks -output-filter influxdb > config.conf.new
telegraf config -input-filter webhooks -output-filter influxdb > config.conf.new
```
Change the config file to point to the InfluxDB server you are using and adjust the settings to match your environment. Once that is complete:
```sh
$ cp config.conf.new /etc/telegraf/telegraf.conf
$ sudo service telegraf start
cp config.conf.new /etc/telegraf/telegraf.conf
sudo service telegraf start
```
### Configuration:
## Configuration
```toml
[[inputs.webhooks]]
@ -41,8 +40,7 @@ $ sudo service telegraf start
path = "/particle"
```
### Available webhooks
## Available webhooks
- [Filestack](filestack/)
- [Github](github/)
@ -51,8 +49,7 @@ $ sudo service telegraf start
- [Papertrail](papertrail/)
- [Particle](particle/)
### Adding new webhooks plugin
## Adding new webhooks plugin
1. Add your webhook plugin inside the `webhooks` folder
1. Your plugin must implement the `Webhook` interface

View File

@ -11,7 +11,9 @@ See the [webhook doc](https://www.filestack.com/docs/webhooks).
All events for logs the original timestamp, the action and the id.
**Tags:**
* 'action' = `event.action` string
**Fields:**
* 'id' = `event.id` string

View File

@ -1,23 +1,26 @@
# github webhooks
You should configure your Organization's Webhooks to point at the `webhooks` service. To do this go to `github.com/{my_organization}` and click `Settings > Webhooks > Add webhook`. In the resulting menu set `Payload URL` to `http://<my_ip>:1619/github`, `Content type` to `application/json` and under the section `Which events would you like to trigger this webhook?` select 'Send me <b>everything</b>'. By default all of the events will write to the `github_webhooks` measurement, this is configurable by setting the `measurement_name` in the config file.
You should configure your Organization's Webhooks to point at the `webhooks` service. To do this go to `github.com/{my_organization}` and click `Settings > Webhooks > Add webhook`. In the resulting menu set `Payload URL` to `http://<my_ip>:1619/github`, `Content type` to `application/json` and under the section `Which events would you like to trigger this webhook?` select 'Send me **everything**'. By default all of the events will write to the `github_webhooks` measurement, this is configurable by setting the `measurement_name` in the config file.
You can also add a secret that will be used by telegraf to verify the authenticity of the requests.
## Events
The titles of the following sections are links to the full payloads and details for each event. The body contains what information from the event is persisted. The format is as follows:
```
```toml
# TAGS
* 'tagKey' = `tagValue` type
# FIELDS
* 'fieldKey' = `fieldValue` type
```
The tag values and field values show the place on the incoming JSON object where the data is sourced from.
#### [`commit_comment` event](https://developer.github.com/v3/activity/events/types/#commitcommentevent)
The tag values and field values show the place on the incoming JSON object where the data is sourced from.
### [`commit_comment` event](https://developer.github.com/v3/activity/events/types/#commitcommentevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -25,15 +28,17 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
* 'commit' = `event.comment.commit_id` string
* 'comment' = `event.comment.body` string
#### [`create` event](https://developer.github.com/v3/activity/events/types/#createevent)
### [`create` event](https://developer.github.com/v3/activity/events/types/#createevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -41,15 +46,17 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
* 'ref' = `event.ref` string
* 'refType' = `event.ref_type` string
#### [`delete` event](https://developer.github.com/v3/activity/events/types/#deleteevent)
### [`delete` event](https://developer.github.com/v3/activity/events/types/#deleteevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -57,15 +64,17 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
* 'ref' = `event.ref` string
* 'refType' = `event.ref_type` string
#### [`deployment` event](https://developer.github.com/v3/activity/events/types/#deploymentevent)
### [`deployment` event](https://developer.github.com/v3/activity/events/types/#deploymentevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -73,6 +82,7 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
@ -81,9 +91,10 @@ The tag values and field values show the place on the incoming JSON object where
* 'environment' = `event.deployment.environment` string
* 'description' = `event.deployment.description` string
#### [`deployment_status` event](https://developer.github.com/v3/activity/events/types/#deploymentstatusevent)
### [`deployment_status` event](https://developer.github.com/v3/activity/events/types/#deploymentstatusevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -91,6 +102,7 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
@ -101,9 +113,10 @@ The tag values and field values show the place on the incoming JSON object where
* 'depState' = `event.deployment_status.state` string
* 'depDescription' = `event.deployment_status.description` string
#### [`fork` event](https://developer.github.com/v3/activity/events/types/#forkevent)
### [`fork` event](https://developer.github.com/v3/activity/events/types/#forkevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -111,14 +124,16 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
* 'forkee' = `event.forkee.repository` string
#### [`gollum` event](https://developer.github.com/v3/activity/events/types/#gollumevent)
### [`gollum` event](https://developer.github.com/v3/activity/events/types/#gollumevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -126,13 +141,15 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
#### [`issue_comment` event](https://developer.github.com/v3/activity/events/types/#issuecommentevent)
### [`issue_comment` event](https://developer.github.com/v3/activity/events/types/#issuecommentevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -141,6 +158,7 @@ The tag values and field values show the place on the incoming JSON object where
* 'issue' = `event.issue.number` int
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
@ -148,9 +166,10 @@ The tag values and field values show the place on the incoming JSON object where
* 'comments' = `event.issue.comments` int
* 'body' = `event.comment.body` string
#### [`issues` event](https://developer.github.com/v3/activity/events/types/#issuesevent)
### [`issues` event](https://developer.github.com/v3/activity/events/types/#issuesevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -160,15 +179,17 @@ The tag values and field values show the place on the incoming JSON object where
* 'action' = `event.action` string
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
* 'title' = `event.issue.title` string
* 'comments' = `event.issue.comments` int
#### [`member` event](https://developer.github.com/v3/activity/events/types/#memberevent)
### [`member` event](https://developer.github.com/v3/activity/events/types/#memberevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -176,27 +197,31 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
* 'newMember' = `event.sender.login` string
* 'newMemberStatus' = `event.sender.site_admin` bool
#### [`membership` event](https://developer.github.com/v3/activity/events/types/#membershipevent)
### [`membership` event](https://developer.github.com/v3/activity/events/types/#membershipevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'user' = `event.sender.login` string
* 'admin' = `event.sender.site_admin` bool
* 'action' = `event.action` string
**Fields:**
* 'newMember' = `event.sender.login` string
* 'newMemberStatus' = `event.sender.site_admin` bool
#### [`page_build` event](https://developer.github.com/v3/activity/events/types/#pagebuildevent)
### [`page_build` event](https://developer.github.com/v3/activity/events/types/#pagebuildevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -204,13 +229,15 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
#### [`public` event](https://developer.github.com/v3/activity/events/types/#publicevent)
### [`public` event](https://developer.github.com/v3/activity/events/types/#publicevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -218,13 +245,15 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
#### [`pull_request_review_comment` event](https://developer.github.com/v3/activity/events/types/#pullrequestreviewcommentevent)
### [`pull_request_review_comment` event](https://developer.github.com/v3/activity/events/types/#pullrequestreviewcommentevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'action' = `event.action` string
* 'repository' = `event.repository.full_name` string
@ -234,6 +263,7 @@ The tag values and field values show the place on the incoming JSON object where
* 'prNumber' = `event.pull_request.number` int
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
@ -247,9 +277,10 @@ The tag values and field values show the place on the incoming JSON object where
* 'commentFile' = `event.comment.file` string
* 'comment' = `event.comment.body` string
#### [`pull_request` event](https://developer.github.com/v3/activity/events/types/#pullrequestevent)
### [`pull_request` event](https://developer.github.com/v3/activity/events/types/#pullrequestevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'action' = `event.action` string
* 'repository' = `event.repository.full_name` string
@ -259,6 +290,7 @@ The tag values and field values show the place on the incoming JSON object where
* 'prNumber' = `event.pull_request.number` int
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
@ -270,9 +302,10 @@ The tag values and field values show the place on the incoming JSON object where
* 'deletions' = `event.pull_request.deletions` int
* 'changedFiles' = `event.pull_request.changed_files` int
#### [`push` event](https://developer.github.com/v3/activity/events/types/#pushevent)
### [`push` event](https://developer.github.com/v3/activity/events/types/#pushevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -280,6 +313,7 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
@ -287,9 +321,10 @@ The tag values and field values show the place on the incoming JSON object where
* 'before' = `event.before` string
* 'after' = `event.after` string
#### [`repository` event](https://developer.github.com/v3/activity/events/types/#repositoryevent)
### [`repository` event](https://developer.github.com/v3/activity/events/types/#repositoryevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -297,13 +332,15 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
#### [`release` event](https://developer.github.com/v3/activity/events/types/#releaseevent)
### [`release` event](https://developer.github.com/v3/activity/events/types/#releaseevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -311,14 +348,16 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
* 'tagName' = `event.release.tag_name` string
#### [`status` event](https://developer.github.com/v3/activity/events/types/#statusevent)
### [`status` event](https://developer.github.com/v3/activity/events/types/#statusevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -326,15 +365,17 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
* 'commit' = `event.sha` string
* 'state' = `event.state` string
#### [`team_add` event](https://developer.github.com/v3/activity/events/types/#teamaddevent)
### [`team_add` event](https://developer.github.com/v3/activity/events/types/#teamaddevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -342,14 +383,16 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int
* 'teamName' = `event.team.name` string
#### [`watch` event](https://developer.github.com/v3/activity/events/types/#watchevent)
### [`watch` event](https://developer.github.com/v3/activity/events/types/#watchevent)
**Tags:**
* 'event' = `headers[X-Github-Event]` string
* 'repository' = `event.repository.full_name` string
* 'private' = `event.repository.private` bool
@ -357,6 +400,7 @@ The tag values and field values show the place on the incoming JSON object where
* 'admin' = `event.sender.site_admin` bool
**Fields:**
* 'stars' = `event.repository.stargazers_count` int
* 'forks' = `event.repository.forks_count` int
* 'issues' = `event.repository.open_issues_count` int

View File

@ -9,7 +9,9 @@ See the [webhook doc](https://mandrill.zendesk.com/hc/en-us/articles/205583307-M
All events for logs the original timestamp, the event name and the unique identifier of the message that generated the event.
**Tags:**
* 'event' = `event.event` string
**Fields:**
* 'id' = `event._id` string

View File

@ -28,7 +28,7 @@ Events from Papertrail come in two forms:
When a callback is received, an event-based point will look similar to:
```
```shell
papertrail,host=myserver.example.com,event=saved_search_name count=1i,source_name="abc",program="CROND",severity="Info",source_id=2i,message="message body",source_ip="208.75.57.121",id=7711561783320576i,facility="Cron",url="https://papertrailapp.com/searches/42?centered_on_id=7711561783320576",search_id=42i 1453248892000000000
```
@ -41,6 +41,6 @@ papertrail,host=myserver.example.com,event=saved_search_name count=1i,source_nam
When a callback is received, a count-based point will look similar to:
```
```shell
papertrail,host=myserver.example.com,event=saved_search_name count=3i 1453248892000000000
```

View File

@ -1,6 +1,5 @@
# particle webhooks
You should configure your Particle.io's Webhooks to point at the `webhooks` service. To do this go to [https://console.particle.io](https://console.particle.io/) and click `Integrations > New Integration > Webhook`. In the resulting page set `URL` to `http://<my_ip>:1619/particle`, and under `Advanced Settings` click on `JSON` and add:
```json
@ -11,22 +10,21 @@ You should configure your Particle.io's Webhooks to point at the `webhooks` serv
If required, enter your username and password, etc. and then click `Save`
## Events
Your Particle device should publish an event that contains a JSON in the form of:
```
```json
String data = String::format("{ \"tags\" : {
\"tag_name\": \"tag_value\",
\"other_tag\": \"other_value\"
\"tag_name\": \"tag_value\",
\"other_tag\": \"other_value\"
},
\"values\": {
\"value_name\": %f,
\"other_value\": %f,
\"values\": {
\"value_name\": %f,
\"other_value\": %f,
}
}", value_value, other_value
);
);
Particle.publish("event_name", data, PRIVATE);
```
@ -35,5 +33,4 @@ The number of tag values and field values is not restricted so you can send as m
You will need to enable JSON messages in the Webhooks setup of Particle.io, and make sure to check the "include default data" box as well.
See [webhook doc](https://docs.particle.io/reference/webhooks/)

View File

@ -5,19 +5,22 @@ You should configure your Rollbar's Webhooks to point at the `webhooks` service.
## Events
The titles of the following sections are links to the full payloads and details for each event. The body contains what information from the event is persisted. The format is as follows:
```
```toml
# TAGS
* 'tagKey' = `tagValue` type
# FIELDS
* 'fieldKey' = `fieldValue` type
```
The tag values and field values show the place on the incoming JSON object where the data is sourced from.
See [webhook doc](https://rollbar.com/docs/webhooks/)
#### `new_item` event
### `new_item` event
**Tags:**
* 'event' = `event.event_name` string
* 'environment' = `event.data.item.environment` string
* 'project_id = `event.data.item.project_id` int
@ -25,11 +28,13 @@ See [webhook doc](https://rollbar.com/docs/webhooks/)
* 'level' = `event.data.item.last_occurence.level` string
**Fields:**
* 'id' = `event.data.item.id` int
#### `occurrence` event
### `occurrence` event
**Tags:**
* 'event' = `event.event_name` string
* 'environment' = `event.data.item.environment` string
* 'project_id = `event.data.item.project_id` int
@ -37,14 +42,17 @@ See [webhook doc](https://rollbar.com/docs/webhooks/)
* 'level' = `event.data.occurrence.level` string
**Fields:**
* 'id' = `event.data.item.id` int
#### `deploy` event
### `deploy` event
**Tags:**
* 'event' = `event.event_name` string
* 'environment' = `event.data.deploy.environment` string
* 'project_id = `event.data.deploy.project_id` int
**Fields:**
* 'id' = `event.data.item.id` int

View File

@ -4,7 +4,7 @@ The Wireguard input plugin collects statistics on the local Wireguard server
using the [`wgctrl`](https://github.com/WireGuard/wgctrl-go) library. It
reports gauge metrics for Wireguard interface device(s) and its peers.
### Configuration
## Configuration
```toml
# Collect Wireguard server interface and peer statistics
@ -14,7 +14,7 @@ reports gauge metrics for Wireguard interface device(s) and its peers.
# devices = ["wg0"]
```
### Metrics
## Metrics
- `wireguard_device`
- tags:
@ -37,9 +37,9 @@ reports gauge metrics for Wireguard interface device(s) and its peers.
- `rx_bytes` (int, number of bytes received from this peer)
- `tx_bytes` (int, number of bytes transmitted to this peer)
### Troubleshooting
## Troubleshooting
#### Error: `operation not permitted`
### Error: `operation not permitted`
When the kernelspace implementation of Wireguard is in use (as opposed to its
userspace implementations), Telegraf communicates with the module over netlink.
@ -50,22 +50,22 @@ To add this capability to the Telegraf binary (to allow this communication under
the default user `telegraf`):
```bash
$ sudo setcap CAP_NET_ADMIN+epi $(which telegraf)
sudo setcap CAP_NET_ADMIN+epi $(which telegraf)
```
N.B.: This capability is a filesystem attribute on the binary itself. The
attribute needs to be re-applied if the Telegraf binary is rotated (e.g.
on installation of new a Telegraf version from the system package manager).
#### Error: `error enumerating Wireguard devices`
### Error: `error enumerating Wireguard devices`
This usually happens when the device names specified in config are invalid.
Ensure that `sudo wg show` succeeds, and that the device names in config match
those printed by this command.
### Example Output
## Example Output
```
```shell
wireguard_device,host=WGVPN,name=wg0,type=linux_kernel firewall_mark=51820i,listen_port=58216i 1582513589000000000
wireguard_device,host=WGVPN,name=wg0,type=linux_kernel peers=1i 1582513589000000000
wireguard_peer,device=wg0,host=WGVPN,public_key=NZTRIrv/ClTcQoNAnChEot+WL7OH7uEGQmx8oAN9rWE= allowed_ips=2i,persistent_keepalive_interval_ns=60000000000i,protocol_version=1i 1582513589000000000

View File

@ -2,7 +2,7 @@
The wireless plugin gathers metrics about wireless link quality by reading the `/proc/net/wireless` file. This plugin currently supports linux only.
### Configuration:
## Configuration
```toml
# Monitor wifi signal strength and quality
@ -12,7 +12,7 @@ The wireless plugin gathers metrics about wireless link quality by reading the `
# host_proc = "/proc"
```
### Metrics:
## Metrics
- metric
- tags:
@ -29,10 +29,10 @@ The wireless plugin gathers metrics about wireless link quality by reading the `
- misc (int64, packets, counter) - dropped for un-specified reason
- missed_beacon (int64, packets, counter) - missed beacon packets
### Example Output:
## Example Output
This section shows example output in Line Protocol format.
```
```shell
wireless,host=example.localdomain,interface=wlan0 misc=0i,frag=0i,link=60i,level=-50i,noise=-256i,nwid=0i,crypt=0i,retry=1525i,missed_beacon=0i,status=0i 1519843022000000000
```

View File

@ -5,8 +5,7 @@ file or network connection.
When using a UDP address as a certificate source, the server must support [DTLS](https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security).
### Configuration
## Configuration
```toml
# Reads metrics from a SSL certificate
@ -33,8 +32,7 @@ When using a UDP address as a certificate source, the server must support [DTLS]
# tls_server_name = "myhost.example.org"
```
### Metrics
## Metrics
- x509_cert
- tags:
@ -59,10 +57,9 @@ When using a UDP address as a certificate source, the server must support [DTLS]
- startdate (int, seconds)
- enddate (int, seconds)
## Example output
### Example output
```
```shell
x509_cert,common_name=ubuntu,source=/etc/ssl/certs/ssl-cert-snakeoil.pem,verification=valid age=7693222i,enddate=1871249033i,expiry=307666777i,startdate=1555889033i,verification_code=0i 1563582256000000000
x509_cert,common_name=www.example.org,country=US,locality=Los\ Angeles,organization=Internet\ Corporation\ for\ Assigned\ Names\ and\ Numbers,organizational_unit=Technology,province=California,source=https://example.org:443,verification=invalid age=20219055i,enddate=1606910400i,expiry=43328144i,startdate=1543363200i,verification_code=1i,verification_error="x509: certificate signed by unknown authority" 1563582256000000000
x509_cert,common_name=DigiCert\ SHA2\ Secure\ Server\ CA,country=US,organization=DigiCert\ Inc,source=https://example.org:443,verification=valid age=200838255i,enddate=1678276800i,expiry=114694544i,startdate=1362744000i,verification_code=0i 1563582256000000000

View File

@ -5,7 +5,8 @@ This plugin implements the Zipkin http server to gather trace and timing data ne
*Please Note: This plugin is experimental; Its data schema may be subject to change
based on its main usage cases and the evolution of the OpenTracing standard.*
## Configuration:
## Configuration
```toml
[[inputs.zipkin]]
path = "/api/v1/spans" # URL path for span data
@ -15,7 +16,7 @@ based on its main usage cases and the evolution of the OpenTracing standard.*
The plugin accepts spans in `JSON` or `thrift` if the `Content-Type` is `application/json` or `application/x-thrift`, respectively.
If `Content-Type` is not set, then the plugin assumes it is `JSON` format.
## Tracing:
## Tracing
This plugin uses Annotations tags and fields to track data from spans
@ -28,93 +29,106 @@ Traces are built by collecting all Spans that share a traceId.
Annotations may have the following values:
- __CS (client start):__ beginning of span, request is made.
- __SR (server receive):__ server receives request and will start processing it
- __CS (client start):__ beginning of span, request is made.
- __SR (server receive):__ server receives request and will start processing it
network latency & clock jitters differ it from cs
- __SS (server send):__ server is done processing and sends request back to client
- __SS (server send):__ server is done processing and sends request back to client
amount of time it took to process request will differ it from sr
- __CR (client receive):__ end of span, client receives response from server
- __CR (client receive):__ end of span, client receives response from server
RPC is considered complete with this annotation
### Tags
* __"id":__ The 64 bit ID of the span.
* __"parent_id":__ An ID associated with a particular child span. If there is no child span, the parent ID is set to ID.
* __"trace_id":__ The 64 or 128-bit ID of a particular trace. Every span in a trace shares this ID. Concatenation of high and low and converted to hexadecimal.
* __"name":__ Defines a span
##### Annotations have these additional tags:
- __"id":__ The 64 bit ID of the span.
- __"parent_id":__ An ID associated with a particular child span. If there is no child span, the parent ID is set to ID.
- __"trace_id":__ The 64 or 128-bit ID of a particular trace. Every span in a trace shares this ID. Concatenation of high and low and converted to hexadecimal.
- __"name":__ Defines a span
* __"service_name":__ Defines a service
* __"annotation":__ The value of an annotation
* __"endpoint_host":__ Listening port concat with IPV4, if port is not present it will not be concatenated
#### Annotations have these additional tags
##### Binary Annotations have these additional tag:
- __"service_name":__ Defines a service
- __"annotation":__ The value of an annotation
- __"endpoint_host":__ Listening port concat with IPV4, if port is not present it will not be concatenated
* __"service_name":__ Defines a service
* __"annotation":__ The value of an annotation
* __"endpoint_host":__ Listening port concat with IPV4, if port is not present it will not be concatenated
* __"annotation_key":__ label describing the annotation
#### Binary Annotations have these additional tag
- __"service_name":__ Defines a service
- __"annotation":__ The value of an annotation
- __"endpoint_host":__ Listening port concat with IPV4, if port is not present it will not be concatenated
- __"annotation_key":__ label describing the annotation
### Fields:
* __"duration_ns":__ The time in nanoseconds between the end and beginning of a span.
## Fields
- __"duration_ns":__ The time in nanoseconds between the end and beginning of a span.
### Sample Queries:
## Sample Queries
__Get All Span Names for Service__ `my_web_server`
```sql
SHOW TAG VALUES FROM "zipkin" with key="name" WHERE "service_name" = 'my_web_server'
```
- __Description:__ returns a list containing the names of the spans which have annotations with the given `service_name` of `my_web_server`.
__Get All Service Names__
- __Description:__ returns a list containing the names of the spans which have annotations with the given `service_name` of `my_web_server`.
-__Get All Service Names__-
```sql
SHOW TAG VALUES FROM "zipkin" WITH KEY = "service_name"
```
- __Description:__ returns a list of all `distinct` endpoint service names.
__Find spans with longest duration__
- __Description:__ returns a list of all `distinct` endpoint service names.
-__Find spans with longest duration__-
```sql
SELECT max("duration_ns") FROM "zipkin" WHERE "service_name" = 'my_service' AND "name" = 'my_span_name' AND time > now() - 20m GROUP BY "trace_id",time(30s) LIMIT 5
```
- __Description:__ In the last 20 minutes find the top 5 longest span durations for service `my_server` and span name `my_span_name`
- __Description:__ In the last 20 minutes find the top 5 longest span durations for service `my_server` and span name `my_span_name`
### Recommended InfluxDB setup
This test will create high cardinality data so we recommend using the [tsi influxDB engine](https://www.influxdata.com/path-1-billion-time-series-influxdb-high-cardinality-indexing-ready-testing/).
#### How To Set Up InfluxDB For Work With Zipkin
##### Steps
1. ___Update___ InfluxDB to >= 1.3, in order to use the new tsi engine.
##### Steps
2. ___Generate___ a config file with the following command:
```sh
influxd config > /path/for/config/file
```
3. ___Add___ the following to your config file, under the `[data]` tab:
```toml
[data]
index-version = "tsi1"
```
1. ___Update___ InfluxDB to >= 1.3, in order to use the new tsi engine.
4. ___Start___ `influxd` with your new config file:
```sh
influxd -config=/path/to/your/config/file
```
2. ___Generate___ a config file with the following command:
5. ___Update___ your retention policy:
```sql
ALTER RETENTION POLICY "autogen" ON "telegraf" DURATION 1d SHARD DURATION 30m
```
```sh
influxd config > /path/for/config/file
```
### Example Input Trace:
3. ___Add___ the following to your config file, under the `[data]` tab:
```toml
[data]
index-version = "tsi1"
```
4. ___Start___ `influxd` with your new config file:
```sh
influxd -config=/path/to/your/config/file
```
5. ___Update___ your retention policy:
```sql
ALTER RETENTION POLICY "autogen" ON "telegraf" DURATION 1d SHARD DURATION 30m
```
### Example Input Trace
- [Cli microservice with two services Test](https://github.com/openzipkin/zipkin-go-opentracing/tree/master/examples/cli_with_2_services)
- [Test data from distributed trace repo sample json](https://github.com/mattkanwisher/distributedtrace/blob/master/testclient/sample.json)
#### [Trace Example from Zipkin model](http://zipkin.io/pages/data_model.html)
```json
{
"traceId": "bd7a977555f6b982",

View File

@ -3,7 +3,7 @@
The zookeeper plugin collects variables outputted from the 'mntr' command
[Zookeeper Admin](https://zookeeper.apache.org/doc/current/zookeeperAdmin.html).
### Configuration
## Configuration
```toml
# Reads 'mntr' stats from one or many zookeeper servers
@ -27,7 +27,7 @@ The zookeeper plugin collects variables outputted from the 'mntr' command
# insecure_skip_verify = true
```
### Metrics:
## Metrics
Exact field names are based on Zookeeper response and may vary between
configuration, platform, and version.
@ -56,9 +56,10 @@ configuration, platform, and version.
- synced_followers (integer, leader only)
- pending_syncs (integer, leader only)
### Debugging:
## Debugging
If you have any issues please check the direct Zookeeper output using netcat:
```sh
$ echo mntr | nc localhost 2181
zk_version 3.4.9-3--1, built on Thu, 01 Jun 2017 16:26:44 -0700
@ -78,8 +79,8 @@ zk_open_file_descriptor_count 44
zk_max_file_descriptor_count 4096
```
### Example Output
## Example Output
```
```shell
zookeeper,server=localhost,port=2181,state=standalone ephemerals_count=0i,approximate_data_size=10044i,open_file_descriptor_count=44i,max_latency=0i,packets_received=7i,outstanding_requests=0i,znode_count=129i,max_file_descriptor_count=4096i,version="3.4.9-3--1",avg_latency=0i,packets_sent=6i,num_alive_connections=1i,watch_count=0i,min_latency=0i 1522351112000000000
```