chore(inputs): Fix line-length in READMEs for `t` to `z` (#16485)
This commit is contained in:
parent
cf599121e5
commit
c38792949d
|
|
@ -66,7 +66,8 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
- http_503 (integer, total number of 503 requests)
|
- http_503 (integer, total number of 503 requests)
|
||||||
- http_504 (integer, total number of 504 requests)
|
- http_504 (integer, total number of 504 requests)
|
||||||
- http_508 (integer, total number of 508 requests)
|
- http_508 (integer, total number of 508 requests)
|
||||||
- http_other_detail_status (integer, total number of requests of other status codes*http_ups_4xx total number of requests of upstream 4xx)
|
- http_other_detail_status (integer, total number of requests of other
|
||||||
|
status codes*http_ups_4xx total number of requests of upstream 4xx)
|
||||||
- http_ups_5xx (integer, total number of requests of upstream 5xx)
|
- http_ups_5xx (integer, total number of requests of upstream 5xx)
|
||||||
|
|
||||||
## Example Output
|
## Example Output
|
||||||
|
|
|
||||||
|
|
@ -272,9 +272,9 @@ be used as a tag, and removed from field names.
|
||||||
- SMA.Transient.g_space (uint64, count, Bytes available)
|
- SMA.Transient.g_space (uint64, count, Bytes available)
|
||||||
- VBE.default(127.0.0.1,,8080).vcls (uint64, count, VCL references)
|
- VBE.default(127.0.0.1,,8080).vcls (uint64, count, VCL references)
|
||||||
- VBE.default(127.0.0.1,,8080).happy (uint64, count, Happy health probes)
|
- VBE.default(127.0.0.1,,8080).happy (uint64, count, Happy health probes)
|
||||||
- VBE.default(127.0.0.1,,8080).bereq_hdrbytes (uint64, count, Request header bytes)
|
- VBE.default(127.0.0.1,,8080).bereq_hdrbytes (uint64, count, Req. header bytes)
|
||||||
- VBE.default(127.0.0.1,,8080).bereq_bodybytes (uint64, count, Request body bytes)
|
- VBE.default(127.0.0.1,,8080).bereq_bodybytes (uint64, count, Request body bytes)
|
||||||
- VBE.default(127.0.0.1,,8080).beresp_hdrbytes (uint64, count, Response header bytes)
|
- VBE.default(127.0.0.1,,8080).beresp_hdrbytes (uint64, count, Resp. header bytes)
|
||||||
- VBE.default(127.0.0.1,,8080).beresp_bodybytes (uint64, count, Response body bytes)
|
- VBE.default(127.0.0.1,,8080).beresp_bodybytes (uint64, count, Response body bytes)
|
||||||
- VBE.default(127.0.0.1,,8080).pipe_hdrbytes (uint64, count, Pipe request header)
|
- VBE.default(127.0.0.1,,8080).pipe_hdrbytes (uint64, count, Pipe request header)
|
||||||
- VBE.default(127.0.0.1,,8080).pipe_out (uint64, count, Piped bytes to)
|
- VBE.default(127.0.0.1,,8080).pipe_out (uint64, count, Piped bytes to)
|
||||||
|
|
@ -381,7 +381,8 @@ that are related to the nonactive VCL are excluded from monitoring.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- Varnish 6.0.2+ is required (older versions do not support JSON output from CLI tools)
|
- Varnish 6.0.2+ is required (older versions do not support JSON output from
|
||||||
|
CLI tools)
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
|
@ -415,23 +416,91 @@ _Tip: It is useful to verify regexps using online tools like
|
||||||
|
|
||||||
By default, the plugin has a builtin list of regexps for following VMODs:
|
By default, the plugin has a builtin list of regexps for following VMODs:
|
||||||
|
|
||||||
- Dynamic Backends (goto)
|
### Dynamic Backends (goto)
|
||||||
- regexp: `^VBE\.(?P<_vcl>[\w\-]*)\.goto\.[[:alnum:]]+\.\((?P<backend>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\)\.\((?P<server>.*)\)\.\(ttl:\d*\.\d*.*\)`
|
|
||||||
- `VBE.VCL12323.goto.000007c8.(123.123.123.123).(http://aaa.xxcc:80).(ttl:3600.000000).cache_hit` -> `varnish,section=VBE,backend="123.123.123.123",server="http://aaa.xxcc:80" cache_hit=51i 1462765437090957980`
|
|
||||||
|
|
||||||
- Key value storage (kvstore)
|
```regex
|
||||||
- regexp `^KVSTORE\.(?P<id>[\w\-]*)\.(?P<_vcl>[\w\-]*)\.([\w\-]*)`
|
^VBE\.(?P<_vcl>[\w\-]*)\.goto\.[[:alnum:]]+\.\((?P<backend>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\)\.\((?P<server>.*)\)\.\(ttl:\d*\.\d*.*\)
|
||||||
- `KVSTORE.object_name.vcl_name.key` -> `varnish,section=KVSTORE,id=object_name key=5i`
|
```
|
||||||
- XCNT (libvmod-xcounter)
|
|
||||||
- regexp `^XCNT\.(?P<_vcl>[\w\-]*)(\.)*(?P<group>[\w\-.+]*)\.(?P<_field>[\w\-.+]*)\.val`
|
|
||||||
- `XCNT.abc1234.XXX+_YYYY.cr.pass.val` -> `varnish,section=XCNT,group="XXX+_YYYY.cr" pass=5i`
|
|
||||||
|
|
||||||
- standard VBE metrics
|
with data
|
||||||
- regexp `^VBE\.(?P<_vcl>[\w\-]*)\.(?P<backend>[\w\-]*)\.([\w\-]*)`
|
|
||||||
- `VBE.reload_20210622_153544_23757.default.unhealthy` -> `varnish,section=VBE,backend="default" unhealthy=51i 1462765437090957980`
|
```text
|
||||||
- default generic metric
|
VBE.VCL12323.goto.000007c8.(123.123.123.123).(http://aaa.xxcc:80).(ttl:3600.000000).cache_hit
|
||||||
- regexp `([\w\-]*)\.(?P<_field>[\w\-.]*)`
|
```
|
||||||
- `MSE_STORE.store-1-1.g_aio_running_bytes_write` -> `varnish,section=MSE_STORE store-1-1.g_aio_running_bytes_write=5i`
|
|
||||||
|
results in
|
||||||
|
|
||||||
|
```text
|
||||||
|
varnish,section=VBE,backend="123.123.123.123",server="http://aaa.xxcc:80" cache_hit=51i 1462765437090957980
|
||||||
|
```
|
||||||
|
|
||||||
|
### Key value storage (kvstore)
|
||||||
|
|
||||||
|
```regex
|
||||||
|
^KVSTORE\.(?P<id>[\w\-]*)\.(?P<_vcl>[\w\-]*)\.([\w\-]*)
|
||||||
|
```
|
||||||
|
|
||||||
|
with data
|
||||||
|
|
||||||
|
```text
|
||||||
|
KVSTORE.object_name.vcl_name.key
|
||||||
|
```
|
||||||
|
|
||||||
|
-> `varnish,section=KVSTORE,id=object_name key=5i`
|
||||||
|
|
||||||
|
### XCNT (libvmod-xcounter)
|
||||||
|
|
||||||
|
```regex
|
||||||
|
^XCNT\.(?P<_vcl>[\w\-]*)(\.)*(?P<group>[\w\-.+]*)\.(?P<_field>[\w\-.+]*)\.val
|
||||||
|
```
|
||||||
|
|
||||||
|
with data
|
||||||
|
|
||||||
|
```text
|
||||||
|
XCNT.abc1234.XXX+_YYYY.cr.pass.val
|
||||||
|
```
|
||||||
|
|
||||||
|
results in
|
||||||
|
|
||||||
|
```text
|
||||||
|
varnish,section=XCNT,group="XXX+_YYYY.cr" pass=5i
|
||||||
|
```
|
||||||
|
|
||||||
|
### Standard VBE metrics
|
||||||
|
|
||||||
|
```regex
|
||||||
|
^VBE\.(?P<_vcl>[\w\-]*)\.(?P<backend>[\w\-]*)\.([\w\-]*)
|
||||||
|
```
|
||||||
|
|
||||||
|
with data
|
||||||
|
|
||||||
|
```text
|
||||||
|
VBE.reload_20210622_153544_23757.default.unhealthy
|
||||||
|
```
|
||||||
|
|
||||||
|
results in
|
||||||
|
|
||||||
|
```text
|
||||||
|
varnish,section=VBE,backend="default" unhealthy=51i 1462765437090957980
|
||||||
|
```
|
||||||
|
|
||||||
|
### Default generic metric
|
||||||
|
|
||||||
|
```regex
|
||||||
|
([\w\-]*)\.(?P<_field>[\w\-.]*)
|
||||||
|
```
|
||||||
|
|
||||||
|
with data
|
||||||
|
|
||||||
|
```text
|
||||||
|
MSE_STORE.store-1-1.g_aio_running_bytes_write
|
||||||
|
```
|
||||||
|
|
||||||
|
results in
|
||||||
|
|
||||||
|
```text
|
||||||
|
varnish,section=MSE_STORE store-1-1.g_aio_running_bytes_write=5i
|
||||||
|
```
|
||||||
|
|
||||||
The default regexps list can be extended in the telegraf config. The following
|
The default regexps list can be extended in the telegraf config. The following
|
||||||
example shows a config with a custom regexp for parsing of `accounting` VMOD
|
example shows a config with a custom regexp for parsing of `accounting` VMOD
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,17 @@
|
||||||
# Common vSphere Performance Metrics
|
# Common vSphere Performance Metrics
|
||||||
|
|
||||||
The set of performance metrics in vSphere is open ended. Metrics may be added or removed in new releases
|
The set of performance metrics in vSphere is open ended. Metrics may be added
|
||||||
and the set of available metrics may vary depending hardware, as well as what plugins and add-on products
|
or removed in new releases and the set of available metrics may vary depending
|
||||||
are installed. Therefore, providing a definitive list of available metrics is difficult. The metrics listed
|
hardware, as well as what plugins and add-on products are installed. Therefore,
|
||||||
below are the most commonly available as of vSphere 6.5.
|
providing a definitive list of available metrics is difficult. The metrics
|
||||||
|
listed below are the most commonly available as of vSphere 6.5.
|
||||||
|
|
||||||
For a complete list of metrics available from vSphere and the units they measure in, please reference the [VMWare Product Documentation](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.monitoring.doc/GUID-FF7F87C7-91E7-4A2D-88B5-E3E04A76F51B.html) or the [VMWare Performance Manager Documentation](https://vdc-repo.vmware.com/vmwb-repository/dcr-public/eda658cb-b729-480e-99bc-d3c961055a38/dc769ba5-3cfa-44b1-a5f9-ad807521af19/doc/vim.PerformanceManager.html)
|
For a complete list of metrics available from vSphere and the units they
|
||||||
|
measure in, please reference the [VMWare Product Documentation][product_doc] or
|
||||||
|
the [VMWare Performance Manager Documentation][perf_manager_doc].
|
||||||
|
|
||||||
To list the exact set in your environment, please use the govc tool available [here](https://github.com/vmware/govmomi/tree/master/govc)
|
To list the exact set in your environment, please use the govc tool available
|
||||||
|
[here](https://github.com/vmware/govmomi/tree/master/govc)
|
||||||
|
|
||||||
To obtain the set of metrics for e.g. a VM, you may use the following command:
|
To obtain the set of metrics for e.g. a VM, you may use the following command:
|
||||||
|
|
||||||
|
|
@ -15,6 +19,9 @@ To obtain the set of metrics for e.g. a VM, you may use the following command:
|
||||||
govc metric.ls vm/*
|
govc metric.ls vm/*
|
||||||
```
|
```
|
||||||
|
|
||||||
|
[product_doc]: https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.monitoring.doc/GUID-FF7F87C7-91E7-4A2D-88B5-E3E04A76F51B.html
|
||||||
|
[perf_manager_doc]: https://vdc-repo.vmware.com/vmwb-repository/dcr-public/eda658cb-b729-480e-99bc-d3c961055a38/dc769ba5-3cfa-44b1-a5f9-ad807521af19/doc/vim.PerformanceManager.html
|
||||||
|
|
||||||
## Virtual Machine Metrics
|
## Virtual Machine Metrics
|
||||||
|
|
||||||
```metrics
|
```metrics
|
||||||
|
|
|
||||||
|
|
@ -375,13 +375,13 @@ wildcards may be slow in very large environments.
|
||||||
|
|
||||||
If your datacenter is in a folder, you have two options:
|
If your datacenter is in a folder, you have two options:
|
||||||
|
|
||||||
1. Explicitly include the folder in the path. For example, if your datacenter is in
|
1. Explicitly include the folder in the path. For example, if your datacenter is
|
||||||
a folder named ```F1``` you could use the following path to get to your hosts:
|
in a folder named ```F1``` you could use the path `/F1/MyDatacenter/host/**`
|
||||||
```/F1/MyDatacenter/host/**```
|
to get to your hosts.
|
||||||
2. Use a recursive wildcard to search an arbitrarily long chain of nested folders. To
|
2. Use a recursive wildcard to search an arbitrarily long chain of nested
|
||||||
get to the hosts, you could use the following path: ```/**/host/**```. Note that
|
folders. To get to the hosts, you could use the path `/**/host/**`.
|
||||||
this may run slowly in a very large environment, since a large number of nodes will
|
Note: This may run slowly in very large environments, since a large number of
|
||||||
be traversed.
|
nodes will be traversed.
|
||||||
|
|
||||||
## Performance Considerations
|
## Performance Considerations
|
||||||
|
|
||||||
|
|
@ -390,8 +390,19 @@ be traversed.
|
||||||
vCenter keeps two different kinds of metrics, known as realtime and historical
|
vCenter keeps two different kinds of metrics, known as realtime and historical
|
||||||
metrics.
|
metrics.
|
||||||
|
|
||||||
* Realtime metrics: Available at a 20 second granularity. These metrics are stored in memory and are very fast and cheap to query. Our tests have shown that a complete set of realtime metrics for 7000 virtual machines can be obtained in less than 20 seconds. Realtime metrics are only available on **ESXi hosts** and **virtual machine** resources. Realtime metrics are only stored for 1 hour in vCenter.
|
* Realtime metrics: Available at a 20 second granularity. These metrics are
|
||||||
* Historical metrics: Available at a (default) 5 minute, 30 minutes, 2 hours and 24 hours rollup levels. The vSphere Telegraf plugin only uses the most granular rollup which defaults to 5 minutes but can be changed in vCenter to other interval durations. These metrics are stored in the vCenter database and can be expensive and slow to query. Historical metrics are the only type of metrics available for **clusters**, **datastores**, **resource pools** and **datacenters**.
|
stored in memory and are very fast and cheap to query. Our tests have shown
|
||||||
|
that a complete set of realtime metrics for 7000 virtual machines can be
|
||||||
|
obtained in less than 20 seconds. Realtime metrics are only available on
|
||||||
|
**ESXi hosts** and **virtual machine** resources. Realtime metrics are only
|
||||||
|
stored for 1 hour in vCenter.
|
||||||
|
* Historical metrics: Available at a (default) 5 minute, 30 minutes, 2 hours
|
||||||
|
and 24 hours rollup levels. The vSphere Telegraf plugin only uses the most
|
||||||
|
granular rollup which defaults to 5 minutes but can be changed in vCenter to
|
||||||
|
other interval durations. These metrics are stored in the vCenter database and
|
||||||
|
can be expensive and slow to query. Historical metrics are the only type of
|
||||||
|
metrics available for **clusters**, **datastores**, **resource pools** and
|
||||||
|
**datacenters**.
|
||||||
|
|
||||||
This distinction has an impact on how Telegraf collects metrics. A single
|
This distinction has an impact on how Telegraf collects metrics. A single
|
||||||
instance of an input plugin can have one and only one collection interval,
|
instance of an input plugin can have one and only one collection interval,
|
||||||
|
|
@ -489,15 +500,21 @@ may result in an error message similar to this:
|
||||||
|
|
||||||
There are two ways of addressing this:
|
There are two ways of addressing this:
|
||||||
|
|
||||||
* Ask your vCenter administrator to set `config.vpxd.stats.maxQueryMetrics` to a number that's higher than the total number of virtual machines managed by a vCenter instance.
|
* Ask your vCenter administrator to set `config.vpxd.stats.maxQueryMetrics` to
|
||||||
* Exclude the cluster metrics and use either the basicstats aggregator to calculate sums and averages per cluster or use queries in the visualization tool to obtain the same result.
|
a number that's higher than the total number of virtual machines managed by a
|
||||||
|
vCenter instance.
|
||||||
|
* Exclude the cluster metrics and use either the basicstats aggregator to
|
||||||
|
calculate sums and averages per cluster or use queries in the visualization
|
||||||
|
tool to obtain the same result.
|
||||||
|
|
||||||
### Concurrency Settings
|
### Concurrency Settings
|
||||||
|
|
||||||
The vSphere plugin allows you to specify two concurrency settings:
|
The vSphere plugin allows you to specify two concurrency settings:
|
||||||
|
|
||||||
* `collect_concurrency`: The maximum number of simultaneous queries for performance metrics allowed per resource type.
|
* `collect_concurrency`: The maximum number of simultaneous queries for
|
||||||
* `discover_concurrency`: The maximum number of simultaneous queries for resource discovery allowed.
|
performance metrics allowed per resource type.
|
||||||
|
* `discover_concurrency`: The maximum number of simultaneous queries for
|
||||||
|
resource discovery allowed.
|
||||||
|
|
||||||
While a higher level of concurrency typically has a positive impact on
|
While a higher level of concurrency typically has a positive impact on
|
||||||
performance, increasing these numbers too much can cause performance issues at
|
performance, increasing these numbers too much can cause performance issues at
|
||||||
|
|
@ -511,7 +528,8 @@ statistics that exist at a specific interval. The default historical interval
|
||||||
duration is 5 minutes but if this interval has been changed then you must
|
duration is 5 minutes but if this interval has been changed then you must
|
||||||
override the default query interval in the vSphere plugin.
|
override the default query interval in the vSphere plugin.
|
||||||
|
|
||||||
* `historical_interval`: The interval of the most granular statistics configured in vSphere represented in seconds.
|
* `historical_interval`: The interval of the most granular statistics configured
|
||||||
|
in vSphere represented in seconds.
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
||||||
|
|
@ -519,7 +537,8 @@ override the default query interval in the vSphere plugin.
|
||||||
* Cluster services: CPU, memory, failover
|
* Cluster services: CPU, memory, failover
|
||||||
* CPU: total, usage
|
* CPU: total, usage
|
||||||
* Memory: consumed, total, vmmemctl
|
* Memory: consumed, total, vmmemctl
|
||||||
* VM operations: # changes, clone, create, deploy, destroy, power, reboot, reconfigure, register, reset, shutdown, standby, vmotion
|
* VM operations: # changes, clone, create, deploy, destroy, power, reboot,
|
||||||
|
reconfigure, register, reset, shutdown, standby, vmotion
|
||||||
* Host Stats:
|
* Host Stats:
|
||||||
* CPU: total, usage, cost, mhz
|
* CPU: total, usage, cost, mhz
|
||||||
* Datastore: iops, latency, read/write bytes, # reads/writes
|
* Datastore: iops, latency, read/write bytes, # reads/writes
|
||||||
|
|
@ -530,14 +549,16 @@ override the default query interval in the vSphere plugin.
|
||||||
* Res CPU: active, max, running
|
* Res CPU: active, max, running
|
||||||
* Storage Adapter: commands, latency, # reads/writes
|
* Storage Adapter: commands, latency, # reads/writes
|
||||||
* Storage Path: commands, latency, # reads/writes
|
* Storage Path: commands, latency, # reads/writes
|
||||||
* System Resources: cpu active, cpu max, cpu running, cpu usage, mem allocated, mem consumed, mem shared, swap
|
* System Resources: cpu active, cpu max, cpu running, cpu usage, mem allocated,
|
||||||
|
mem consumed, mem shared, swap
|
||||||
* System: uptime
|
* System: uptime
|
||||||
* Flash Module: active VMDKs
|
* Flash Module: active VMDKs
|
||||||
* VM Stats:
|
* VM Stats:
|
||||||
* CPU: demand, usage, readiness, cost, mhz
|
* CPU: demand, usage, readiness, cost, mhz
|
||||||
* Datastore: latency, # reads/writes
|
* Datastore: latency, # reads/writes
|
||||||
* Disk: commands, latency, # reads/writes, provisioned, usage
|
* Disk: commands, latency, # reads/writes, provisioned, usage
|
||||||
* Memory: granted, usage, active, swap, vmmemctl, memorySizeMB (allocated), memoryReservation
|
* Memory: granted, usage, active, swap, vmmemctl, memorySizeMB (allocated),
|
||||||
|
memoryReservation
|
||||||
* Network: broadcast, bytes, dropped, multicast, packets, usage
|
* Network: broadcast, bytes, dropped, multicast, packets, usage
|
||||||
* Power: energy, usage
|
* Power: energy, usage
|
||||||
* Res CPU: active, max, running
|
* Res CPU: active, max, running
|
||||||
|
|
@ -599,9 +620,11 @@ configuration of hosts, VMs, and other resources.
|
||||||
|
|
||||||
* vSphere 6.5 and later
|
* vSphere 6.5 and later
|
||||||
* Clusters with vSAN enabled
|
* Clusters with vSAN enabled
|
||||||
* [Turn on Virtual SAN performance service](https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.virtualsan.doc/GUID-02F67DC3-3D5A-48A4-A445-D2BD6AF2862C.html): When you create a vSAN cluster,
|
* [Turn on Virtual SAN performance service][vsan_perf_service]: When you create
|
||||||
the performance service is disabled. To monitor the performance metrics,
|
a vSAN cluster, the performance service is disabled. To monitor the
|
||||||
you must turn on vSAN performance service.
|
performance metrics, you must turn on vSAN performance service.
|
||||||
|
|
||||||
|
[vsan_perf_service]: https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.virtualsan.doc/GUID-02F67DC3-3D5A-48A4-A445-D2BD6AF2862C.html
|
||||||
|
|
||||||
### vSAN Configuration
|
### vSAN Configuration
|
||||||
|
|
||||||
|
|
@ -667,22 +690,42 @@ you must turn on vSAN performance service.
|
||||||
# insecure_skip_verify = false
|
# insecure_skip_verify = false
|
||||||
```
|
```
|
||||||
|
|
||||||
* Use `vsan_metric_include = [...]` to define the vSAN metrics that you want to collect.
|
Use `vsan_metric_include = [...]` to define the vSAN metrics that you want to
|
||||||
For example, `vsan_metric_include = ["summary.*", "performance.host-domclient", "performance.cache-disk", "performance.disk-group", "performance.capacity-disk"]`.
|
collect. For example
|
||||||
|
|
||||||
|
```toml
|
||||||
|
vsan_metric_include = ["summary.*", "performance.host-domclient", "performance.cache-disk", "performance.disk-group", "performance.capacity-disk"]
|
||||||
|
```
|
||||||
|
|
||||||
To include all supported vSAN metrics, use `vsan_metric_include = [ "*" ]`.
|
To include all supported vSAN metrics, use `vsan_metric_include = [ "*" ]`.
|
||||||
To disable all the vSAN metrics, use `vsan_metric_exclude = [ "*" ]`.
|
To disable all the vSAN metrics, use `vsan_metric_exclude = [ "*" ]`.
|
||||||
|
|
||||||
* `vsan_metric_skip_verify` defines whether to skip verifying vSAN metrics against the ones from [GetSupportedEntityTypes API](https://code.vmware.com/apis/48/vsan#/doc/vim.cluster.VsanPerformanceManager.html#getSupportedEntityTypes).
|
`vsan_metric_skip_verify` defines whether to skip verifying vSAN metrics against
|
||||||
This option is given because some performance entities are not returned by the API, but we want to offer the flexibility if you really need the stats.
|
the ones from [GetSupportedEntityTypes API][supported_entity_types]. This option
|
||||||
When set to false, anything not in the supported entity list will be filtered out.
|
is given because some performance entities are not returned by the API, but we
|
||||||
When set to true, queried metrics will be identical to vsan_metric_include and the exclusive array will not be used in this case. By default the value is false.
|
want to offer the flexibility if you really need the stats. When set to false,
|
||||||
|
anything not in the supported entity list will be filtered out. When set to
|
||||||
|
true, queried metrics will be identical to vsan_metric_include and the exclusive
|
||||||
|
array will not be used in this case. By default the value is false.
|
||||||
|
|
||||||
* `vsan_cluster_include` defines a list of inventory paths that will be used to select a portion of vSAN clusters.
|
`vsan_cluster_include` defines a list of inventory paths that will be used to
|
||||||
vSAN metrics are only collected on the cluster level. Therefore, use the same way as inventory paths for [vSphere clusters](README.md#inventory-paths).
|
select a portion of vSAN clusters. vSAN metrics are only collected on the
|
||||||
|
cluster level. Therefore, use the same way as inventory paths for
|
||||||
|
[vSphere clusters](#inventory-paths).
|
||||||
|
|
||||||
* Many vCenter environments use self-signed certificates. Update the bottom portion of the above configuration and provide proper values for all applicable SSL Config settings that apply in your vSphere environment. In some environments, setting insecure_skip_verify = true will be necessary when the SSL certificates are not available.
|
Many vCenter environments use self-signed certificates. Update the bottom
|
||||||
|
portion of the above configuration and provide proper values for all applicable
|
||||||
|
SSL Config settings that apply in your vSphere environment. In some
|
||||||
|
environments, setting insecure_skip_verify = true will be necessary when the
|
||||||
|
SSL certificates are not available.
|
||||||
|
|
||||||
* To ensure consistent collection in larger vSphere environments, you must increase concurrency for the plugin. Use the collect_concurrency setting to control concurrency. Set collect_concurrency to the number of virtual machines divided by 1500 and rounded up to the nearest integer. For example, for 1200 VMs use 1, and for 2300 VMs use 2.
|
To ensure consistent collection in larger vSphere environments, you must
|
||||||
|
increase concurrency for the plugin. Use the collect_concurrency setting to
|
||||||
|
control concurrency. Set collect_concurrency to the number of virtual machines
|
||||||
|
divided by 1500 and rounded up to the nearest integer. For example, for
|
||||||
|
1200 VMs use 1, and for 2300 VMs use 2.
|
||||||
|
|
||||||
|
[supported_entity_types]: https://code.vmware.com/apis/48/vsan#/doc/vim.cluster.VsanPerformanceManager.html#getSupportedEntityTypes
|
||||||
|
|
||||||
### Measurements & Fields
|
### Measurements & Fields
|
||||||
|
|
||||||
|
|
@ -696,37 +739,85 @@ and fields may vary.
|
||||||
|
|
||||||
* vSAN Performance
|
* vSAN Performance
|
||||||
* cluster-domclient
|
* cluster-domclient
|
||||||
* iops_read, throughput_read, latency_avg_read, iops_write, throughput_write, latency_avg_write, congestion, oio
|
* iops_read, throughput_read, latency_avg_read, iops_write,
|
||||||
|
throughput_write, latency_avg_write, congestion, oio
|
||||||
* cluster-domcompmgr
|
* cluster-domcompmgr
|
||||||
* iops_read, throughput_read, latency_avg_read, iops_write, throughput_write, latency_avg_write, iops_rec_write, throughput_rec_write, latency_avg_rec_write, congestion, oio, iops_resync_read, tput_resync_read, lat_avg_resyncread
|
* iops_read, throughput_read, latency_avg_read, iops_write,
|
||||||
|
throughput_write, latency_avg_write, iops_rec_write, throughput_rec_write,
|
||||||
|
latency_avg_rec_write, congestion, oio, iops_resync_read, tput_resync_read,
|
||||||
|
lat_avg_resyncread
|
||||||
* host-domclient
|
* host-domclient
|
||||||
* iops_read, throughput_read, latency_avg_read, read_count, iops_write, throughput_write, latency_avg_write, write_count, congestion, oio, client_cache_hits, client_cache_hit_rate
|
* iops_read, throughput_read, latency_avg_read, read_count, iops_write,
|
||||||
|
throughput_write, latency_avg_write, write_count, congestion, oio,
|
||||||
|
client_cache_hits, client_cache_hit_rate
|
||||||
* host-domcompmgr
|
* host-domcompmgr
|
||||||
* iops_read, throughput_read, latency_avg_read, read_count, iops_write, throughput_write, latency_avg_write, write_count, iops_rec_write, throughput_rec_write, latency_avg_rec_write, rec_write_count congestion, oio, iops_resync_read, tput_resync_read, lat_avg_resync_read
|
* iops_read, throughput_read, latency_avg_read, read_count, iops_write,
|
||||||
|
throughput_write, latency_avg_write, write_count, iops_rec_write,
|
||||||
|
throughput_rec_write, latency_avg_rec_write, rec_write_count congestion,
|
||||||
|
oio, iops_resync_read, tput_resync_read, lat_avg_resync_read
|
||||||
* cache-disk
|
* cache-disk
|
||||||
* iops_dev_read, throughput_dev_read, latency_dev_read, io_count_dev_read, iops_dev_write, throughput_dev_write, latency_dev_write, io_count_dev_write, latency_dev_d_avg, latency_dev_g_avg
|
* iops_dev_read, throughput_dev_read, latency_dev_read, io_count_dev_read,
|
||||||
|
iops_dev_write, throughput_dev_write, latency_dev_write,
|
||||||
|
io_count_dev_write, latency_dev_d_avg, latency_dev_g_avg
|
||||||
* capacity-disk
|
* capacity-disk
|
||||||
* iops_dev_read, throughput_dev_read, latency_dev_read, io_count_dev_read, iops_dev_write, throughput_dev_write, latency_dev_write, io_count_dev_write, latency_dev_d_avg, latency_dev_g_avg, iops_read, latency_read, io_count_read, iops_write, latency_write, io_count_write
|
* iops_dev_read, throughput_dev_read, latency_dev_read, io_count_dev_read,
|
||||||
|
iops_dev_write, throughput_dev_write, latency_dev_write,
|
||||||
|
io_count_dev_write, latency_dev_d_avg, latency_dev_g_avg, iops_read,
|
||||||
|
latency_read, io_count_read, iops_write, latency_write, io_count_write
|
||||||
* disk-group
|
* disk-group
|
||||||
* iops_sched, latency_sched, outstanding_bytes_sched, iops_sched_queue_rec, throughput_sched_queue_rec,latency_sched_queue_rec, iops_sched_queue_vm, throughput_sched_queue_vm,latency_sched_queue_vm, iops_sched_queue_meta, throughput_sched_queue_meta,latency_sched_queue_meta, iops_delay_pct_sched, latency_delay_sched, rc_hit_rate, wb_free_pct, war_evictions, quota_evictions, iops_rc_read, latency_rc_read, io_count_rc_read, iops_wb_read, latency_wb_read, io_count_wb_read, iops_rc_write, latency_rc_write, io_count_rc_write, iops_wb_write, latency_wb_write, io_count_wb_write, ssd_bytes_drained, zero_bytes_drained, mem_congestion, slab_congestion, ssd_congestion, iops_congestion, log_congestion, comp_congestion, iops_direct_sched, iops_read, throughput_read, latency_avg_read, read_count, iops_write, throughput_write, latency_avg_write, write_count, oio_write, oio_rec_write, oio_write_size, oio_rec_write_size, rc_size, wb_size, capacity, capacity_used, capacity_reserved, throughput_sched, iops_resync_read_policy, iops_resync_read_decom, iops_resync_read_rebalance, iops_resync_read_fix_comp, iops_resync_write_policy, iops_resync_write_decom, iops_resync_write_rebalance, iops_resync_write_fix_comp, tput_resync_read_policy, tput_resync_read_decom, tput_resync_read_rebalance, tput_resync_read_fix_comp, tput_resync_write_policy, tput_resync_write_decom, tput_resync_write_rebalance, tput_resync_write_fix_comp, lat_resync_read_policy, lat_resync_read_decom, lat_resync_read_rebalance, lat_resync_read_fix_comp, lat_resync_write_policy, lat_resync_write_decom, lat_resync_write_rebalance, lat_resync_write_fix_comp
|
* iops_sched, latency_sched, outstanding_bytes_sched, iops_sched_queue_rec,
|
||||||
|
throughput_sched_queue_rec,latency_sched_queue_rec, iops_sched_queue_vm,
|
||||||
|
throughput_sched_queue_vm,latency_sched_queue_vm, iops_sched_queue_meta,
|
||||||
|
throughput_sched_queue_meta,latency_sched_queue_meta,
|
||||||
|
iops_delay_pct_sched, latency_delay_sched, rc_hit_rate, wb_free_pct,
|
||||||
|
war_evictions, quota_evictions, iops_rc_read, latency_rc_read,
|
||||||
|
io_count_rc_read, iops_wb_read, latency_wb_read, io_count_wb_read,
|
||||||
|
iops_rc_write, latency_rc_write, io_count_rc_write, iops_wb_write,
|
||||||
|
latency_wb_write, io_count_wb_write, ssd_bytes_drained, zero_bytes_drained,
|
||||||
|
mem_congestion, slab_congestion, ssd_congestion, iops_congestion,
|
||||||
|
log_congestion, comp_congestion, iops_direct_sched, iops_read,
|
||||||
|
throughput_read, latency_avg_read, read_count, iops_write,
|
||||||
|
throughput_write, latency_avg_write, write_count, oio_write,
|
||||||
|
oio_rec_write, oio_write_size, oio_rec_write_size, rc_size, wb_size,
|
||||||
|
capacity, capacity_used, capacity_reserved, throughput_sched,
|
||||||
|
iops_resync_read_policy, iops_resync_read_decom,
|
||||||
|
iops_resync_read_rebalance, iops_resync_read_fix_comp,
|
||||||
|
iops_resync_write_policy, iops_resync_write_decom,
|
||||||
|
iops_resync_write_rebalance, iops_resync_write_fix_comp,
|
||||||
|
tput_resync_read_policy, tput_resync_read_decom,
|
||||||
|
tput_resync_read_rebalance, tput_resync_read_fix_comp,
|
||||||
|
tput_resync_write_policy, tput_resync_write_decom,
|
||||||
|
tput_resync_write_rebalance, tput_resync_write_fix_comp,
|
||||||
|
lat_resync_read_policy, lat_resync_read_decom, lat_resync_read_rebalance,
|
||||||
|
lat_resync_read_fix_comp, lat_resync_write_policy, lat_resync_write_decom,
|
||||||
|
lat_resync_write_rebalance, lat_resync_write_fix_comp
|
||||||
* virtual-machine
|
* virtual-machine
|
||||||
* iops_read, throughput_read, latency_read_avg, latency_read_stddev, read_count, iops_write, throughput_write, latency_write_avg, latency_write_stddev, write_count
|
* iops_read, throughput_read, latency_read_avg, latency_read_stddev,
|
||||||
|
read_count, iops_write, throughput_write, latency_write_avg,
|
||||||
|
latency_write_stddev, write_count
|
||||||
* vscsi
|
* vscsi
|
||||||
* iops_read, throughput_read, latency_read, read_count, iops_write, throughput_write, latency_write, write_count
|
* iops_read, throughput_read, latency_read, read_count, iops_write,
|
||||||
|
throughput_write, latency_write, write_count
|
||||||
* virtual-disk
|
* virtual-disk
|
||||||
* iops_limit, niops, niops_delayed
|
* iops_limit, niops, niops_delayed
|
||||||
* vsan-host-net
|
* vsan-host-net
|
||||||
* rx_throughput, rx_packets, rx_packets_loss_rate, tx_throughput, tx_packets, tx_packets_loss_rate
|
* rx_throughput, rx_packets, rx_packets_loss_rate, tx_throughput, tx_packets,
|
||||||
|
tx_packets_loss_rate
|
||||||
* vsan-vnic-net
|
* vsan-vnic-net
|
||||||
* rx_throughput, rx_packets, rx_packets_loss_rate, tx_throughput, tx_packets, tx_packets_loss_rate
|
* rx_throughput, rx_packets, rx_packets_loss_rate, tx_throughput, tx_packets,
|
||||||
|
tx_packets_loss_rate
|
||||||
* vsan-pnic-net
|
* vsan-pnic-net
|
||||||
* rx_throughput, rx_packets, rx_packets_loss_rate, tx_throughput, tx_packets, tx_packets_loss_rate
|
* rx_throughput, rx_packets, rx_packets_loss_rate, tx_throughput, tx_packets,
|
||||||
|
tx_packets_loss_rate
|
||||||
* vsan-iscsi-host
|
* vsan-iscsi-host
|
||||||
* iops_read, iops_write, iops_total, bandwidth_read, bandwidth_write, bandwidth_total, latency_read, latency_write, latency_total, queue_depth
|
* iops_read, iops_write, iops_total, bandwidth_read, bandwidth_write,
|
||||||
|
bandwidth_total, latency_read, latency_write, latency_total, queue_depth
|
||||||
* vsan-iscsi-target
|
* vsan-iscsi-target
|
||||||
* iops_read, iops_write, iops_total, bandwidth_read, bandwidth_write, bandwidth_total, latency_read, latency_write, latency_total, queue_depth
|
* iops_read, iops_write, iops_total, bandwidth_read, bandwidth_write,
|
||||||
|
bandwidth_total, latency_read, latency_write, latency_total, queue_depth
|
||||||
* vsan-iscsi-lun
|
* vsan-iscsi-lun
|
||||||
* iops_read, iops_write, iops_total, bandwidth_read, bandwidth_write, bandwidth_total, latency_read, latency_write, latency_total, queue_depth
|
* iops_read, iops_write, iops_total, bandwidth_read, bandwidth_write,
|
||||||
|
bandwidth_total, latency_read, latency_write, latency_total, queue_depth
|
||||||
|
|
||||||
### vSAN Tags
|
### vSAN Tags
|
||||||
|
|
||||||
|
|
@ -754,8 +845,11 @@ and fields may vary.
|
||||||
vSAN metrics also keep two different kinds of metrics - realtime and
|
vSAN metrics also keep two different kinds of metrics - realtime and
|
||||||
historical metrics.
|
historical metrics.
|
||||||
|
|
||||||
* Realtime metrics are metrics with the prefix 'summary'. These metrics are available in realtime.
|
* Realtime metrics are metrics with the prefix 'summary'. These metrics are
|
||||||
* Historical metrics are metrics with the prefix 'performance'. These are metrics queried from vSAN performance API, which is available at a 5-minute rollup level.
|
available in realtime.
|
||||||
|
* Historical metrics are metrics with the prefix 'performance'. These are
|
||||||
|
metrics queried from vSAN performance API, which is available at a 5-minute
|
||||||
|
rollup level.
|
||||||
|
|
||||||
For performance consideration, it is better to specify two instances of the
|
For performance consideration, it is better to specify two instances of the
|
||||||
plugin, one for the realtime metrics with a short collection interval,
|
plugin, one for the realtime metrics with a short collection interval,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
# Filestack webhook
|
# Filestack webhook
|
||||||
|
|
||||||
You should configure your Filestack's Webhooks to point at the `webhooks` service. To do this go to [filestack.com](https://www.filestack.com/), select your app and click `Credentials > Webhooks`. In the resulting page, set the `URL` to `http://<my_ip>:1619/filestack`, and click on `Add`.
|
You should configure your Filestack's Webhooks to point at the `webhooks`
|
||||||
|
service. To do this go to [filestack.com](https://www.filestack.com/), select
|
||||||
|
your app and click `Credentials > Webhooks`. In the resulting page, set the
|
||||||
|
`URL` to `http://<my_ip>:1619/filestack`, and click on `Add`.
|
||||||
|
|
||||||
## Events
|
## Events
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,17 @@
|
||||||
# mandrill webhook
|
# mandrill webhook
|
||||||
|
|
||||||
You should configure your Mandrill's Webhooks to point at the `webhooks` service. To do this go to [mandrillapp.com](https://mandrillapp.com) and click `Settings > Webhooks`. In the resulting page, click on `Add a Webhook`, select all events, and set the `URL` to `http://<my_ip>:1619/mandrill`, and click on `Create Webhook`.
|
You should configure your Mandrill's Webhooks to point at the `webhooks`
|
||||||
|
service. To do this go to [mandrillapp.com](https://mandrillapp.com) and click
|
||||||
|
`Settings > Webhooks`. In the resulting page, click on `Add a Webhook`, select
|
||||||
|
all events, and set the `URL` to `http://<my_ip>:1619/mandrill`, and click on
|
||||||
|
`Create Webhook`.
|
||||||
|
|
||||||
## Events
|
## Events
|
||||||
|
|
||||||
See the [webhook doc](https://mandrill.zendesk.com/hc/en-us/articles/205583307-Message-Event-Webhook-format).
|
See the [webhook doc](https://mandrill.zendesk.com/hc/en-us/articles/205583307-Message-Event-Webhook-format).
|
||||||
|
|
||||||
All events for logs the original timestamp, the event name and the unique identifier of the message that generated the event.
|
All events for logs the original timestamp, the event name and the unique
|
||||||
|
identifier of the message that generated the event.
|
||||||
|
|
||||||
**Tags:**
|
**Tags:**
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,12 +11,13 @@ Events from Papertrail come in two forms:
|
||||||
* The [event-based callback](http://help.papertrailapp.com/kb/how-it-works/web-hooks/#callback):
|
* The [event-based callback](http://help.papertrailapp.com/kb/how-it-works/web-hooks/#callback):
|
||||||
|
|
||||||
* A point is created per event, with the timestamp as `received_at`
|
* A point is created per event, with the timestamp as `received_at`
|
||||||
* Each point has a field counter (`count`), which is set to `1` (signifying the event occurred)
|
* Each point has a field counter (`count`), which is set to `1` (signifying
|
||||||
|
the event occurred)
|
||||||
* Each event "hostname" object is converted to a `host` tag
|
* Each event "hostname" object is converted to a `host` tag
|
||||||
* The "saved_search" name in the payload is added as an `event` tag
|
* The "saved_search" name in the payload is added as an `event` tag
|
||||||
* The "saved_search" id in the payload is added as a `search_id` field
|
* The "saved_search" id in the payload is added as a `search_id` field
|
||||||
* The papertrail url to view the event is built and added as a `url` field
|
* The papertrail url to view the event is built and added as a `url` field
|
||||||
* The rest of the data in the event is converted directly to fields on the point:
|
* The rest of the event data is converted directly to fields on the point:
|
||||||
* `id`
|
* `id`
|
||||||
* `source_ip`
|
* `source_ip`
|
||||||
* `source_name`
|
* `source_name`
|
||||||
|
|
@ -34,8 +35,10 @@ papertrail,host=myserver.example.com,event=saved_search_name count=1i,source_nam
|
||||||
|
|
||||||
* The [count-based callback](http://help.papertrailapp.com/kb/how-it-works/web-hooks/#count-only-webhooks)
|
* The [count-based callback](http://help.papertrailapp.com/kb/how-it-works/web-hooks/#count-only-webhooks)
|
||||||
|
|
||||||
* A point is created per timeseries object per count, with the timestamp as the "timeseries" key (the unix epoch of the event)
|
* A point is created per timeseries object per count, with the timestamp as
|
||||||
* Each point has a field counter (`count`), which is set to the value of each "timeseries" object
|
the "timeseries" key (the unix epoch of the event)
|
||||||
|
* Each point has a field counter (`count`), which is set to the value of each
|
||||||
|
"timeseries" object
|
||||||
* Each count "source_name" object is converted to a `host` tag
|
* Each count "source_name" object is converted to a `host` tag
|
||||||
* The "saved_search" name in the payload is added as an `event` tag
|
* The "saved_search" name in the payload is added as an `event` tag
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
# rollbar webhooks
|
# rollbar webhooks
|
||||||
|
|
||||||
You should configure your Rollbar's Webhooks to point at the `webhooks` service. To do this go to [rollbar.com](https://rollbar.com/) and click `Settings > Notifications > Webhook`. In the resulting page set `URL` to `http://<my_ip>:1619/rollbar`, and click on `Enable Webhook Integration`.
|
You should configure your Rollbar's Webhooks to point at the `webhooks` service.
|
||||||
|
To do this go to [rollbar.com](https://rollbar.com/) and click
|
||||||
|
`Settings > Notifications > Webhook`. In the resulting page set `URL` to
|
||||||
|
`http://<my_ip>:1619/rollbar`, and click on `Enable Webhook Integration`.
|
||||||
|
|
||||||
## Events
|
## 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:
|
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
|
```toml
|
||||||
# TAGS
|
# TAGS
|
||||||
|
|
@ -13,7 +18,8 @@ The titles of the following sections are links to the full payloads and details
|
||||||
* 'fieldKey' = `fieldValue` type
|
* 'fieldKey' = `fieldValue` type
|
||||||
```
|
```
|
||||||
|
|
||||||
The tag values and field values show the place on the incoming JSON object where the data is sourced from.
|
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/)
|
See [webhook doc](https://rollbar.com/docs/webhooks/)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,11 @@ or `win_perf_counters` by default.
|
||||||
|
|
||||||
*Tags:*
|
*Tags:*
|
||||||
|
|
||||||
- source - computer name, as specified in the `Sources` parameter. Name `localhost` is translated into the host name
|
- source - computer name, as specified in the `Sources` parameter. Name
|
||||||
|
`localhost` is translated into the host name
|
||||||
- objectname - normalized name of the performance object
|
- objectname - normalized name of the performance object
|
||||||
- instance - instance name, if performance object supports multiple instances, otherwise omitted
|
- instance - instance name, if performance object supports multiple instances,
|
||||||
|
otherwise omitted
|
||||||
|
|
||||||
*Fields* are counters of the performance object.
|
*Fields* are counters of the performance object.
|
||||||
The field name is normalized counter name.
|
The field name is normalized counter name.
|
||||||
|
|
|
||||||
|
|
@ -39,10 +39,12 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
- `device` (associated interface device name, e.g. `wg0`)
|
- `device` (associated interface device name, e.g. `wg0`)
|
||||||
- `public_key` (peer public key, e.g. `NZTRIrv/ClTcQoNAnChEot+WL7OH7uEGQmx8oAN9rWE=`)
|
- `public_key` (peer public key, e.g. `NZTRIrv/ClTcQoNAnChEot+WL7OH7uEGQmx8oAN9rWE=`)
|
||||||
- fields:
|
- fields:
|
||||||
- `persistent_keepalive_interval_ns` (int, keepalive interval in nanoseconds; 0 if unset)
|
- `persistent_keepalive_interval_ns` (int, keepalive interval in
|
||||||
|
nanoseconds; 0 if unset)
|
||||||
- `protocol_version` (int, Wireguard protocol version number)
|
- `protocol_version` (int, Wireguard protocol version number)
|
||||||
- `allowed_ips` (int, number of allowed IPs for this peer)
|
- `allowed_ips` (int, number of allowed IPs for this peer)
|
||||||
- `last_handshake_time_ns` (int, Unix timestamp of the last handshake for this peer in nanoseconds)
|
- `last_handshake_time_ns` (int, Unix timestamp of the last handshake for
|
||||||
|
this peer in nanoseconds)
|
||||||
- `rx_bytes` (int, number of bytes received from this peer)
|
- `rx_bytes` (int, number of bytes received from this peer)
|
||||||
- `tx_bytes` (int, number of bytes transmitted to this peer)
|
- `tx_bytes` (int, number of bytes transmitted to this peer)
|
||||||
- `allowed_peer_cidr` (string, comma separated list of allowed peer CIDRs)
|
- `allowed_peer_cidr` (string, comma separated list of allowed peer CIDRs)
|
||||||
|
|
|
||||||
|
|
@ -29,11 +29,13 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
- tags:
|
- tags:
|
||||||
- interface (wireless interface)
|
- interface (wireless interface)
|
||||||
- fields:
|
- fields:
|
||||||
- status (int64, gauge) - Its current state. This is a device dependent information
|
- status (int64, gauge) - Its current state. This is a device dependent
|
||||||
|
information
|
||||||
- link (int64, percentage, gauge) - general quality of the reception
|
- link (int64, percentage, gauge) - general quality of the reception
|
||||||
- level (int64, dBm, gauge) - signal strength at the receiver
|
- level (int64, dBm, gauge) - signal strength at the receiver
|
||||||
- noise (int64, dBm, gauge) - silence level (no packet) at the receiver
|
- noise (int64, dBm, gauge) - silence level (no packet) at the receiver
|
||||||
- nwid (int64, packets, counter) - number of discarded packets due to invalid network id
|
- nwid (int64, packets, counter) - number of discarded packets due to
|
||||||
|
invalid network id
|
||||||
- crypt (int64, packets, counter) - number of packet unable to decrypt
|
- crypt (int64, packets, counter) - number of packet unable to decrypt
|
||||||
- frag (int64, packets, counter) - fragmented packets
|
- frag (int64, packets, counter) - fragmented packets
|
||||||
- retry (int64, packets, counter) - cumulative retry counts
|
- retry (int64, packets, counter) - cumulative retry counts
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,8 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
- fields:
|
- fields:
|
||||||
- verification_code (int)
|
- verification_code (int)
|
||||||
- verification_error (string)
|
- verification_error (string)
|
||||||
- expiry (int, seconds) - Time when the certificate will expire, in seconds since the Unix epoch. `SELECT (expiry / 60 / 60 / 24) as "expiry_in_days"`
|
- expiry (int, seconds) - Time when the certificate will expire, in seconds
|
||||||
|
since the Unix epoch. `SELECT (expiry / 60 / 60 / 24) as "expiry_in_days"`
|
||||||
- age (int, seconds)
|
- age (int, seconds)
|
||||||
- startdate (int, seconds)
|
- startdate (int, seconds)
|
||||||
- enddate (int, seconds)
|
- enddate (int, seconds)
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,10 @@ __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
|
change based on its main usage cases and the evolution of the OpenTracing
|
||||||
standard.
|
standard.
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> This plugin will create high cardinality data, so please take this into
|
||||||
|
> account when sending data to your output!
|
||||||
|
|
||||||
## Service Input <!-- @/docs/includes/service_input.md -->
|
## Service Input <!-- @/docs/includes/service_input.md -->
|
||||||
|
|
||||||
This plugin is a service input. Normal plugins gather metrics determined by the
|
This plugin is a service input. Normal plugins gather metrics determined by the
|
||||||
|
|
@ -30,7 +34,7 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
```toml @sample.conf
|
```toml @sample.conf
|
||||||
# This plugin implements the Zipkin http server to gather trace and timing data needed to troubleshoot latency problems in microservice architectures.
|
# Gather data from a Zipkin server including trace and timing data
|
||||||
[[inputs.zipkin]]
|
[[inputs.zipkin]]
|
||||||
## URL path for span data
|
## URL path for span data
|
||||||
# path = "/api/v1/spans"
|
# path = "/api/v1/spans"
|
||||||
|
|
@ -52,167 +56,160 @@ is not set, then the plugin assumes it is `JSON` format.
|
||||||
|
|
||||||
This plugin uses Annotations tags and fields to track data from spans
|
This plugin uses Annotations tags and fields to track data from spans
|
||||||
|
|
||||||
- __TRACE:__ is a set of spans that share a single root span.
|
- `TRACE` is a set of spans that share a single root span. Traces are built by
|
||||||
Traces are built by collecting all Spans that share a traceId.
|
collecting all Spans that share a traceId.
|
||||||
|
- `SPAN` is a set of Annotations and BinaryAnnotations that correspond to a
|
||||||
- __SPAN:__ is a set of Annotations and BinaryAnnotations that correspond to a particular RPC.
|
particular RPC.
|
||||||
|
- `Annotations` create a metric for each annotation & binary annotation of a
|
||||||
- __Annotations:__ for each annotation & binary annotation of a span a metric is output. _Records an occurrence in time at the beginning and end of a request._
|
span. This records an occurrence in time at the beginning and end of each
|
||||||
|
request.
|
||||||
|
|
||||||
Annotations may have the following values:
|
Annotations may have the following values:
|
||||||
|
- `CS` (client start) marks the beginning of the span, a request is made.
|
||||||
- __CS (client start):__ beginning of span, request is made.
|
- `SR` (server receive) marks the point in time the server receives the request
|
||||||
- __SR (server receive):__ server receives request and will start processing it
|
and starts processing it. Network latency & clock jitters distinguish this
|
||||||
network latency & clock jitters differ it from cs
|
from `CS`.
|
||||||
- __SS (server send):__ server is done processing and sends request back to client
|
- `SS` (server send) marks the point in time the server is finished processing
|
||||||
amount of time it took to process request will differ it from sr
|
and sends a request back to client. The difference to `SR` denotes the
|
||||||
- __CR (client receive):__ end of span, client receives response from server
|
amount of time it took to process the request.
|
||||||
RPC is considered complete with this annotation
|
- `CR` (client receive) marks the end of the span, with the client receiving
|
||||||
|
the response from server. RPC is considered complete with this annotation.
|
||||||
|
|
||||||
## Metrics
|
## Metrics
|
||||||
|
|
||||||
- __"duration_ns":__ The time in nanoseconds between the end and beginning of a span.
|
- `duration_ns` the time in nanoseconds between the end and beginning of a span
|
||||||
|
|
||||||
### Tags
|
### Tags
|
||||||
|
|
||||||
- __"id":__ The 64-bit ID of the span.
|
- `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.
|
- `parent_id` an ID associated with a particular child span. If there is no
|
||||||
- __"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.
|
child span, `parent_id` is equal to `id`
|
||||||
- __"name":__ Defines a span
|
- `trace_id` the 64-bit or 128-bit ID of a particular trace. Every span in a
|
||||||
|
trace uses this ID.
|
||||||
|
- `name` defines a span
|
||||||
|
|
||||||
#### Annotations have these additional tags
|
#### Annotations have these additional tags
|
||||||
|
|
||||||
- __"service_name":__ Defines a service
|
- `service_name` defines a service
|
||||||
- __"annotation":__ The value of an annotation
|
- `annotation` the value of an annotation
|
||||||
- __"endpoint_host":__ Listening port concat with IPV4, if port is not present it will not be concatenated
|
- `endpoint_host` listening IPv4 address and, if present, port
|
||||||
|
|
||||||
#### Binary Annotations have these additional tag
|
#### Binary Annotations have these additional tag
|
||||||
|
|
||||||
- __"service_name":__ Defines a service
|
- `service_name` defines a service
|
||||||
- __"annotation":__ The value of an annotation
|
- `annotation` the value of an annotation
|
||||||
- __"endpoint_host":__ Listening port concat with IPV4, if port is not present it will not be concatenated
|
- `endpoint_host` listening IPv4 address and, if present, port
|
||||||
- __"annotation_key":__ label describing the annotation
|
- `annotation_key` label describing the annotation
|
||||||
|
|
||||||
## 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__-
|
|
||||||
|
|
||||||
```sql
|
|
||||||
SHOW TAG VALUES FROM "zipkin" WITH KEY = "service_name"
|
|
||||||
```
|
|
||||||
|
|
||||||
- __Description:__ returns a list of all `distinct` endpoint service names.
|
|
||||||
|
|
||||||
-__Find spans with the 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`
|
|
||||||
|
|
||||||
### Recommended InfluxDB setup
|
|
||||||
|
|
||||||
This test will create high cardinality data so we recommend using the [tsi
|
|
||||||
influxDB engine][1].
|
|
||||||
|
|
||||||
[1]: 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.
|
|
||||||
|
|
||||||
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"
|
|
||||||
```
|
|
||||||
|
|
||||||
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",
|
|
||||||
"name": "query",
|
|
||||||
"id": "be2d01e33cc78d97",
|
|
||||||
"parentId": "ebf33e1a81dc6f71",
|
|
||||||
"timestamp": 1458702548786000,
|
|
||||||
"duration": 13000,
|
|
||||||
"annotations": [
|
|
||||||
{
|
|
||||||
"endpoint": {
|
|
||||||
"serviceName": "zipkin-query",
|
|
||||||
"ipv4": "192.168.1.2",
|
|
||||||
"port": 9411
|
|
||||||
},
|
|
||||||
"timestamp": 1458702548786000,
|
|
||||||
"value": "cs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"endpoint": {
|
|
||||||
"serviceName": "zipkin-query",
|
|
||||||
"ipv4": "192.168.1.2",
|
|
||||||
"port": 9411
|
|
||||||
},
|
|
||||||
"timestamp": 1458702548799000,
|
|
||||||
"value": "cr"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"binaryAnnotations": [
|
|
||||||
{
|
|
||||||
"key": "jdbc.query",
|
|
||||||
"value": "select distinct `zipkin_spans`.`trace_id` from `zipkin_spans` join `zipkin_annotations` on (`zipkin_spans`.`trace_id` = `zipkin_annotations`.`trace_id` and `zipkin_spans`.`id` = `zipkin_annotations`.`span_id`) where (`zipkin_annotations`.`endpoint_service_name` = ? and `zipkin_spans`.`start_ts` between ? and ?) order by `zipkin_spans`.`start_ts` desc limit ?",
|
|
||||||
"endpoint": {
|
|
||||||
"serviceName": "zipkin-query",
|
|
||||||
"ipv4": "192.168.1.2",
|
|
||||||
"port": 9411
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "sa",
|
|
||||||
"value": true,
|
|
||||||
"endpoint": {
|
|
||||||
"serviceName": "spanstore-jdbc",
|
|
||||||
"ipv4": "127.0.0.1",
|
|
||||||
"port": 3306
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Example Output
|
## Example Output
|
||||||
|
|
||||||
|
The Zipkin data
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"trace_id": 2505404965370368069,
|
||||||
|
"name": "Child",
|
||||||
|
"id": 8090652509916334619,
|
||||||
|
"parent_id": 22964302721410078,
|
||||||
|
"annotations": [],
|
||||||
|
"binary_annotations": [
|
||||||
|
{
|
||||||
|
"key": "lc",
|
||||||
|
"value": "dHJpdmlhbA==",
|
||||||
|
"annotation_type": "STRING",
|
||||||
|
"host": {
|
||||||
|
"ipv4": 2130706433,
|
||||||
|
"port": 0,
|
||||||
|
"service_name": "trivial"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"timestamp": 1498688360851331,
|
||||||
|
"duration": 53106
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trace_id": 2505404965370368069,
|
||||||
|
"name": "Child",
|
||||||
|
"id": 103618986556047333,
|
||||||
|
"parent_id": 22964302721410078,
|
||||||
|
"annotations": [],
|
||||||
|
"binary_annotations": [
|
||||||
|
{
|
||||||
|
"key": "lc",
|
||||||
|
"value": "dHJpdmlhbA==",
|
||||||
|
"annotation_type": "STRING",
|
||||||
|
"host": {
|
||||||
|
"ipv4": 2130706433,
|
||||||
|
"port": 0,
|
||||||
|
"service_name": "trivial"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"timestamp": 1498688360904552,
|
||||||
|
"duration": 50410
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trace_id": 2505404965370368069,
|
||||||
|
"name": "Parent",
|
||||||
|
"id": 22964302721410078,
|
||||||
|
"annotations": [
|
||||||
|
{
|
||||||
|
"timestamp": 1498688360851325,
|
||||||
|
"value": "Starting child #0",
|
||||||
|
"host": {
|
||||||
|
"ipv4": 2130706433,
|
||||||
|
"port": 0,
|
||||||
|
"service_name": "trivial"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"timestamp": 1498688360904545,
|
||||||
|
"value": "Starting child #1",
|
||||||
|
"host": {
|
||||||
|
"ipv4": 2130706433,
|
||||||
|
"port": 0,
|
||||||
|
"service_name": "trivial"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"timestamp": 1498688360954992,
|
||||||
|
"value": "A Log",
|
||||||
|
"host": {
|
||||||
|
"ipv4": 2130706433,
|
||||||
|
"port": 0,
|
||||||
|
"service_name": "trivial"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"binary_annotations": [
|
||||||
|
{
|
||||||
|
"key": "lc",
|
||||||
|
"value": "dHJpdmlhbA==",
|
||||||
|
"annotation_type": "STRING",
|
||||||
|
"host": {
|
||||||
|
"ipv4": 2130706433,
|
||||||
|
"port": 0,
|
||||||
|
"service_name": "trivial"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"timestamp": 1498688360851318,
|
||||||
|
"duration": 103680
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
generated the following metrics
|
||||||
|
|
||||||
|
```text
|
||||||
|
zipkin,id=7047c59776af8a1b,name=child,parent_id=5195e96239641e,service_name=trivial,trace_id=22c4fc8ab3669045 duration_ns=53106000i 1498688360851331000
|
||||||
|
zipkin,annotation=trivial,annotation_key=lc,endpoint_host=127.0.0.1,id=7047c59776af8a1b,name=child,parent_id=5195e96239641e,service_name=trivial,trace_id=22c4fc8ab3669045 duration_ns=53106000i 1498688360851331000
|
||||||
|
zipkin,id=17020eb55a8bfe5,name=child,parent_id=5195e96239641e,service_name=trivial,trace_id=22c4fc8ab3669045 duration_ns=50410000i 1498688360904552000
|
||||||
|
zipkin,annotation=trivial,annotation_key=lc,endpoint_host=127.0.0.1,id=17020eb55a8bfe5,name=child,parent_id=5195e96239641e,service_name=trivial,trace_id=22c4fc8ab3669045 duration_ns=50410000i 1498688360904552000
|
||||||
|
zipkin,id=5195e96239641e,name=parent,parent_id=5195e96239641e,service_name=trivial,trace_id=22c4fc8ab3669045 duration_ns=103680000i 1498688360851318000
|
||||||
|
zipkin,annotation=Starting\ child\ #0,endpoint_host=127.0.0.1,id=5195e96239641e,name=parent,parent_id=5195e96239641e,service_name=trivial,trace_id=22c4fc8ab3669045 duration_ns=103680000i 1498688360851318000
|
||||||
|
zipkin,annotation=Starting\ child\ #1,endpoint_host=127.0.0.1,id=5195e96239641e,name=parent,parent_id=5195e96239641e,service_name=trivial,trace_id=22c4fc8ab3669045 duration_ns=103680000i 1498688360851318000
|
||||||
|
zipkin,annotation=A\ Log,endpoint_host=127.0.0.1,id=5195e96239641e,name=parent,parent_id=5195e96239641e,service_name=trivial,trace_id=22c4fc8ab3669045 duration_ns=103680000i 1498688360851318000
|
||||||
|
zipkin,annotation=trivial,annotation_key=lc,endpoint_host=127.0.0.1,id=5195e96239641e,name=parent,parent_id=5195e96239641e,service_name=trivial,trace_id=22c4fc8ab3669045 duration_ns=103680000i 1498688360851318000
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# This plugin implements the Zipkin http server to gather trace and timing data needed to troubleshoot latency problems in microservice architectures.
|
# Gather data from a Zipkin server including trace and timing data
|
||||||
[[inputs.zipkin]]
|
[[inputs.zipkin]]
|
||||||
## URL path for span data
|
## URL path for span data
|
||||||
# path = "/api/v1/spans"
|
# path = "/api/v1/spans"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue