From 4d05c70146e413882a79b77c089a8e85d5a95b94 Mon Sep 17 00:00:00 2001 From: NguyenHoangSon96 Date: Wed, 5 Nov 2025 11:04:23 +0700 Subject: [PATCH] fix: sync ".md" and ".conf" files --- .../activemq.conf | 5 - .../aerospike.conf | 32 +- .../aliyuncms.conf | 120 +-- .../amqp_consumer.conf | 39 +- .../azure_monitor.conf | 77 ++ .../azure_storage_queue.conf | 6 +- .../bcache.conf | 1 + .../bind.conf | 5 + .../ceph.conf | 17 +- .../cgroup.conf | 1 + .../chrony.conf | 29 +- .../cisco_telemetry_mdt.conf | 21 +- .../clickhouse.conf | 36 +- .../cloud_pubsub.conf | 29 +- .../cloud_pubsub_push.conf | 26 +- .../cloudwatch.conf | 74 +- .../cloudwatch_metric_streams.conf | 3 +- .../conntrack.conf | 15 +- .../consul.conf | 2 +- .../couchbase.conf | 8 +- .../cpu.conf | 1 + .../ctrlx_datalayer.conf | 110 +++ .../directory_monitor.conf | 9 +- .../diskio.conf | 24 +- .../dmcache.conf | 1 + .../dns_query.conf | 10 +- .../docker.conf | 31 +- .../docker_log.conf | 5 +- .../dpdk.conf | 48 +- .../elasticsearch.conf | 36 +- .../elasticsearch_query.conf | 10 +- .../ethtool.conf | 24 + .../eventhub_consumer.conf | 9 + .../exec.conf | 28 +- .../execd.conf | 14 +- .../fail2ban.conf | 5 +- .../fibaro.conf | 5 + .../file.conf | 13 +- .../firehose.conf | 42 + .../fritzbox.conf | 24 + .../gnmi.conf | 136 ++- .../google_cloud_storage.conf | 24 + .../haproxy.conf | 28 +- .../http.conf | 38 +- .../http_listener_v2.conf | 27 +- .../http_response.conf | 38 +- .../huebridge.conf | 19 + .../hugepages.conf | 9 +- .../icinga2.conf | 10 +- .../infiniband.conf | 4 + .../influxdb_listener.conf | 22 +- .../influxdb_v2_listener.conf | 10 + .../intel_baseband.conf | 31 + .../intel_dlb.conf | 22 + .../intel_pmt.conf | 18 + .../intel_pmu.conf | 1 + .../intel_powerstat.conf | 52 +- .../intel_rdt.conf | 43 +- .../internal.conf | 7 + .../internet_speed.conf | 28 +- .../ipmi_sensor.conf | 48 +- .../ipset.conf | 10 +- .../iptables.conf | 14 +- .../ipvs.conf | 1 + .../jenkins.conf | 5 + .../jolokia2_agent.conf | 4 + .../jolokia2_proxy.conf | 4 + .../jti_openconfig_telemetry.conf | 15 +- .../kafka_consumer.conf | 119 ++- .../kernel.conf | 9 +- .../kernel_vmstat.conf | 1 + .../kibana.conf | 7 + .../kinesis_consumer.conf | 62 +- .../knx_listener.conf | 5 +- .../kube_inventory.conf | 27 +- .../kubernetes.conf | 16 +- .../ldap.conf | 47 + .../libvirt.conf | 29 + .../linux_cpu.conf | 1 + .../logstash.conf | 7 + .../lustre2.conf | 12 +- .../lvm.conf | 9 + .../mavlink.conf | 32 + .../mdstat.conf | 1 + .../memcached.conf | 2 +- .../mock.conf | 41 +- .../modbus.conf | 225 ++++- .../mongodb.conf | 31 +- .../mqtt_consumer.conf | 38 +- .../mysql.conf | 11 +- .../nats.conf | 1 + .../nats_consumer.conf | 39 +- .../neoom_beaam.conf | 36 + .../net.conf | 7 - .../net_response.conf | 2 +- .../netflow.conf | 28 + .../nfsclient.conf | 6 +- .../nsdp.conf | 15 + .../nsq_consumer.conf | 19 +- .../ntpq.conf | 17 +- .../opcua.conf | 131 ++- .../opcua_listener.conf | 246 ++++++ .../openntpd.conf | 2 +- .../opensearch_query.conf | 59 ++ .../opensmtpd.conf | 6 +- .../openstack.conf | 11 +- .../opentelemetry.conf | 34 + .../openweathermap.conf | 18 +- .../p4runtime.conf | 23 + .../pgbouncer.conf | 4 + .../phpfpm.conf | 6 + .../ping.conf | 7 +- .../postfix.conf | 1 + .../postgresql.conf | 10 +- .../postgresql_extensible.conf | 34 +- .../powerdns_recursor.conf | 9 + .../processes.conf | 5 +- .../procstat.conf | 81 +- .../prometheus.conf | 128 ++- .../promql.conf | 82 ++ .../proxmox.conf | 15 +- .../rabbitmq.conf | 13 +- .../radius.conf | 15 + .../ras.conf | 1 + .../redfish.conf | 18 +- .../redis.conf | 16 +- .../redis_sentinel.conf | 4 +- .../rethinkdb.conf | 11 +- .../s7comm.conf | 62 ++ .../sensors.conf | 1 + .../sflow.conf | 1 + .../slurm.conf | 46 + .../smart.conf | 4 + .../smartctl.conf | 30 + .../snmp.conf | 16 +- .../snmp_trap.conf | 6 +- .../socket_listener.conf | 89 +- .../socketstat.conf | 4 +- .../solr.conf | 9 +- .../sql.conf | 10 +- .../sqlserver.conf | 52 +- .../stackdriver.conf | 16 +- .../statsd.conf | 36 +- .../suricata.conf | 31 +- .../synproxy.conf | 1 + .../syslog.conf | 63 +- .../sysstat.conf | 3 +- .../systemd_units.conf | 41 +- .../tacacs.conf | 15 + .../tail.conf | 25 +- .../temp.conf | 9 +- .../turbostat.conf | 10 + .../unbound.conf | 3 + .../upsd.conf | 19 + .../varnish.conf | 1 + .../vsphere.conf | 32 +- .../webhooks.conf | 5 + .../whois.conf | 13 + .../win_eventlog.conf | 73 +- .../win_perf_counters.conf | 306 ++++--- .../win_services.conf | 8 +- .../win_wmi.conf | 36 + .../wireless.conf | 1 + .../x509_cert.conf | 14 +- .../zfs.conf | 9 +- .../zipkin.conf | 14 +- .../zookeeper.conf | 36 +- .../components/telegrafPlugins/activemq.md | 26 +- .../components/telegrafPlugins/aerospike.md | 52 +- .../components/telegrafPlugins/aliyuncms.md | 115 ++- .../telegrafPlugins/amd_rocm_smi.md | 54 +- .../telegrafPlugins/amqp_consumer.md | 135 ++- .../components/telegrafPlugins/apache.md | 34 +- .../components/telegrafPlugins/apcupsd.md | 30 +- .../components/telegrafPlugins/aurora.md | 28 +- .../telegrafPlugins/azure_storage_queue.md | 28 +- .../components/telegrafPlugins/bcache.md | 98 +-- .../components/telegrafPlugins/beanstalkd.md | 30 +- .../components/telegrafPlugins/beat.md | 35 +- .../components/telegrafPlugins/bind.md | 46 +- .../components/telegrafPlugins/bond.md | 100 +-- .../components/telegrafPlugins/burrow.md | 26 +- .../components/telegrafPlugins/ceph.md | 498 ++++++----- .../components/telegrafPlugins/cgroup.md | 55 +- .../components/telegrafPlugins/chrony.md | 120 ++- .../telegrafPlugins/cisco_telemetry_mdt.md | 54 +- .../components/telegrafPlugins/clickhouse.md | 28 +- .../telegrafPlugins/cloud_pubsub.md | 66 +- .../telegrafPlugins/cloud_pubsub_push.md | 62 +- .../components/telegrafPlugins/cloudwatch.md | 107 ++- .../cloudwatch_metric_streams.md | 98 ++- .../components/telegrafPlugins/conntrack.md | 100 ++- .../components/telegrafPlugins/consul.md | 33 +- .../telegrafPlugins/consul_agent.md | 28 +- .../components/telegrafPlugins/couchbase.md | 46 +- .../components/telegrafPlugins/couchdb.md | 27 +- .../components/telegrafPlugins/cpu.md | 18 +- .../components/telegrafPlugins/csgo.md | 20 +- .../components/telegrafPlugins/dcos.md | 50 +- .../telegrafPlugins/directory_monitor.md | 53 +- .../components/telegrafPlugins/disk.md | 37 +- .../components/telegrafPlugins/diskio.md | 62 +- .../components/telegrafPlugins/disque.md | 19 +- .../components/telegrafPlugins/dmcache.md | 33 +- .../components/telegrafPlugins/dns_query.md | 29 +- .../components/telegrafPlugins/docker.md | 94 +- .../components/telegrafPlugins/docker_log.md | 34 +- .../components/telegrafPlugins/dovecot.md | 35 +- .../components/telegrafPlugins/dpdk.md | 152 ++-- .../components/telegrafPlugins/ecs.md | 42 +- .../telegrafPlugins/elasticsearch.md | 62 +- .../telegrafPlugins/elasticsearch_query.md | 43 +- .../components/telegrafPlugins/ethtool.md | 77 +- .../telegrafPlugins/eventhub_consumer.md | 45 +- .../components/telegrafPlugins/exec.md | 57 +- .../components/telegrafPlugins/execd.md | 141 ++- .../components/telegrafPlugins/fail2ban.md | 41 +- .../components/telegrafPlugins/fibaro.md | 29 +- .../components/telegrafPlugins/file.md | 43 +- .../components/telegrafPlugins/filecount.md | 23 +- .../components/telegrafPlugins/filestat.md | 34 +- .../components/telegrafPlugins/fireboard.md | 33 +- .../components/telegrafPlugins/fluentd.md | 65 +- .../components/telegrafPlugins/github.md | 32 +- .../components/telegrafPlugins/gnmi.md | 239 ++++- .../components/telegrafPlugins/graylog.md | 37 +- .../components/telegrafPlugins/haproxy.md | 51 +- .../components/telegrafPlugins/hddtemp.md | 35 +- .../components/telegrafPlugins/http.md | 82 +- .../telegrafPlugins/http_listener_v2.md | 73 +- .../telegrafPlugins/http_response.md | 57 +- .../components/telegrafPlugins/hugepages.md | 40 +- .../components/telegrafPlugins/icinga2.md | 161 +++- .../components/telegrafPlugins/infiniband.md | 65 +- .../components/telegrafPlugins/influxdb.md | 127 +-- .../telegrafPlugins/influxdb_listener.md | 79 +- .../telegrafPlugins/influxdb_v2_listener.md | 61 +- .../components/telegrafPlugins/intel_pmu.md | 73 +- .../telegrafPlugins/intel_powerstat.md | 600 ++++++++----- .../components/telegrafPlugins/intel_rdt.md | 151 ++-- .../components/telegrafPlugins/internal.md | 43 +- .../telegrafPlugins/internet_speed.md | 86 +- .../components/telegrafPlugins/interrupts.md | 21 +- .../components/telegrafPlugins/ipmi_sensor.md | 134 ++- .../components/telegrafPlugins/ipset.md | 108 ++- .../components/telegrafPlugins/iptables.md | 149 ++-- .../components/telegrafPlugins/ipvs.md | 46 +- .../components/telegrafPlugins/jenkins.md | 29 +- .../telegrafPlugins/jolokia2_agent.md | 27 +- .../telegrafPlugins/jolokia2_proxy.md | 20 +- .../jti_openconfig_telemetry.md | 46 +- .../telegrafPlugins/kafka_consumer.md | 186 +++- .../components/telegrafPlugins/kapacitor.md | 162 ++-- .../components/telegrafPlugins/kernel.md | 148 +++- .../telegrafPlugins/kernel_vmstat.md | 136 +-- .../components/telegrafPlugins/kibana.md | 31 +- .../telegrafPlugins/kinesis_consumer.md | 103 ++- .../telegrafPlugins/knx_listener.md | 57 +- .../telegrafPlugins/kube_inventory.md | 161 ++-- .../components/telegrafPlugins/kubernetes.md | 110 ++- .../components/telegrafPlugins/lanz.md | 52 +- .../components/telegrafPlugins/leofs.md | 134 +-- .../components/telegrafPlugins/linux_cpu.md | 46 +- .../telegrafPlugins/linux_sysctl_fs.md | 53 +- .../components/telegrafPlugins/logstash.md | 32 +- .../components/telegrafPlugins/lustre2.md | 61 +- .../components/telegrafPlugins/lvm.md | 53 +- .../components/telegrafPlugins/mailchimp.md | 25 +- .../components/telegrafPlugins/marklogic.md | 24 +- .../components/telegrafPlugins/mcrouter.md | 28 +- .../components/telegrafPlugins/mdstat.md | 76 +- .../components/telegrafPlugins/mem.md | 24 +- .../components/telegrafPlugins/memcached.md | 66 +- .../components/telegrafPlugins/mesos.md | 26 +- .../components/telegrafPlugins/minecraft.md | 89 +- .../components/telegrafPlugins/mock.md | 78 +- .../components/telegrafPlugins/modbus.md | 549 ++++++++++-- .../components/telegrafPlugins/mongodb.md | 25 +- .../components/telegrafPlugins/monit.md | 24 +- .../telegrafPlugins/mqtt_consumer.md | 114 ++- .../components/telegrafPlugins/multifile.md | 34 +- .../components/telegrafPlugins/mysql.md | 72 +- .../components/telegrafPlugins/nats.md | 25 +- .../telegrafPlugins/nats_consumer.md | 73 +- .../telegrafPlugins/neptune_apex.md | 146 ++-- .../components/telegrafPlugins/net.md | 54 +- .../telegrafPlugins/net_response.md | 24 +- .../components/telegrafPlugins/netstat.md | 31 +- .../components/telegrafPlugins/nfsclient.md | 254 ++++-- .../components/telegrafPlugins/nginx.md | 29 +- .../components/telegrafPlugins/nginx_plus.md | 29 +- .../telegrafPlugins/nginx_plus_api.md | 116 ++- .../components/telegrafPlugins/nginx_sts.md | 33 +- .../telegrafPlugins/nginx_upstream_check.md | 32 +- .../components/telegrafPlugins/nginx_vts.md | 33 +- .../components/telegrafPlugins/nomad.md | 31 +- .../components/telegrafPlugins/nsd.md | 24 +- .../components/telegrafPlugins/nsq.md | 88 +- .../telegrafPlugins/nsq_consumer.md | 60 +- .../components/telegrafPlugins/nstat.md | 30 +- .../components/telegrafPlugins/ntpq.md | 76 +- .../components/telegrafPlugins/nvidia_smi.md | 118 ++- .../components/telegrafPlugins/opcua.md | 252 ++++-- .../components/telegrafPlugins/openldap.md | 125 +-- .../components/telegrafPlugins/openntpd.md | 89 +- .../components/telegrafPlugins/opensmtpd.md | 113 ++- .../components/telegrafPlugins/openstack.md | 633 +++++++------- .../telegrafPlugins/opentelemetry.md | 92 +- .../telegrafPlugins/openweathermap.md | 97 ++- .../components/telegrafPlugins/passenger.md | 62 +- .../components/telegrafPlugins/pf.md | 96 +- .../components/telegrafPlugins/pgbouncer.md | 78 +- .../components/telegrafPlugins/phpfpm.md | 60 +- .../components/telegrafPlugins/ping.md | 67 +- .../components/telegrafPlugins/postfix.md | 26 +- .../components/telegrafPlugins/postgresql.md | 134 ++- .../telegrafPlugins/postgresql_extensible.md | 113 ++- .../components/telegrafPlugins/powerdns.md | 37 +- .../telegrafPlugins/powerdns_recursor.md | 43 +- .../components/telegrafPlugins/processes.md | 55 +- .../components/telegrafPlugins/procstat.md | 209 ++++- .../components/telegrafPlugins/prometheus.md | 247 +++++- .../components/telegrafPlugins/proxmox.md | 88 +- .../components/telegrafPlugins/puppetagent.md | 101 +-- .../components/telegrafPlugins/rabbitmq.md | 52 +- .../components/telegrafPlugins/raindrops.md | 71 +- .../components/telegrafPlugins/ras.md | 32 +- .../components/telegrafPlugins/ravendb.md | 43 +- .../components/telegrafPlugins/redfish.md | 113 ++- .../components/telegrafPlugins/redis.md | 96 +- .../telegrafPlugins/redis_sentinel.md | 39 +- .../components/telegrafPlugins/rethinkdb.md | 30 +- .../components/telegrafPlugins/riak.md | 129 +-- .../telegrafPlugins/riemann_listener.md | 34 +- .../components/telegrafPlugins/salesforce.md | 22 +- .../components/telegrafPlugins/sensors.md | 63 +- .../components/telegrafPlugins/sflow.md | 151 ++-- .../components/telegrafPlugins/slab.md | 52 +- .../components/telegrafPlugins/smart.md | 202 +++-- .../components/telegrafPlugins/snmp.md | 108 ++- .../components/telegrafPlugins/snmp_trap.md | 69 +- .../telegrafPlugins/socket_listener.md | 142 ++- .../components/telegrafPlugins/socketstat.md | 85 +- .../components/telegrafPlugins/solr.md | 74 +- .../components/telegrafPlugins/sql.md | 59 +- .../components/telegrafPlugins/sqlserver.md | 630 +++++++++----- .../components/telegrafPlugins/stackdriver.md | 66 +- .../components/telegrafPlugins/statsd.md | 98 ++- .../components/telegrafPlugins/supervisor.md | 55 +- .../components/telegrafPlugins/suricata.md | 137 ++- .../components/telegrafPlugins/swap.md | 18 +- .../components/telegrafPlugins/synproxy.md | 48 +- .../components/telegrafPlugins/syslog.md | 191 ++-- .../components/telegrafPlugins/sysstat.md | 561 ++++++------ .../components/telegrafPlugins/system.md | 24 +- .../telegrafPlugins/systemd_units.md | 134 ++- .../components/telegrafPlugins/tail.md | 67 +- .../components/telegrafPlugins/teamspeak.md | 39 +- .../components/telegrafPlugins/temp.md | 48 +- .../components/telegrafPlugins/tengine.md | 28 +- .../components/telegrafPlugins/tomcat.md | 83 +- .../components/telegrafPlugins/trig.md | 18 +- .../components/telegrafPlugins/twemproxy.md | 72 +- .../components/telegrafPlugins/unbound.md | 84 +- .../components/telegrafPlugins/upsd.md | 67 +- .../components/telegrafPlugins/uwsgi.md | 22 +- .../components/telegrafPlugins/varnish.md | 817 ++++++++---------- .../components/telegrafPlugins/vault.md | 37 +- .../components/telegrafPlugins/webhooks.md | 67 +- .../telegrafPlugins/win_eventlog.md | 121 ++- .../telegrafPlugins/win_perf_counters.md | 468 +++++----- .../telegrafPlugins/win_services.md | 89 +- .../components/telegrafPlugins/wireguard.md | 75 +- .../components/telegrafPlugins/wireless.md | 26 +- .../components/telegrafPlugins/x509_cert.md | 80 +- .../components/telegrafPlugins/xtremio.md | 30 +- .../components/telegrafPlugins/zfs.md | 307 +++---- .../components/telegrafPlugins/zipkin.md | 326 +++---- .../components/telegrafPlugins/zookeeper.md | 87 +- 379 files changed, 16877 insertions(+), 7618 deletions(-) create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/azure_monitor.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/ctrlx_datalayer.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/firehose.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/fritzbox.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/google_cloud_storage.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/huebridge.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/intel_baseband.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/intel_dlb.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/intel_pmt.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/ldap.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/libvirt.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/mavlink.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/neoom_beaam.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/netflow.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/nsdp.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/opcua_listener.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/opensearch_query.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/p4runtime.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/promql.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/radius.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/s7comm.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/slurm.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/smartctl.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/tacacs.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/turbostat.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/whois.conf create mode 100644 src/writeData/components/telegrafInputPluginsConfigurationText/win_wmi.conf diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/activemq.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/activemq.conf index b66eb8beee..97c2f993ae 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/activemq.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/activemq.conf @@ -3,11 +3,6 @@ ## ActiveMQ WebConsole URL url = "http://127.0.0.1:8161" - ## Required ActiveMQ Endpoint - ## deprecated in 1.11; use the url option - # server = "192.168.50.10" - # port = 8161 - ## Credentials for basic HTTP authentication # username = "admin" # password = "admin" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/aerospike.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/aerospike.conf index 00e867dcd6..a59033723b 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/aerospike.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/aerospike.conf @@ -1,3 +1,4 @@ +## DEPRECATED: The "aerospike" plugin is deprecated in version 1.30.0 and will be removed in 1.40.0, use 'inputs.prometheus' with the Aerospike Prometheus Exporter instead. # Read stats from aerospike server(s) [[inputs.aerospike]] ## Aerospike servers to connect to (with port) @@ -9,13 +10,30 @@ # password = "pa$$word" ## Optional TLS Config - # enable_tls = false - # tls_ca = "/etc/telegraf/ca.pem" - # tls_cert = "/etc/telegraf/cert.pem" - # tls_key = "/etc/telegraf/key.pem" - # tls_name = "tlsname" - ## If false, skip chain & host verification - # insecure_skip_verify = true + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" + ## Minimal TLS version to accept by the client + # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" + ## Use TLS but skip chain & host verification + # insecure_skip_verify = false # Feature Options # Add namespace variable to limit the namespaces executed on diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/aliyuncms.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/aliyuncms.conf index 640674ca6d..ab343ed78e 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/aliyuncms.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/aliyuncms.conf @@ -19,18 +19,21 @@ # public_key_id = "" # role_name = "" - ## Specify the ali cloud region list to be queried for metrics and objects discovery - ## If not set, all supported regions (see below) would be covered, it can provide a significant load on API, so the recommendation here - ## is to limit the list as much as possible. Allowed values: https://www.alibabacloud.com/help/zh/doc-detail/40654.htm + ## Specify ali cloud regions to be queried for metric and object discovery + ## If not set, all supported regions (see below) would be covered, it can + ## provide a significant load on API, so the recommendation here is to + ## limit the list as much as possible. + ## Allowed values: https://www.alibabacloud.com/help/zh/doc-detail/40654.htm ## Default supported regions are: - ## 21 items: cn-qingdao,cn-beijing,cn-zhangjiakou,cn-huhehaote,cn-hangzhou,cn-shanghai,cn-shenzhen, - ## cn-heyuan,cn-chengdu,cn-hongkong,ap-southeast-1,ap-southeast-2,ap-southeast-3,ap-southeast-5, - ## ap-south-1,ap-northeast-1,us-west-1,us-east-1,eu-central-1,eu-west-1,me-east-1 + ## cn-qingdao,cn-beijing,cn-zhangjiakou,cn-huhehaote,cn-hangzhou, + ## cn-shanghai, cn-shenzhen, cn-heyuan,cn-chengdu,cn-hongkong, + ## ap-southeast-1,ap-southeast-2,ap-southeast-3,ap-southeast-5, + ## ap-south-1,ap-northeast-1, us-west-1,us-east-1,eu-central-1, + ## eu-west-1,me-east-1 ## - ## From discovery perspective it set the scope for object discovery, the discovered info can be used to enrich - ## the metrics with objects attributes/tags. Discovery is supported not for all projects (if not supported, then - ## it will be reported on the start - for example for 'acs_cdn' project: - ## 'E! [inputs.aliyuncms] Discovery tool is not activated: no discovery support for project "acs_cdn"' ) + ## From discovery perspective it set the scope for object discovery, + ## the discovered info can be used to enrich the metrics with objects + ## attributes/tags. Discovery is not supported for all projects. ## Currently, discovery supported for the following projects: ## - acs_ecs_dashboard ## - acs_rds_dashboard @@ -38,22 +41,23 @@ ## - acs_vpc_eip regions = ["cn-hongkong"] - # The minimum period for AliyunCMS metrics is 1 minute (60s). However not all - # metrics are made available to the 1 minute period. Some are collected at - # 3 minute, 5 minute, or larger intervals. - # See: https://help.aliyun.com/document_detail/51936.html?spm=a2c4g.11186623.2.18.2bc1750eeOw1Pv - # Note that if a period is configured that is smaller than the minimum for a - # particular metric, that metric will not be returned by the Aliyun OpenAPI - # and will not be collected by Telegraf. - # - ## Requested AliyunCMS aggregation Period (required - must be a multiple of 60s) + ## Requested AliyunCMS aggregation Period (required) + ## The period must be multiples of 60s and the minimum for AliyunCMS metrics + ## is 1 minute (60s). However not all metrics are made available to the + ## one minute period. Some are collected at 3 minute, 5 minute, or larger + ## intervals. + ## See: https://help.aliyun.com/document_detail/51936.html?spm=a2c4g.11186623.2.18.2bc1750eeOw1Pv + ## Note that if a period is configured that is smaller than the minimum for + ## a particular metric, that metric will not be returned by Aliyun's + ## OpenAPI and will not be collected by Telegraf. period = "5m" - ## Collection Delay (required - must account for metrics availability via AliyunCMS API) + ## Collection Delay (required) + ## The delay must account for metrics availability via AliyunCMS API. delay = "1m" - ## Recommended: use metric 'interval' that is a multiple of 'period' to avoid - ## gaps or overlap in pulled data + ## Recommended: use metric 'interval' that is a multiple of 'period' + ## to avoid gaps or overlap in pulled data interval = "5m" ## Metric Statistic Project (required) @@ -65,36 +69,52 @@ ## How often the discovery API call executed (default 1m) #discovery_interval = "1m" - ## Metrics to Pull (Required) + ## NOTE: Due to the way TOML is parsed, tables must be at the END of the + ## plugin definition, otherwise additional config options are read as part of + ## the table + + ## Metrics to Pull + ## At least one metrics definition required [[inputs.aliyuncms.metrics]] - ## Metrics names to be requested, - ## described here (per project): https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq - names = ["InstanceActiveConnection", "InstanceNewConnection"] + ## Metrics names to be requested, + ## Description can be found here (per project): + ## https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq + names = ["InstanceActiveConnection", "InstanceNewConnection"] - ## Dimension filters for Metric (these are optional). - ## This allows to get additional metric dimension. If dimension is not specified it can be returned or - ## the data can be aggregated - it depends on particular metric, you can find details here: https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq - ## - ## Note, that by default dimension filter includes the list of discovered objects in scope (if discovery is enabled) - ## Values specified here would be added into the list of discovered objects. - ## You can specify either single dimension: - #dimensions = '{"instanceId": "p-example"}' + ## Dimension filters for Metric (optional) + ## This allows to get additional metric dimension. If dimension is not + ## specified it can be returned or the data can be aggregated - it depends + ## on particular metric, you can find details here: + ## https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq + ## + ## Note, that by default dimension filter includes the list of discovered + ## objects in scope (if discovery is enabled). Values specified here would + ## be added into the list of discovered objects. You can specify either + ## single dimension: + # dimensions = '{"instanceId": "p-example"}' - ## Or you can specify several dimensions at once: - #dimensions = '[{"instanceId": "p-example"},{"instanceId": "q-example"}]' + ## Or you can specify several dimensions at once: + # dimensions = '[{"instanceId": "p-example"},{"instanceId": "q-example"}]' - ## Enrichment tags, can be added from discovery (if supported) - ## Notation is : - ## To figure out which fields are available, consult the Describe API per project. - ## For example, for SLB: https://api.aliyun.com/#/?product=Slb&version=2014-05-15&api=DescribeLoadBalancers¶ms={}&tab=MOCK&lang=GO - #tag_query_path = [ - # "address:Address", - # "name:LoadBalancerName", - # "cluster_owner:Tags.Tag[?TagKey=='cs.cluster.name'].TagValue | [0]" - # ] - ## The following tags added by default: regionId (if discovery enabled), userId, instanceId. + ## Tag Query Path + ## The following tags added by default: + ## * regionId (if discovery enabled) + ## * userId + ## * instanceId + ## Enrichment tags, can be added from discovery (if supported) + ## Notation is + ## : + ## To figure out which fields are available, consult the + ## Describe API per project. For example, for SLB see: + ## https://api.aliyun.com/#/?product=Slb&version=2014-05-15&api=DescribeLoadBalancers¶ms={}&tab=MOCK&lang=GO + # tag_query_path = [ + # "address:Address", + # "name:LoadBalancerName", + # "cluster_owner:Tags.Tag[?TagKey=='cs.cluster.name'].TagValue | [0]" + # ] - ## Allow metrics without discovery data, if discovery is enabled. If set to true, then metric without discovery - ## data would be emitted, otherwise dropped. This cane be of help, in case debugging dimension filters, or partial coverage - ## of discovery scope vs monitoring scope - #allow_dps_without_discovery = false + ## Allow metrics without discovery data, if discovery is enabled. + ## If set to true, then metric without discovery data would be emitted, otherwise dropped. + ## This cane be of help, in case debugging dimension filters, or partial coverage of + ## discovery scope vs monitoring scope + # allow_dps_without_discovery = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/amqp_consumer.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/amqp_consumer.conf index 87992e35c4..6e97726261 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/amqp_consumer.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/amqp_consumer.conf @@ -34,6 +34,14 @@ ## If true, queue will be passively declared. # queue_passive = false + ## Additional arguments when consuming from Queue + # queue_consume_arguments = { } + # queue_consume_arguments = {"x-stream-offset" = "first"} + + ## Additional queue arguments. + # queue_arguments = { } + # queue_arguments = {"x-max-length" = 100} + ## A binding between the exchange and queue using this binding key is ## created. If unset, no binding is created. binding_key = "#" @@ -41,16 +49,21 @@ ## Maximum number of messages server should give to the worker. # prefetch_count = 50 - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 + ## Timeout for establishing the connection to a broker + # timeout = "30s" + ## Auth method. PLAIN and EXTERNAL are supported ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as ## described here: https://www.rabbitmq.com/plugins.html @@ -63,10 +76,18 @@ ## Use TLS but skip chain & host verification # insecure_skip_verify = false - ## Content encoding for message payloads, can be set to "gzip" to or - ## "identity" to apply no encoding. + ## Content encoding for message payloads, can be set to + ## "gzip", "identity" or "auto" + ## - Use "gzip" to decode gzip + ## - Use "identity" to apply no encoding + ## - Use "auto" determine the encoding using the ContentEncoding header # content_encoding = "identity" + ## Maximum size of decoded message. + ## Acceptable units are B, KiB, KB, MiB, MB... + ## Without quotes and units, interpreted as size in bytes. + # max_decompression_size = "500MB" + ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/azure_monitor.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/azure_monitor.conf new file mode 100644 index 0000000000..9eb28b1edb --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/azure_monitor.conf @@ -0,0 +1,77 @@ +# Gather Azure resources metrics from Azure Monitor API +[[inputs.azure_monitor]] + # can be found under Overview->Essentials in the Azure portal for your application/service + subscription_id = "<>" + # can be obtained by registering an application under Azure Active Directory + client_id = "<>" + # can be obtained by registering an application under Azure Active Directory. + # If not specified Default Azure Credentials chain will be attempted: + # - Environment credentials (AZURE_*) + # - Workload Identity in Kubernetes cluster + # - Managed Identity + # - Azure CLI auth + # - Developer Azure CLI auth + client_secret = "<>" + # can be found under Azure Active Directory->Properties + tenant_id = "<>" + # Define the optional Azure cloud option e.g. AzureChina, AzureGovernment or AzurePublic. The default is AzurePublic. + # cloud_option = "AzurePublic" + + # resource target #1 to collect metrics from + [[inputs.azure_monitor.resource_target]] + # can be found under Overview->Essentials->JSON View in the Azure portal for your application/service + # must start with 'resourceGroups/...' ('/subscriptions/xxxxxxxx-xxxx-xxxx-xxx-xxxxxxxxxxxx' + # must be removed from the beginning of Resource ID property value) + resource_id = "<>" + # the metric names to collect + # leave the array empty to use all metrics available to this resource + metrics = [ "<>", "<>" ] + # metrics aggregation type value to collect + # can be 'Total', 'Count', 'Average', 'Minimum', 'Maximum' + # leave the array empty to collect all aggregation types values for each metric + aggregations = [ "<>", "<>" ] + + # resource target #2 to collect metrics from + [[inputs.azure_monitor.resource_target]] + resource_id = "<>" + metrics = [ "<>", "<>" ] + aggregations = [ "<>", "<>" ] + + # resource group target #1 to collect metrics from resources under it with resource type + [[inputs.azure_monitor.resource_group_target]] + # the resource group name + resource_group = "<>" + + # defines the resources to collect metrics from + [[inputs.azure_monitor.resource_group_target.resource]] + # the resource type + resource_type = "<>" + metrics = [ "<>", "<>" ] + aggregations = [ "<>", "<>" ] + + # defines the resources to collect metrics from + [[inputs.azure_monitor.resource_group_target.resource]] + resource_type = "<>" + metrics = [ "<>", "<>" ] + aggregations = [ "<>", "<>" ] + + # resource group target #2 to collect metrics from resources under it with resource type + [[inputs.azure_monitor.resource_group_target]] + resource_group = "<>" + + [[inputs.azure_monitor.resource_group_target.resource]] + resource_type = "<>" + metrics = [ "<>", "<>" ] + aggregations = [ "<>", "<>" ] + + # subscription target #1 to collect metrics from resources under it with resource type + [[inputs.azure_monitor.subscription_target]] + resource_type = "<>" + metrics = [ "<>", "<>" ] + aggregations = [ "<>", "<>" ] + + # subscription target #2 to collect metrics from resources under it with resource type + [[inputs.azure_monitor.subscription_target]] + resource_type = "<>" + metrics = [ "<>", "<>" ] + aggregations = [ "<>", "<>" ] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/azure_storage_queue.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/azure_storage_queue.conf index 54799105f6..f80879f443 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/azure_storage_queue.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/azure_storage_queue.conf @@ -1,10 +1,8 @@ # Gather Azure Storage Queue metrics [[inputs.azure_storage_queue]] - ## Required Azure Storage Account name + ## Azure Storage Account name and shared access key (required) account_name = "mystorageaccount" - - ## Required Azure Storage Account access key account_key = "storageaccountaccesskey" - ## Set to false to disable peeking age of oldest message (executes faster) + ## Disable peeking age of oldest message (faster) # peek_oldest_message_age = true diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/bcache.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/bcache.conf index d2639cdbc8..2d4e777ec0 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/bcache.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/bcache.conf @@ -1,4 +1,5 @@ # Read metrics of bcache from stats_total and dirty_data +# This plugin ONLY supports Linux [[inputs.bcache]] ## Bcache sets path ## If not specified, then default is: diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/bind.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/bind.conf index 9550953706..bcfb22628c 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/bind.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/bind.conf @@ -6,5 +6,10 @@ # gather_memory_contexts = false # gather_views = false + ## Report xml v3 counters as integers instead of unsigned for backward + ## compatibility. Set this to false as soon as possible! + ## Values are clipped if exceeding the integer range. + # report_counters_as_int = true + ## Timeout for http requests made by bind nameserver # timeout = "4s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/ceph.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/ceph.conf index 5cc4b2537e..3f29d5c37d 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/ceph.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/ceph.conf @@ -1,7 +1,8 @@ -# Collects performance metrics from the MON, OSD, MDS and RGW nodes in a Ceph storage cluster. +# Collects performance metrics from the MON, OSD, MDS and RGW nodes +# in a Ceph storage cluster. [[inputs.ceph]] - ## This is the recommended interval to poll. Too frequent and you will lose - ## data points due to timeouts during rebalancing and recovery + ## This is the recommended interval to poll. Too frequent and you + ## will lose data points due to timeouts during rebalancing and recovery interval = '1m' ## All configuration values are optional, defaults are shown below @@ -21,9 +22,9 @@ ## suffix used to identify socket files socket_suffix = "asok" - ## Ceph user to authenticate as, ceph will search for the corresponding keyring - ## e.g. client.admin.keyring in /etc/ceph, or the explicit path defined in the - ## client section of ceph.conf for example: + ## Ceph user to authenticate as, ceph will search for the corresponding + ## keyring e.g. client.admin.keyring in /etc/ceph, or the explicit path + ## defined in the client section of ceph.conf for example: ## ## [client.telegraf] ## keyring = /etc/ceph/client.telegraf.keyring @@ -37,6 +38,6 @@ ## Whether to gather statistics via the admin socket gather_admin_socket_stats = true - ## Whether to gather statistics via ceph commands, requires ceph_user and ceph_config - ## to be specified + ## Whether to gather statistics via ceph commands, requires ceph_user + ## and ceph_config to be specified gather_cluster_stats = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/cgroup.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/cgroup.conf index f931a11a74..fd7192fb30 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/cgroup.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/cgroup.conf @@ -1,4 +1,5 @@ # Read specific statistics per cgroup +# This plugin ONLY supports Linux [[inputs.cgroup]] ## Directories in which to look for files, globs are supported. ## Consider restricting paths to the set of cgroups you really diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/chrony.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/chrony.conf index 2a4e2923ce..dd896c8a87 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/chrony.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/chrony.conf @@ -1,4 +1,29 @@ -# Get standard chrony metrics, requires chronyc executable. +# Get standard chrony metrics. [[inputs.chrony]] - ## If true, chronyc tries to perform a DNS lookup for the time server. + ## Server address of chronyd with address scheme + ## If empty or not set, the plugin will mimic the behavior of chronyc and + ## check "unixgram:///run/chrony/chronyd.sock", "udp://127.0.0.1:323" + ## and "udp://[::1]:323". + # server = "" + + ## Timeout for establishing the connection + # timeout = "5s" + + ## Try to resolve received addresses to host-names via DNS lookups + ## Disabled by default to avoid DNS queries especially for slow DNS servers. # dns_lookup = false + + ## Metrics to query named according to chronyc commands + ## Available settings are: + ## activity -- number of peers online or offline + ## tracking -- information about system's clock performance + ## serverstats -- chronyd server statistics + ## sources -- extended information about peers + ## sourcestats -- statistics on peers + # metrics = ["tracking"] + + ## Socket group & permissions + ## If the user requests collecting metrics via unix socket, then it is created + ## with the following group and permissions. + # socket_group = "chrony" + # socket_perms = "0660" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/cisco_telemetry_mdt.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/cisco_telemetry_mdt.conf index 601fd9e9a2..93c718c576 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/cisco_telemetry_mdt.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/cisco_telemetry_mdt.conf @@ -7,7 +7,8 @@ ## Address and port to host telemetry listener service_address = ":57000" - ## Grpc Maximum Message Size, default is 4MB, increase the size. + ## Grpc Maximum Message Size, default is 4MB, increase the size. This is + ## stored as a uint32, and limited to 4294967295. max_msg_size = 4000000 ## Enable TLS; grpc transport only. @@ -21,6 +22,12 @@ ## Define (for certain nested telemetry measurements with embedded tags) which fields are tags # embedded_tags = ["Cisco-IOS-XR-qos-ma-oper:qos/interface-table/interface/input/service-policy-names/service-policy-instance/statistics/class-stats/class-name"] + ## Include the delete field in every telemetry message. + # include_delete_field = false + + ## Specify custom name for incoming MDT source field. + # source_field_name = "mdt_source" + ## Define aliases to map telemetry encoding paths to simple measurement names [inputs.cisco_telemetry_mdt.aliases] ifstats = "ietf-interfaces:interfaces-state/interface/statistics" @@ -38,3 +45,15 @@ # dnpath = '{"Name": "show ip route summary","prop": [{"Key": "routes","Value": "string"}, {"Key": "best-paths","Value": "string"}]}' # dnpath2 = '{"Name": "show processes cpu","prop": [{"Key": "kernel_percent","Value": "float"}, {"Key": "idle_percent","Value": "float"}, {"Key": "process","Value": "string"}, {"Key": "user_percent","Value": "float"}, {"Key": "onesec","Value": "float"}]}' # dnpath3 = '{"Name": "show processes memory physical","prop": [{"Key": "processname","Value": "string"}]}' + + ## Additional GRPC connection settings. + [inputs.cisco_telemetry_mdt.grpc_enforcement_policy] + ## GRPC permit keepalives without calls, set to true if your clients are + ## sending pings without calls in-flight. This can sometimes happen on IOS-XE + ## devices where the GRPC connection is left open but subscriptions have been + ## removed, and adding subsequent subscriptions does not keep a stable session. + # permit_keepalive_without_calls = false + + ## GRPC minimum timeout between successive pings, decreasing this value may + ## help if this plugin is closing connections with ENHANCE_YOUR_CALM (too_many_pings). + # keepalive_minimum_time = "5m" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/clickhouse.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/clickhouse.conf index e5b5f08f10..f06e1c0f8d 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/clickhouse.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/clickhouse.conf @@ -1,38 +1,41 @@ # Read metrics from one or many ClickHouse servers [[inputs.clickhouse]] ## Username for authorization on ClickHouse server - ## example: username = "default" username = "default" ## Password for authorization on ClickHouse server - ## example: password = "super_secret" + # password = "" ## HTTP(s) timeout while getting metrics values - ## The timeout includes connection time, any redirects, and reading the response body. - ## example: timeout = 1s + ## The timeout includes connection time, any redirects, and reading the + ## response body. # timeout = 5s ## List of servers for metrics scraping ## metrics scrape via HTTP(s) clickhouse interface ## https://clickhouse.tech/docs/en/interfaces/http/ - ## example: servers = ["http://127.0.0.1:8123","https://custom-server.mdb.yandexcloud.net"] - servers = ["http://127.0.0.1:8123"] + servers = ["http://127.0.0.1:8123"] - ## If "auto_discovery"" is "true" plugin tries to connect to all servers available in the cluster - ## with using same "user:password" described in "user" and "password" parameters - ## and get this server hostname list from "system.clusters" table - ## see + ## Server Variant + ## When set to "managed", some queries are excluded from being run. This is + ## useful for instances hosted in ClickHouse Cloud where certain tables are + ## not available. + # variant = "self-hosted" + + ## If "auto_discovery"" is "true" plugin tries to connect to all servers + ## available in the cluster with using same "user:password" described in + ## "user" and "password" parameters and get this server hostname list from + ## "system.clusters" table. See ## - https://clickhouse.tech/docs/en/operations/system_tables/#system-clusters ## - https://clickhouse.tech/docs/en/operations/server_settings/settings/#server_settings_remote_servers ## - https://clickhouse.tech/docs/en/operations/table_engines/distributed/ ## - https://clickhouse.tech/docs/en/operations/table_engines/replication/#creating-replicated-tables - ## example: auto_discovery = false # auto_discovery = true ## Filter cluster names in "system.clusters" when "auto_discovery" is "true" ## when this filter present then "WHERE cluster IN (...)" filter will apply - ## please use only full cluster names here, regexp and glob filters is not allowed - ## for "/etc/clickhouse-server/config.d/remote.xml" + ## please use only full cluster names here, regexp and glob filters is not + ## allowed for "/etc/clickhouse-server/config.d/remote.xml" ## ## ## @@ -44,7 +47,7 @@ ## clickhouse-eu-1.local9000 ## clickhouse-eu-2.local9000 ## - ## + ## ## ## ## @@ -52,8 +55,9 @@ ## example: cluster_include = ["my-own-cluster"] # cluster_include = [] - ## Filter cluster names in "system.clusters" when "auto_discovery" is "true" - ## when this filter present then "WHERE cluster NOT IN (...)" filter will apply + ## Filter cluster names in "system.clusters" when "auto_discovery" is + ## "true" when this filter present then "WHERE cluster NOT IN (...)" + ## filter will apply ## example: cluster_exclude = ["my-internal-not-discovered-cluster"] # cluster_exclude = [] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/cloud_pubsub.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/cloud_pubsub.conf index 81a8290917..6c6c1545f5 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/cloud_pubsub.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/cloud_pubsub.conf @@ -29,20 +29,21 @@ ## treated as no limit. # max_message_len = 1000000 - ## Optional. Maximum messages to read from PubSub that have not been written - ## to an output. Defaults to %d. - ## For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message contains 10 metrics and the output - ## metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## The following are optional Subscription ReceiveSettings in PubSub. ## Read more about these values: - ## https://godoc.org/cloud.google.com/go/pubsub#ReceiveSettings + ## https://godoc.org/cloud.google.com/go/pubsub/v2#ReceiveSettings ## Optional. Maximum number of seconds for which a PubSub subscription ## should auto-extend the PubSub ACK deadline for each message. If less than @@ -72,3 +73,13 @@ ## PubSub message data before parsing. Many GCP services that ## output JSON to Google PubSub base64-encode the JSON payload. # base64_data = false + + ## Content encoding for message payloads, can be set to "gzip" or + ## "identity" to apply no encoding. + # content_encoding = "identity" + + ## If content encoding is not "identity", sets the maximum allowed size, + ## in bytes, for a message payload when it's decompressed. Can be increased + ## for larger payloads or reduced to protect against decompression bombs. + ## Acceptable units are B, KiB, KB, MiB, MB... + # max_decompression_size = "500MB" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/cloud_pubsub_push.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/cloud_pubsub_push.conf index c058fd96c9..38d3909b9f 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/cloud_pubsub_push.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/cloud_pubsub_push.conf @@ -11,27 +11,29 @@ ## Maximum duration before timing out read of the request # read_timeout = "10s" - ## Maximum duration before timing out write of the response. This should be set to a value - ## large enough that you can send at least 'metric_batch_size' number of messages within the - ## duration. + ## Maximum duration before timing out write of the response. This should be + ## set to a value large enough that you can send at least 'metric_batch_size' + ## number of messages within the duration. # write_timeout = "10s" ## Maximum allowed http request body size in bytes. ## 0 means to use the default of 524,288,00 bytes (500 mebibytes) # max_body_size = "500MB" - ## Whether to add the pubsub metadata, such as message attributes and subscription as a tag. + ## Whether to add the pubsub metadata, such as message attributes and + ## subscription as a tag. # add_meta = false - ## Optional. Maximum messages to read from PubSub that have not been written - ## to an output. Defaults to 1000. - ## For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message contains 10 metrics and the output - ## metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Set one or more allowed client CA certificate file names to diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/cloudwatch.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/cloudwatch.conf index 51fb6142e9..242b956ffe 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/cloudwatch.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/cloudwatch.conf @@ -5,7 +5,8 @@ ## Amazon Credentials ## Credentials are loaded in the following order - ## 1) Web identity provider credentials via STS if role_arn and web_identity_token_file are specified + ## 1) Web identity provider credentials via STS if role_arn and + ## web_identity_token_file are specified ## 2) Assumed credentials via STS if role_arn is specified ## 3) explicit credentials from 'access_key' and 'secret_key' ## 4) shared profile from 'profile' @@ -21,6 +22,11 @@ # profile = "" # shared_credential_file = "" + ## If you are using CloudWatch cross-account observability, you can + ## set IncludeLinkedAccounts to true in a monitoring account + ## and collect metrics from the linked source accounts + # include_linked_accounts = false + ## Endpoint to make request against, the correct endpoint is automatically ## determined and this option should only be set if you wish to override the ## default. @@ -31,50 +37,67 @@ # use_system_proxy = false # http_proxy_url = "http://localhost:8888" - # The minimum period for Cloudwatch metrics is 1 minute (60s). However not all - # metrics are made available to the 1 minute period. Some are collected at - # 3 minute, 5 minute, or larger intervals. See https://aws.amazon.com/cloudwatch/faqs/#monitoring. - # Note that if a period is configured that is smaller than the minimum for a - # particular metric, that metric will not be returned by the Cloudwatch API - # and will not be collected by Telegraf. + ## The minimum period for Cloudwatch metrics is 1 minute (60s). However not + ## all metrics are made available to the 1 minute period. Some are collected + ## at 3 minute, 5 minute, or larger intervals. + ## See https://aws.amazon.com/cloudwatch/faqs/#monitoring. + ## Note that if a period is configured that is smaller than the minimum for a + ## particular metric, that metric will not be returned by the Cloudwatch API + ## and will not be collected by Telegraf. # - ## Requested CloudWatch aggregation Period (required - must be a multiple of 60s) + ## Requested CloudWatch aggregation Period (required) + ## Must be a multiple of 60s. period = "5m" - ## Collection Delay (required - must account for metrics availability via CloudWatch API) + ## Collection Delay (required) + ## Must account for metrics availability via CloudWatch API delay = "5m" ## Recommended: use metric 'interval' that is a multiple of 'period' to avoid ## gaps or overlap in pulled data interval = "5m" - ## Recommended if "delay" and "period" are both within 3 hours of request time. Invalid values will be ignored. - ## Recently Active feature will only poll for CloudWatch ListMetrics values that occurred within the last 3 Hours. - ## If enabled, it will reduce total API usage of the CloudWatch ListMetrics API and require less memory to retain. - ## Do not enable if "period" or "delay" is longer than 3 hours, as it will not return data more than 3 hours old. + ## Recommended if "delay" and "period" are both within 3 hours of request + ## time. Invalid values will be ignored. Recently Active feature will only + ## poll for CloudWatch ListMetrics values that occurred within the last 3h. + ## If enabled, it will reduce total API usage of the CloudWatch ListMetrics + ## API and require less memory to retain. + ## Do not enable if "period" or "delay" is longer than 3 hours, as it will + ## not return data more than 3 hours old. ## See https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html - #recently_active = "PT3H" + # recently_active = "PT3H" ## Configure the TTL for the internal cache of metrics. # cache_ttl = "1h" - ## Metric Statistic Namespaces (required) - namespaces = ["AWS/ELB"] - # A single metric statistic namespace that will be appended to namespaces on startup - # namespace = "AWS/ELB" + ## Metric Statistic Namespaces, wildcards are allowed + # namespaces = ["*"] + + ## Metric Format + ## This determines the format of the produces metrics. 'sparse', the default + ## will produce a unique field for each statistic. 'dense' will report all + ## statistics will be in a field called value and have a metric_name tag + ## defining the name of the statistic. See the plugin README for examples. + # metric_format = "sparse" - ## Maximum requests per second. Note that the global default AWS rate limit is - ## 50 reqs/sec, so if you define multiple namespaces, these should add up to a - ## maximum of 50. + ## Maximum requests per second. Note that the global default AWS rate limit + ## is 50 reqs/sec, so if you define multiple namespaces, these should add up + ## to a maximum of 50. ## See http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html # ratelimit = 25 ## Timeout for http requests made by the cloudwatch client. # timeout = "5s" + ## Batch Size + ## The size of each batch to send requests to Cloudwatch. 500 is the + ## suggested largest size. If a request gets to large (413 errors), consider + ## reducing this amount. + # batch_size = 500 + ## Namespace-wide statistic filters. These allow fewer queries to be made to ## cloudwatch. - # statistic_include = [ "average", "sum", "minimum", "maximum", sample_count" ] + # statistic_include = ["average", "sum", "minimum", "maximum", sample_count"] # statistic_exclude = [] ## Metrics to Pull @@ -85,11 +108,12 @@ # # ## Statistic filters for Metric. These allow for retrieving specific # ## statistics for an individual metric. - # # statistic_include = [ "average", "sum", "minimum", "maximum", sample_count" ] + # # statistic_include = ["average", "sum", "minimum", "maximum", sample_count"] # # statistic_exclude = [] # - # ## Dimension filters for Metric. All dimensions defined for the metric names - # ## must be specified in order to retrieve the metric statistics. + # ## Dimension filters for Metric. + # ## All dimensions defined for the metric names must be specified in order + # ## to retrieve the metric statistics. # ## 'value' has wildcard / 'glob' matching support such as 'p-*'. # [[inputs.cloudwatch.metrics.dimensions]] # name = "LoadBalancerName" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/cloudwatch_metric_streams.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/cloudwatch_metric_streams.conf index 26424cb4ac..7d36bb9d35 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/cloudwatch_metric_streams.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/cloudwatch_metric_streams.conf @@ -19,7 +19,8 @@ ## Optional access key for Firehose security. # access_key = "test-key" - ## An optional flag to keep Metric Streams metrics compatible with CloudWatch's API naming + ## An optional flag to keep Metric Streams metrics compatible with + ## CloudWatch's API naming # api_compatability = false ## Set one or more allowed client CA certificate file names to diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/conntrack.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/conntrack.conf index 47a0f707fa..805dd883ad 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/conntrack.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/conntrack.conf @@ -1,14 +1,21 @@ # Collects conntrack stats from the configured directories and files. +# This plugin ONLY supports Linux [[inputs.conntrack]] ## The following defaults would work with multiple versions of conntrack. ## Note the nf_ and ip_ filename prefixes are mutually exclusive across ## kernel versions, as are the directory locations. - ## Superset of filenames to look for within the conntrack dirs. - ## Missing files will be ignored. - files = ["ip_conntrack_count","ip_conntrack_max", - "nf_conntrack_count","nf_conntrack_max"] + ## Look through /proc/net/stat/nf_conntrack for these metrics + ## all - aggregated statistics + ## percpu - include detailed statistics with cpu tag + collect = ["all", "percpu"] + ## User-specified directories and files to look through ## Directories to search within for the conntrack files above. ## Missing directories will be ignored. dirs = ["/proc/sys/net/ipv4/netfilter","/proc/sys/net/netfilter"] + + ## Superset of filenames to look for within the conntrack dirs. + ## Missing files will be ignored. + files = ["ip_conntrack_count","ip_conntrack_max", + "nf_conntrack_count","nf_conntrack_max"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/consul.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/consul.conf index 8c15eb4f5a..4f595a7530 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/consul.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/consul.conf @@ -33,5 +33,5 @@ ## Consul checks' tag splitting # When tags are formatted like "key:value" with ":" as a delimiter then - # they will be splitted and reported as proper key:value in Telegraf + # they will be split and reported as proper key:value in Telegraf # tag_delimiter = ":" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/couchbase.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/couchbase.conf index ccbdd52025..66147a384e 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/couchbase.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/couchbase.conf @@ -25,7 +25,11 @@ ## Whether to collect cluster-wide bucket statistics ## It is recommended to disable this in favor of node_stats ## to get a better view of the cluster. - cluster_bucket_stats = true + # cluster_bucket_stats = true ## Whether to collect bucket stats for each individual node - node_bucket_stats = false + # node_bucket_stats = false + + ## List of additional stats to collect, choose from: + ## * autofailover + # additional_stats = [] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/cpu.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/cpu.conf index b0254b95de..9544b2706d 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/cpu.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/cpu.conf @@ -7,6 +7,7 @@ ## If true, collect raw CPU time metrics collect_cpu_time = false ## If true, compute and report the sum of all non-idle CPU states + ## NOTE: The resulting 'time_active' field INCLUDES 'iowait'! report_active = false ## If true and the info is available then add core_id and physical_id tags core_tags = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/ctrlx_datalayer.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/ctrlx_datalayer.conf new file mode 100644 index 0000000000..1b62e1b2e6 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/ctrlx_datalayer.conf @@ -0,0 +1,110 @@ +# A ctrlX Data Layer server sent event input plugin +[[inputs.ctrlx_datalayer]] + ## Hostname or IP address of the ctrlX CORE Data Layer server + ## example: server = "localhost" # Telegraf is running directly on the device + ## server = "192.168.1.1" # Connect to ctrlX CORE remote via IP + ## server = "host.example.com" # Connect to ctrlX CORE remote via hostname + ## server = "10.0.2.2:8443" # Connect to ctrlX CORE Virtual from development environment + server = "localhost" + + ## Authentication credentials + username = "boschrexroth" + password = "boschrexroth" + + ## Use TLS but skip chain & host verification + # insecure_skip_verify = false + + ## Timeout for HTTP requests. (default: "10s") + # timeout = "10s" + + + ## Create a ctrlX Data Layer subscription. + ## It is possible to define multiple subscriptions per host. Each subscription can have its own + ## sampling properties and a list of nodes to subscribe to. + ## All subscriptions share the same credentials. + [[inputs.ctrlx_datalayer.subscription]] + ## The name of the measurement. (default: "ctrlx") + measurement = "memory" + + ## Configure the ctrlX Data Layer nodes which should be subscribed. + ## address - node address in ctrlX Data Layer (mandatory) + ## name - field name to use in the output (optional, default: base name of address) + ## tags - extra node tags to be added to the output metric (optional) + ## Note: + ## Use either the inline notation or the bracketed notation, not both. + ## The tags property is only supported in bracketed notation due to toml parser restrictions + ## Examples: + ## Inline notation + nodes=[ + {name="available", address="framework/metrics/system/memavailable-mb"}, + {name="used", address="framework/metrics/system/memused-mb"}, + ] + ## Bracketed notation + # [[inputs.ctrlx_datalayer.subscription.nodes]] + # name ="available" + # address="framework/metrics/system/memavailable-mb" + # ## Define extra tags related to node to be added to the output metric (optional) + # [inputs.ctrlx_datalayer.subscription.nodes.tags] + # node_tag1="node_tag1" + # node_tag2="node_tag2" + # [[inputs.ctrlx_datalayer.subscription.nodes]] + # name ="used" + # address="framework/metrics/system/memused-mb" + + ## The switch "output_json_string" enables output of the measurement as json. + ## That way it can be used in in a subsequent processor plugin, e.g. "Starlark Processor Plugin". + # output_json_string = false + + ## Define extra tags related to subscription to be added to the output metric (optional) + # [inputs.ctrlx_datalayer.subscription.tags] + # subscription_tag1 = "subscription_tag1" + # subscription_tag2 = "subscription_tag2" + + ## The interval in which messages shall be sent by the ctrlX Data Layer to this plugin. (default: 1s) + ## Higher values reduce load on network by queuing samples on server side and sending as a single TCP packet. + # publish_interval = "1s" + + ## The interval a "keepalive" message is sent if no change of data occurs. (default: 60s) + ## Only used internally to detect broken network connections. + # keep_alive_interval = "60s" + + ## The interval an "error" message is sent if an error was received from a node. (default: 10s) + ## Higher values reduce load on output target and network in case of errors by limiting frequency of error messages. + # error_interval = "10s" + + ## The interval that defines the fastest rate at which the node values should be sampled and values captured. (default: 1s) + ## The sampling frequency should be adjusted to the dynamics of the signal to be sampled. + ## Higher sampling frequencies increases load on ctrlX Data Layer. + ## The sampling frequency can be higher, than the publish interval. Captured samples are put in a queue and sent in publish interval. + ## Note: The minimum sampling interval can be overruled by a global setting in the ctrlX Data Layer configuration ('datalayer/subscriptions/settings'). + # sampling_interval = "1s" + + ## The requested size of the node value queue. (default: 10) + ## Relevant if more values are captured than can be sent. + # queue_size = 10 + + ## The behaviour of the queue if it is full. (default: "DiscardOldest") + ## Possible values: + ## - "DiscardOldest" + ## The oldest value gets deleted from the queue when it is full. + ## - "DiscardNewest" + ## The newest value gets deleted from the queue when it is full. + # queue_behaviour = "DiscardOldest" + + ## The filter when a new value will be sampled. (default: 0.0) + ## Calculation rule: If (abs(lastCapturedValue - newValue) > dead_band_value) capture(newValue). + # dead_band_value = 0.0 + + ## The conditions on which a sample should be captured and thus will be sent as a message. (default: "StatusValue") + ## Possible values: + ## - "Status" + ## Capture the value only, when the state of the node changes from or to error state. Value changes are ignored. + ## - "StatusValue" + ## Capture when the value changes or the node changes from or to error state. + ## See also 'dead_band_value' for what is considered as a value change. + ## - "StatusValueTimestamp": + ## Capture even if the value is the same, but the timestamp of the value is newer. + ## Note: This might lead to high load on the network because every sample will be sent as a message + ## even if the value of the node did not change. + # value_change = "StatusValue" + diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/directory_monitor.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/directory_monitor.conf index ea17696754..489a6839a6 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/directory_monitor.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/directory_monitor.conf @@ -1,11 +1,14 @@ # Ingests files in a directory and then moves them to a target directory. [[inputs.directory_monitor]] - ## The directory to monitor and read files from. + ## The directory to monitor and read files from (including sub-directories if "recursive" is true). directory = "" # - ## The directory to move finished files to. + ## The directory to move finished files to (maintaining directory hierarchy from source). finished_directory = "" # + ## Setting recursive to true will make the plugin recursively walk the directory and process all sub-directories. + # recursive = false + # ## The directory to move files to upon file error. ## If not provided, erroring files will stay in the monitored directory. # error_directory = "" @@ -16,7 +19,7 @@ # directory_duration_threshold = "50ms" # ## A list of the only file names to monitor, if necessary. Supports regex. If left blank, all files are ingested. - # files_to_monitor = ["^.*\.csv"] + # files_to_monitor = ["^.*\\.csv"] # ## A list of files to ignore, if necessary. Supports regex. # files_to_ignore = [".DS_Store"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/diskio.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/diskio.conf index ff5521d52a..145fbbb083 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/diskio.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/diskio.conf @@ -1,21 +1,19 @@ # Read metrics about disk IO by device [[inputs.diskio]] - ## By default, telegraf will gather stats for all devices including - ## disk partitions. - ## Setting devices will restrict the stats to the specified devices. - # devices = ["sda", "sdb", "vd*"] - ## Uncomment the following line if you need disk serial numbers. - # skip_serial_number = false - # - ## On systems which support it, device metadata can be added in the form of - ## tags. - ## Currently only Linux is supported via udev properties. You can view - ## available properties for a device by running: - ## 'udevadm info -q property -n /dev/sda' + ## Devices to collect stats for + ## Wildcards are supported except for disk synonyms like '/dev/disk/by-id'. + ## ex. devices = ["sda", "sdb", "vd*", "/dev/disk/by-id/nvme-eui.00123deadc0de123"] + # devices = ["*"] + + ## Skip gathering of the disk's serial numbers. + # skip_serial_number = true + + ## Device metadata tags to add on systems supporting it (Linux only) + ## Use 'udevadm info -q property -n ' to get a list of properties. ## Note: Most, but not all, udev properties can be accessed this way. Properties ## that are currently inaccessible include DEVTYPE, DEVNAME, and DEVPATH. # device_tags = ["ID_FS_TYPE", "ID_FS_USAGE"] - # + ## Using the same metadata source as device_tags, you can also customize the ## name of the device via templates. ## The 'name_templates' parameter is a list of templates to try and apply to diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/dmcache.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/dmcache.conf index d21d2ba7e2..37e987322e 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/dmcache.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/dmcache.conf @@ -1,4 +1,5 @@ # Provide a native collection for dmsetup based statistics for dm-cache +# This plugin ONLY supports Linux [[inputs.dmcache]] ## Whether to report per-device stats or not per_device = true diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/dns_query.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/dns_query.conf index 60ac2cc022..ea8dfe20d5 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/dns_query.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/dns_query.conf @@ -16,5 +16,11 @@ ## Dns server port. # port = 53 - ## Query timeout in seconds. - # timeout = 2 + ## Query timeout + # timeout = "2s" + + ## Include the specified additional properties in the resulting metric. + ## The following values are supported: + ## "first_ip" -- return IP of the first A and AAAA answer + ## "all_ips" -- return IPs of all A and AAAA answers + # include_fields = [] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/docker.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/docker.conf index d9f1e53339..12a1b3540a 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/docker.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/docker.conf @@ -10,11 +10,6 @@ ## configuring in multiple Swarm managers results in duplication of metrics. gather_services = false - ## Only collect metrics for these containers. Values will be appended to - ## container_name_include. - ## Deprecated (1.4.0), use container_name_include - container_names = [] - ## Set the source tag for the metrics to the container ID hostname, eg first 12 chars source_tag = false @@ -29,31 +24,27 @@ # container_state_include = [] # container_state_exclude = [] + ## Objects to include for disk usage query + ## Allowed values are "container", "image", "volume" + ## When empty disk usage is excluded + storage_objects = [] + ## Timeout for docker list, info, and stats commands timeout = "5s" - ## Whether to report for each container per-device blkio (8:0, 8:1...), - ## network (eth0, eth1, ...) and cpu (cpu0, cpu1, ...) stats or not. - ## Usage of this setting is discouraged since it will be deprecated in favor of 'perdevice_include'. - ## Default value is 'true' for backwards compatibility, please set it to 'false' so that 'perdevice_include' setting - ## is honored. - perdevice = true + ## Podman compatibility settings (auto-enabled when Podman detected) + ## Cache TTL for accurate CPU percentage calculation (default: 60s) + ## Set higher than your collection interval for accurate measurements + ## Set to 0 to keep cache entries forever (not recommended for dynamic environments) + # podman_cache_ttl = "60s" ## Specifies for which classes a per-device metric should be issued ## Possible values are 'cpu' (cpu0, cpu1, ...), 'blkio' (8:0, 8:1, ...) and 'network' (eth0, eth1, ...) - ## Please note that this setting has no effect if 'perdevice' is set to 'true' # perdevice_include = ["cpu"] - ## Whether to report for each container total blkio and network stats or not. - ## Usage of this setting is discouraged since it will be deprecated in favor of 'total_include'. - ## Default value is 'false' for backwards compatibility, please set it to 'true' so that 'total_include' setting - ## is honored. - total = false - - ## Specifies for which classes a total metric should be issued. Total is an aggregated of the 'perdevice' values. + ## Specifies for which classes a total metric should be issued. Total is an aggregated of the 'perdevice_include' values. ## Possible values are 'cpu', 'blkio' and 'network' ## Total 'cpu' is reported directly by Docker daemon, and 'network' and 'blkio' totals are aggregated by this plugin. - ## Please note that this setting has no effect if 'total' is set to 'false' # total_include = ["cpu", "blkio", "network"] ## docker labels to include and exclude as tags. Globs accepted. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/docker_log.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/docker_log.conf index a3bdcd6c37..b819b2ad3f 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/docker_log.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/docker_log.conf @@ -5,8 +5,9 @@ ## To use environment variables (ie, docker-machine), set endpoint = "ENV" # endpoint = "unix:///var/run/docker.sock" - ## When true, container logs are read from the beginning; otherwise - ## reading begins at the end of the log. + ## When true, container logs are read from the beginning; otherwise reading + ## begins at the end of the log. If state-persistence is enabled for Telegraf, + ## the reading continues at the last previously processed timestamp. # from_beginning = false ## Timeout for Docker API calls. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/dpdk.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/dpdk.conf index 1391ce7a79..fd1219b634 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/dpdk.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/dpdk.conf @@ -1,32 +1,58 @@ # Reads metrics from DPDK applications using v2 telemetry interface. +# This plugin ONLY supports Linux [[inputs.dpdk]] - ## Path to DPDK telemetry socket. This shall point to v2 version of DPDK telemetry interface. + ## Path to DPDK telemetry socket. This shall point to v2 version of DPDK + ## telemetry interface. # socket_path = "/var/run/dpdk/rte/dpdk_telemetry.v2" - ## Duration that defines how long the connected socket client will wait for a response before terminating connection. - ## This includes both writing to and reading from socket. Since it's local socket access - ## to a fast packet processing application, the timeout should be sufficient for most users. + ## Duration that defines how long the connected socket client will wait for + ## a response before terminating connection. + ## This includes both writing to and reading from socket. Since it's local + ## socket access to a fast packet processing application, the timeout should + ## be sufficient for most users. ## Setting the value to 0 disables the timeout (not recommended) # socket_access_timeout = "200ms" ## Enables telemetry data collection for selected device types. - ## Adding "ethdev" enables collection of telemetry from DPDK NICs (stats, xstats, link_status). + ## Adding "ethdev" enables collection of telemetry from DPDK NICs (stats, xstats, link_status, info). ## Adding "rawdev" enables collection of telemetry from DPDK Raw Devices (xstats). # device_types = ["ethdev"] ## List of custom, application-specific telemetry commands to query - ## The list of available commands depend on the application deployed. Applications can register their own commands - ## via telemetry library API http://doc.dpdk.org/guides/prog_guide/telemetry_lib.html#registering-commands - ## For e.g. L3 Forwarding with Power Management Sample Application this could be: + ## The list of available commands depend on the application deployed. + ## Applications can register their own commands via telemetry library API + ## https://doc.dpdk.org/guides/prog_guide/telemetry_lib.html#registering-commands + ## For L3 Forwarding with Power Management Sample Application this could be: ## additional_commands = ["/l3fwd-power/stats"] # additional_commands = [] + ## List of plugin options. + ## Supported options: + ## - "in_memory" option enables reading for multiple sockets when a dpdk application is running with --in-memory option. + ## When option is enabled plugin will try to find additional socket paths related to provided socket_path. + ## Details: https://doc.dpdk.org/guides/howto/telemetry.html#connecting-to-different-dpdk-processes + # plugin_options = ["in_memory"] + + ## Specifies plugin behavior regarding unreachable socket (which might not have been initialized yet). + ## Available choices: + ## - error: Telegraf will return an error during the startup and gather phases if socket is unreachable + ## - ignore: Telegraf will ignore error regarding unreachable socket on both startup and gather + # unreachable_socket_behavior = "error" + + ## List of metadata fields which will be added to every metric produced by the plugin. + ## Supported options: + ## - "pid" - exposes PID of DPDK process. Example: pid=2179660i + ## - "version" - exposes version of DPDK. Example: version="DPDK 21.11.2" + # metadata_fields = ["pid", "version"] + ## Allows turning off collecting data for individual "ethdev" commands. - ## Remove "/ethdev/link_status" from list to start getting link status metrics. + ## Remove "/ethdev/link_status" from list to gather link status metrics. [inputs.dpdk.ethdev] exclude_commands = ["/ethdev/link_status"] - ## When running multiple instances of the plugin it's recommended to add a unique tag to each instance to identify - ## metrics exposed by an instance of DPDK application. This is useful when multiple DPDK apps run on a single host. + ## When running multiple instances of the plugin it's recommended to add a + ## unique tag to each instance to identify metrics exposed by an instance + ## of DPDK application. This is useful when multiple DPDK apps run on a + ## single host. ## [inputs.dpdk.tags] ## dpdk_instance = "my-fwd-app" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/elasticsearch.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/elasticsearch.conf index c84804ee5a..b3978e1056 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/elasticsearch.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/elasticsearch.conf @@ -5,8 +5,8 @@ ## servers = ["http://user:pass@localhost:9200"] servers = ["http://localhost:9200"] - ## Timeout for HTTP requests to the elastic search server(s) - http_timeout = "5s" + ## HTTP headers to send with each request + # headers = { "X-Custom-Header" = "Custom" } ## When local is true (the default), the node will read only its own stats. ## Set local to false when you want to read the node stats from all nodes @@ -25,20 +25,25 @@ ## Set cluster_stats to true when you want to obtain cluster stats. cluster_stats = false - ## Only gather cluster_stats from the master node. To work this require local = true + ## Only gather cluster_stats from the master node. + ## To work this require local = true cluster_stats_only_from_master = true + ## Gather stats from the enrich API + # enrich_stats = false + ## Indices to collect; can be one or more indices names or _all - ## Use of wildcards is allowed. Use a wildcard at the end to retrieve index names that end with a changing value, like a date. + ## Use of wildcards is allowed. Use a wildcard at the end to retrieve index + ## names that end with a changing value, like a date. indices_include = ["_all"] ## One of "shards", "cluster", "indices" ## Currently only "shards" is implemented indices_level = "shards" - ## node_stats is a list of sub-stats that you want to have gathered. Valid options - ## are "indices", "os", "process", "jvm", "thread_pool", "fs", "transport", "http", - ## "breaker". Per default, all stats are gathered. + ## node_stats is a list of sub-stats that you want to have gathered. + ## Valid options are "indices", "os", "process", "jvm", "thread_pool", + ## "fs", "transport", "http", "breaker". Per default, all stats are gathered. # node_stats = ["jvm", "http"] ## HTTP Basic Authentication username and password. @@ -52,8 +57,17 @@ ## Use TLS but skip chain & host verification # insecure_skip_verify = false - ## Sets the number of most recent indices to return for indices that are configured with a date-stamped suffix. - ## Each 'indices_include' entry ending with a wildcard (*) or glob matching pattern will group together all indices that match it, and - ## sort them by the date or number after the wildcard. Metrics then are gathered for only the 'num_most_recent_indices' amount of most - ## recent indices. + ## If 'use_system_proxy' is set to true, Telegraf will check env vars such as + ## HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or their lowercase counterparts). + ## If 'use_system_proxy' is set to false (default) and 'http_proxy_url' is + ## provided, Telegraf will use the specified URL as HTTP proxy. + # use_system_proxy = false + # http_proxy_url = "http://localhost:8888" + + ## Sets the number of most recent indices to return for indices that are + ## configured with a date-stamped suffix. Each 'indices_include' entry + ## ending with a wildcard (*) or glob matching pattern will group together + ## all indices that match it, and sort them by the date or number after + ## the wildcard. Metrics then are gathered for only the + ## 'num_most_recent_indices' amount of most recent indices. # num_most_recent_indices = 0 diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/elasticsearch_query.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/elasticsearch_query.conf index 11637774a3..ba4bdffe5c 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/elasticsearch_query.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/elasticsearch_query.conf @@ -27,6 +27,13 @@ ## Use TLS but skip chain & host verification # insecure_skip_verify = false + ## If 'use_system_proxy' is set to true, Telegraf will check env vars such as + ## HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or their lowercase counterparts). + ## If 'use_system_proxy' is set to false (default) and 'http_proxy_url' is + ## provided, Telegraf will use the specified URL as HTTP proxy. + # use_system_proxy = false + # http_proxy_url = "http://localhost:8888" + [[inputs.elasticsearch_query.aggregation]] ## measurement name for the results of the aggregation query measurement_name = "measurement" @@ -60,7 +67,8 @@ # metric_function = "avg" ## Fields to be used as tags - ## Must be text, non-analyzed fields. Metric aggregations are performed per tag + ## Must be text, non-analyzed fields. Metric aggregations are performed + ## per tag # tags = ["field.keyword", "field2.keyword"] ## Set to true to not ignore documents when the tag(s) above are missing diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/ethtool.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/ethtool.conf index 54913bca1c..f3b7a6505f 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/ethtool.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/ethtool.conf @@ -1,4 +1,5 @@ # Returns ethtool statistics for given interfaces +# This plugin ONLY supports Linux [[inputs.ethtool]] ## List of interfaces to pull metrics for # interface_include = ["eth0"] @@ -6,6 +7,29 @@ ## List of interfaces to ignore when pulling metrics. # interface_exclude = ["eth1"] + ## Plugin behavior for downed interfaces + ## Available choices: + ## - expose: collect & report metrics for down interfaces + ## - skip: ignore interfaces that are marked down + # down_interfaces = "expose" + + ## Reading statistics from interfaces in additional namespaces is also + ## supported, so long as the namespaces are named (have a symlink in + ## /var/run/netns). The telegraf process will also need the CAP_SYS_ADMIN + ## permission. + ## By default, only the current namespace will be used. For additional + ## namespace support, at least one of `namespace_include` and + ## `namespace_exclude` must be provided. + ## To include all namespaces, set `namespace_include` to `["*"]`. + ## The initial namespace (if anonymous) can be specified with the empty + ## string (""). + + ## List of namespaces to pull metrics for + # namespace_include = [] + + ## List of namespace to ignore when pulling metrics. + # namespace_exclude = [] + ## Some drivers declare statistics with extra whitespace, different spacing, ## and mix cases. This list, when enabled, can be used to clean the keys. ## Here are the current possible normalizations: diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/eventhub_consumer.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/eventhub_consumer.conf index 924d6b73e2..8e879c5a8f 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/eventhub_consumer.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/eventhub_consumer.conf @@ -51,6 +51,15 @@ # partition_ids = ["0","1"] ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. + ## + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Set either option below to true to use a system property as timestamp. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/exec.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/exec.conf index 7261d14b88..cdcd439b76 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/exec.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/exec.conf @@ -1,11 +1,7 @@ # Read metrics from one or more commands that can output to stdout [[inputs.exec]] ## Commands array - commands = [ - "/tmp/test.sh", - "/usr/bin/mycollector --foo=bar", - "/tmp/collect_*.sh" - ] + commands = [] ## Environment variables ## Array of "key=value" pairs to pass as environment variables @@ -14,13 +10,21 @@ # environment = [] ## Timeout for each command to complete. - timeout = "5s" + # timeout = "5s" - ## measurement name suffix (for separating different commands) - name_suffix = "_mycollector" + ## Measurement name suffix + ## Used for separating different commands + # name_suffix = "" - ## Data format to consume. - ## Each data format has its own unique set of configuration options, read - ## more about them here: + ## Ignore Error Code + ## If set to true, a non-zero error code in not considered an error and the + ## plugin will continue to parse the output. + # ignore_error = false + + ## Data format + ## By default, exec expects JSON. This was done for historical reasons and is + ## different than other inputs that use the influx line protocol. Each data + ## format has its own unique set of configuration options, read more about + ## them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md - data_format = "influx" + # data_format = "json" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/execd.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/execd.conf index 48c2e3e38a..52727daf8b 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/execd.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/execd.conf @@ -18,13 +18,21 @@ ## "SIGHUP" : Send a HUP signal. Not available on Windows. (not recommended) ## "SIGUSR1" : Send a USR1 signal. Not available on Windows. ## "SIGUSR2" : Send a USR2 signal. Not available on Windows. - signal = "none" + # signal = "none" ## Delay before the process is restarted after an unexpected termination - restart_delay = "10s" + # restart_delay = "10s" + + ## Buffer size used to read from the command output stream + ## Optional parameter. Default is 64 Kib, minimum is 16 bytes + # buffer_size = "64Kib" + + ## Disable automatic restart of the program and stop if the program exits + ## with an error (i.e. non-zero error code) + # stop_on_error = false ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md - data_format = "influx" + # data_format = "influx" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/fail2ban.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/fail2ban.conf index eaf845a196..24653562c4 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/fail2ban.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/fail2ban.conf @@ -1,4 +1,7 @@ # Read metrics from fail2ban. [[inputs.fail2ban]] ## Use sudo to run fail2ban-client - use_sudo = false + # use_sudo = false + + ## Use the given socket instead of the default one + # socket = "/var/run/fail2ban/fail2ban.sock" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/fibaro.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/fibaro.conf index cc38d783f4..9f3921a042 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/fibaro.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/fibaro.conf @@ -10,3 +10,8 @@ ## Amount of time allowed to complete the HTTP request # timeout = "5s" + + ## Fibaro Device Type + ## By default, this plugin will attempt to read using the HC2 API. For HC3 + ## devices, set this to "HC3" + # device_type = "HC2" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/file.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/file.conf index 706d1bfff6..9f8788d4b6 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/file.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/file.conf @@ -19,9 +19,14 @@ ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md data_format = "influx" - - ## Name a tag containing the name of the file the data was parsed from. Leave empty - ## to disable. Cautious when file name variation is high, this can increase the cardinality - ## significantly. Read more about cardinality here: + ## Please use caution when using the following options: when file name + ## variation is high, this can increase the cardinality significantly. Read + ## more about cardinality here: ## https://docs.influxdata.com/influxdb/cloud/reference/glossary/#series-cardinality + + ## Name of tag to store the name of the file. Disabled if not set. # file_tag = "" + + ## Name of tag to store the absolute path and name of the file. Disabled if + ## not set. + # file_path_tag = "" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/firehose.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/firehose.conf new file mode 100644 index 0000000000..e0d740108e --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/firehose.conf @@ -0,0 +1,42 @@ +# AWS Data Firehose listener +[[inputs.firehose]] + ## Address and port to host HTTP listener on + service_address = ":8080" + + ## Paths to listen to. + # paths = ["/telegraf"] + + ## maximum duration before timing out read of the request + # read_timeout = "5s" + ## maximum duration before timing out write of the response + # write_timeout = "5s" + + ## Set one or more allowed client CA certificate file names to + ## enable mutually authenticated TLS connections + # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] + + ## Add service certificate and key + # tls_cert = "/etc/telegraf/cert.pem" + # tls_key = "/etc/telegraf/key.pem" + + ## Minimal TLS version accepted by the server + # tls_min_version = "TLS12" + + ## Optional access key to accept for authentication. + ## AWS Data Firehose uses "x-amz-firehose-access-key" header to set the access key. + ## If no access_key is provided (default), authentication is completely disabled and + ## this plugin will accept all request ignoring the provided access-key in the request! + # access_key = "foobar" + + ## Optional setting to add parameters as tags + ## If the http header "x-amz-firehose-common-attributes" is not present on the + ## request, no corresponding tag will be added. The header value should be a + ## json and should follow the schema as describe in the official documentation: + ## https://docs.aws.amazon.com/firehose/latest/dev/httpdeliveryrequestresponse.html#requestformat + # parameter_tags = ["env"] + + ## Data format to consume. + ## Each data format has its own unique set of configuration options, read + ## more about them here: + ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md + # data_format = "influx" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/fritzbox.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/fritzbox.conf new file mode 100644 index 0000000000..7613ee424a --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/fritzbox.conf @@ -0,0 +1,24 @@ +# Gather fritzbox status +[[inputs.fritzbox]] + ## URLs of the devices to query including login credentials + urls = [ "http://user:password@fritz.box:49000/" ] + + ## The information to collect (see README for further details). + # collect = [ + # "device", + # "wan", + # "ppp", + # "dsl", + # "wlan", + # ] + + ## The http timeout to use. + # timeout = "10s" + + ## Optional TLS Config + # tls_ca = "/etc/telegraf/ca.pem" + # tls_cert = "/etc/telegraf/cert.pem" + # tls_key = "/etc/telegraf/key.pem" + # tls_key_pwd = "secret" + ## Use TLS but skip chain & host verification + # insecure_skip_verify = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/gnmi.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/gnmi.conf index b10f7e984e..2f7af33a6e 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/gnmi.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/gnmi.conf @@ -11,16 +11,76 @@ # encoding = "proto" ## redial in case of failures after - redial = "10s" + # redial = "10s" - ## enable client-side TLS and define CA to authenticate the device - # enable_tls = true - # tls_ca = "/etc/telegraf/ca.pem" - # insecure_skip_verify = true + ## gRPC Keepalive settings + ## See https://pkg.go.dev/google.golang.org/grpc/keepalive + ## The client will ping the server to see if the transport is still alive if it has + ## not see any activity for the given time. + ## If not set, none of the keep-alive setting (including those below) will be applied. + ## If set and set below 10 seconds, the gRPC library will apply a minimum value of 10s will be used instead. + # keepalive_time = "" - ## define client-side TLS certificate & key to authenticate to the device - # tls_cert = "/etc/telegraf/cert.pem" - # tls_key = "/etc/telegraf/key.pem" + ## Timeout for seeing any activity after the keep-alive probe was + ## sent. If no activity is seen the connection is closed. + # keepalive_timeout = "" + + ## gRPC Maximum Message Size + # max_msg_size = "4MB" + + ## Subtree depth for depth extension (disables if < 1) + ## see https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-depth.md + # depth = 0 + + ## Enable to get the canonical path as field-name + # canonical_field_names = false + + ## Remove leading slashes and dots in field-name + # trim_field_names = false + + ## Only receive updates for the state, also suppresses receiving the initial state + # updates_only = false + + ## Enforces the namespace of the first element as origin for aliases and + ## response paths, required for backward compatibility. + ## NOTE: Set to 'false' if possible but be aware that this might change the path tag! + # enforce_first_namespace_as_origin = true + + ## Guess the path-tag if an update does not contain a prefix-path + ## Supported values are + ## none -- do not add a 'path' tag + ## common path -- use the common path elements of all fields in an update + ## subscription -- use the subscription path + # path_guessing_strategy = "none" + + ## Prefix tags from path keys with the path element + # prefix_tag_key_with_path = false + + ## Optional client-side TLS to authenticate the device + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" + ## Minimal TLS version to accept by the client + # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" + ## Use TLS but skip chain & host verification + # insecure_skip_verify = false ## gNMI subscription prefix (optional, can usually be left empty) ## See: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md#222-paths @@ -28,7 +88,20 @@ # prefix = "" # target = "" - ## Define additional aliases to map telemetry encoding paths to simple measurement names + ## Vendor specific options + ## This defines what vendor specific options to load. + ## * Juniper Header Extension (juniper_header): some sensors are directly managed by + ## Linecard, which adds the Juniper GNMI Header Extension. Enabling this + ## allows the decoding of the Extension header if present. Currently this knob + ## adds component, component_id & sub_component_id as additional tags + # vendor_specific = [] + + ## YANG model paths for decoding IETF JSON payloads + ## Model files are loaded recursively from the given directories. Disabled if + ## no models are specified. + # yang_model_paths = [] + + ## Define additional aliases to map encoding paths to measurement names # [inputs.gnmi.aliases] # ifcounters = "openconfig:/interfaces/interface/state/counters" @@ -40,12 +113,13 @@ ## See: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md#222-paths ## ## origin usually refers to a (YANG) data model implemented by the device - ## and path to a specific substructure inside it that should be subscribed to (similar to an XPath) - ## YANG models can be found e.g. here: https://github.com/YangModels/yang/tree/master/vendor/cisco/xr + ## and path to a specific substructure inside it that should be subscribed + ## to (similar to an XPath). YANG models can be found e.g. here: + ## https://github.com/YangModels/yang/tree/master/vendor/cisco/xr origin = "openconfig-interfaces" path = "/interfaces/interface/state/counters" - # Subscription mode (one of: "target_defined", "sample", "on_change") and interval + ## Subscription mode ("target_defined", "sample", "on_change") and interval subscription_mode = "sample" sample_interval = "10s" @@ -55,14 +129,30 @@ ## If suppression is enabled, send updates at least every X seconds anyway # heartbeat_interval = "60s" - #[[inputs.gnmi.subscription]] - # name = "descr" - # origin = "openconfig-interfaces" - # path = "/interfaces/interface/state/description" - # subscription_mode = "on_change" - - ## If tag_only is set, the subscription in question will be utilized to maintain a map of - ## tags to apply to other measurements emitted by the plugin, by matching path keys - ## All fields from the tag-only subscription will be applied as tags to other readings, - ## in the format _. - # tag_only = true + ## Tag subscriptions are applied as tags to other subscriptions. + # [[inputs.gnmi.tag_subscription]] + # ## When applying this value as a tag to other metrics, use this tag name + # name = "descr" + # + # ## All other subscription fields are as normal + # origin = "openconfig-interfaces" + # path = "/interfaces/interface/state" + # subscription_mode = "on_change" + # + # ## Match strategy to use for the tag. + # ## Tags are only applied for metrics of the same address. The following + # ## settings are valid: + # ## unconditional -- always match + # ## name -- match by the "name" key + # ## This resembles the previous 'tag-only' behavior. + # ## elements -- match by the keys in the path filtered by the path + # ## parts specified `elements` below + # ## By default, 'elements' is used if the 'elements' option is provided, + # ## otherwise match by 'name'. + # # match = "" + # + # ## For the 'elements' match strategy, at least one path-element name must + # ## be supplied containing at least one key to match on. Multiple path + # ## elements can be specified in any order. All given keys must be equal + # ## for a match. + # # elements = ["description", "interface"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/google_cloud_storage.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/google_cloud_storage.conf new file mode 100644 index 0000000000..cfcf05cf1c --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/google_cloud_storage.conf @@ -0,0 +1,24 @@ +# Gather metrics by iterating the files located on a Cloud Storage Bucket. +[[inputs.google_cloud_storage]] + ## Required. Name of Cloud Storage bucket to ingest metrics from. + bucket = "my-bucket" + + ## Optional. Prefix of Cloud Storage bucket keys to list metrics from. + # key_prefix = "my-bucket" + + ## Key that will store the offsets in order to pick up where the ingestion was left. + offset_key = "offset_key" + + ## Key that will store the offsets in order to pick up where the ingestion was left. + objects_per_iteration = 10 + + ## Required. Data format to consume. + ## Each data format has its own unique set of configuration options. + ## Read more about them here: + ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md + data_format = "influx" + + ## Optional. Filepath for GCP credentials JSON file to authorize calls to + ## Google Cloud Storage APIs. If not set explicitly, Telegraf will attempt to use + ## Application Default Credentials, which is preferred. + # credentials_file = "path/to/my/creds.json" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/haproxy.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/haproxy.conf index 6efe33f9df..a6b7a241ba 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/haproxy.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/haproxy.conf @@ -1,22 +1,18 @@ -# Read metrics of HAProxy, via socket or HTTP stats page +# Read metrics of HAProxy, via stats socket or http endpoints [[inputs.haproxy]] - ## An array of address to gather stats about. Specify an ip on hostname - ## with optional port. ie localhost, 10.10.3.33:1936, etc. - ## Make sure you specify the complete path to the stats endpoint - ## including the protocol, ie http://10.10.3.33:1936/haproxy?stats - - ## Credentials for basic HTTP authentication - # username = "admin" - # password = "admin" - - ## If no servers are specified, then default to 127.0.0.1:1936/haproxy?stats + ## List of stats endpoints. Metrics can be collected from both http and socket + ## endpoints. Examples of valid endpoints: + ## - http://myhaproxy.com:1936/haproxy?stats + ## - https://myhaproxy.com:8000/stats + ## - socket:/run/haproxy/admin.sock + ## - /run/haproxy/*.sock + ## - tcp://127.0.0.1:1936 + ## + ## Server addresses not starting with 'http://', 'https://', 'tcp://' will be + ## treated as possible sockets. When specifying local socket, glob patterns are + ## supported. servers = ["http://myhaproxy.com:1936/haproxy?stats"] - ## You can also use local socket with standard wildcard globbing. - ## Server address not starting with 'http' will be treated as a possible - ## socket, so both examples below are valid. - # servers = ["socket:/run/haproxy/admin.sock", "/run/haproxy/*.sock"] - ## By default, some of the fields are renamed from what haproxy calls them. ## Setting this option to true results in the plugin keeping the original ## field names. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/http.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/http.conf index 9c38fb9b04..fcff28090b 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/http.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/http.conf @@ -1,8 +1,9 @@ # Read formatted metrics from one or more HTTP endpoints [[inputs.http]] - ## One or more URLs from which to read formatted metrics + ## One or more URLs from which to read formatted metrics. urls = [ - "http://localhost/metrics" + "http://localhost/metrics", + "http+unix:///run/user/420/podman/podman.sock:/d/v4.0.0/libpod/pods/json" ] ## HTTP method @@ -18,9 +19,10 @@ ## compress body or "identity" to apply no encoding. # content_encoding = "identity" - ## Optional file with Bearer token - ## file content is added as an Authorization header - # bearer_token = "/path/to/file" + ## Optional Bearer token settings to use for the API calls. + ## Use either the token itself or the token file if you need a token. + # token = "eyJhbGc...Qssw5c" + # token_file = "/path/to/file" ## Optional HTTP Basic Auth Credentials # username = "username" @@ -33,12 +35,32 @@ # scopes = ["urn:opc:idm:__myscopes__"] ## HTTP Proxy support + # use_system_proxy = false # http_proxy_url = "" ## Optional TLS Config - # tls_ca = "/etc/telegraf/ca.pem" - # tls_cert = "/etc/telegraf/cert.pem" - # tls_key = "/etc/telegraf/key.pem" + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" + ## Minimal TLS version to accept by the client + # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" ## Use TLS but skip chain & host verification # insecure_skip_verify = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/http_listener_v2.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/http_listener_v2.conf index 102c90e779..ba90869bf4 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/http_listener_v2.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/http_listener_v2.conf @@ -1,7 +1,18 @@ # Generic HTTP write listener [[inputs.http_listener_v2]] - ## Address and port to host HTTP listener on - service_address = ":8080" + ## Address to host HTTP listener on + ## can be prefixed by protocol tcp, or unix if not provided defaults to tcp + ## if unix network type provided it should be followed by absolute path for unix socket + service_address = "tcp://:8080" + ## service_address = "tcp://:8443" + ## service_address = "unix:///tmp/telegraf.sock" + + ## Permission for unix sockets (only available for unix sockets) + ## This setting may not be respected by some platforms. To safely restrict + ## permissions it is recommended to place the socket into a previously + ## created directory with the desired permissions. + ## ex: socket_mode = "777" + # socket_mode = "" ## Paths to listen to. # paths = ["/telegraf"] @@ -12,6 +23,15 @@ ## HTTP methods to accept. # methods = ["POST", "PUT"] + ## Optional HTTP headers + ## These headers are applied to the server that is listening for HTTP + ## requests and included in responses. + # http_headers = {"HTTP_HEADER" = "TAG_NAME"} + + ## HTTP Return Success Code + ## This is the HTTP code that will be returned on success + # http_success_code = 204 + ## maximum duration before timing out read of the request # read_timeout = "10s" ## maximum duration before timing out write of the response @@ -33,6 +53,9 @@ # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" + ## Minimal TLS version accepted by the server + # tls_min_version = "TLS12" + ## Optional username and password to accept for HTTP basic authentication. ## You probably want to make sure you have TLS configured above for this. # basic_username = "foobar" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/http_response.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/http_response.conf index fd594fdcdd..5ebb59cc37 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/http_response.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/http_response.conf @@ -3,7 +3,8 @@ ## List of urls to query. # urls = ["http://localhost"] - ## Set http_proxy (telegraf uses the system wide proxy settings if it's is not set) + ## Set http_proxy. + ## Telegraf uses the system wide proxy settings if it's is not set. # http_proxy = "http://localhost:8888" ## Set response_timeout (default 5 seconds) @@ -28,13 +29,21 @@ # {'fake':'data'} # ''' + ## Optional HTTP Request Body Form + ## Key value pairs to encode and set at URL form. Can be used with the POST + ## method + application/x-www-form-urlencoded content type to replicate the + ## POSTFORM method. + # body_form = { "key": "value" } + ## Optional name of the field that will contain the body of the response. - ## By default it is set to an empty String indicating that the body's content won't be added + ## By default it is set to an empty String indicating that the body's + ## content won't be added # response_body_field = '' ## Maximum allowed HTTP response body size in bytes. ## 0 means to use the default of 32MiB. - ## If the response body size exceeds this limit a "body_read_error" will be raised + ## If the response body size exceeds this limit a "body_read_error" will + ## be raised. # response_body_max_size = "32MiB" ## Optional substring or regex match in body of the response (case sensitive) @@ -43,9 +52,10 @@ # response_string_match = "\".*_status\".?:.?\"up\"" ## Expected response status code. - ## The status code of the response is compared to this value. If they match, the field - ## "response_status_code_match" will be 1, otherwise it will be 0. If the - ## expected status code is 0, the check is disabled and the field won't be added. + ## The status code of the response is compared to this value. If they match, + ## the field "response_status_code_match" will be 1, otherwise it will be 0. + ## If the expected status code is 0, the check is disabled and the field + ## won't be added. # response_status_code = 0 ## Optional TLS Config @@ -56,15 +66,27 @@ # insecure_skip_verify = false ## Use the given name as the SNI server name on each URL # tls_server_name = "" + ## TLS renegotiation method, choose from "never", "once", "freely" + # tls_renegotiation_method = "never" ## HTTP Request Headers (all values must be strings) # [inputs.http_response.headers] # Host = "github.com" ## Optional setting to map response http headers into tags - ## If the http header is not present on the request, no corresponding tag will be added - ## If multiple instances of the http header are present, only the first value will be used + ## If the http header is not present on the request, no corresponding tag will + ## be added. If multiple instances of the http header are present, only the + ## first value will be used. # http_header_tags = {"HTTP_HEADER" = "TAG_NAME"} ## Interface to use when dialing an address # interface = "eth0" + + ## Optional Cookie authentication + # cookie_auth_url = "https://localhost/authMe" + # cookie_auth_method = "POST" + # cookie_auth_username = "username" + # cookie_auth_password = "pa$$word" + # cookie_auth_body = '{"username": "user", "password": "pa$$word", "authenticate": "me"}' + ## cookie_auth_renewal not set or set to "0" will auth once and never renew the cookie + # cookie_auth_renewal = "5m" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/huebridge.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/huebridge.conf new file mode 100644 index 0000000000..e46678f8cf --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/huebridge.conf @@ -0,0 +1,19 @@ +# Gather smart home status from Hue Bridge +[[inputs.huebridge]] + ## URL of bridges to query in the form ://:@
/ + ## See documentation for available schemes. + bridges = [ "address://:@/" ] + + ## Manual device to room assignments to apply during status evaluation. + ## E.g. for motion sensors which are reported without a room assignment. + # room_assignments = { "Motion sensor 1" = "Living room", "Motion sensor 2" = "Corridor" } + + ## Timeout for gathering information + # timeout = "10s" + + ## Optional TLS Config + # tls_ca = "/etc/telegraf/ca.pem" + # tls_cert = "/etc/telegraf/cert.pem" + # tls_key = "/etc/telegraf/key.pem" + # tls_key_pwd = "secret" + ## Use TLS but skip chain & host verification diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/hugepages.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/hugepages.conf index c4c1f5de36..37b14c04c9 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/hugepages.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/hugepages.conf @@ -1,7 +1,10 @@ # Gathers huge pages measurements. +# This plugin ONLY supports Linux [[inputs.hugepages]] ## Supported huge page types: - ## - "root" - based on root huge page control directory: /sys/kernel/mm/hugepages - ## - "per_node" - based on per NUMA node directories: /sys/devices/system/node/node[0-9]*/hugepages - ## - "meminfo" - based on /proc/meminfo file + ## - "root" - based on root huge page control directory: + ## /sys/kernel/mm/hugepages + ## - "per_node" - based on per NUMA node directories: + ## /sys/devices/system/node/node[0-9]*/hugepages + ## - "meminfo" - based on /proc/meminfo file # types = ["root", "per_node"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/icinga2.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/icinga2.conf index 40de051f0d..50913bbd8a 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/icinga2.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/icinga2.conf @@ -3,8 +3,14 @@ ## Required Icinga2 server address # server = "https://localhost:5665" - ## Required Icinga2 object type ("services" or "hosts") - # object_type = "services" + ## Collected Icinga2 objects ("services", "hosts") + ## Specify at least one object to collect from /v1/objects endpoint. + # objects = ["services"] + + ## Collect metrics from /v1/status endpoint + ## Choose from: + ## "ApiListener", "CIB", "IdoMysqlConnection", "IdoPgsqlConnection" + # status = [] ## Credentials for basic HTTP authentication # username = "admin" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/infiniband.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/infiniband.conf index c8bb609d28..807a75daf1 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/infiniband.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/infiniband.conf @@ -1,3 +1,7 @@ # Gets counters from all InfiniBand cards and ports installed +# This plugin ONLY supports Linux [[inputs.infiniband]] # no configuration + + ## Collect RDMA counters + # gather_rdma = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/influxdb_listener.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/influxdb_listener.conf index f653bd8a8a..b9b898c578 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/influxdb_listener.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/influxdb_listener.conf @@ -12,10 +12,6 @@ ## 0 means to use the default of 32MiB. max_body_size = 0 - ## Maximum line size allowed to be sent in bytes. - ## deprecated in 1.14; parser now handles lines of unlimited length and option is ignored - # max_line_size = 0 - ## Set one or more allowed client CA certificate file names to ## enable mutually authenticated TLS connections tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] @@ -36,16 +32,22 @@ ## the value of this tag name. # retention_policy_tag = "" - ## Optional username and password to accept for HTTP basic authentication. + ## Optional username and password to accept for HTTP basic authentication + ## or authentication token. ## You probably want to make sure you have TLS configured above for this. + ## Use these options for the authentication token in the form + ## Authentication: Token : # basic_username = "foobar" # basic_password = "barfoo" - ## Influx line protocol parser - ## 'internal' is the default. 'upstream' is a newer parser that is faster - ## and more memory efficient. - # parser_type = "internal" -rd = "barfoo" + ## Optional JWT token authentication for HTTP requests + ## Please see the documentation at + ## https://docs.influxdata.com/influxdb/v1.8/administration/authentication_and_authorization/#authenticate-using-jwt-tokens + ## for further details. + ## Please note: Token authentication and basic authentication cannot be used + ## at the same time. + # token_shared_secret = "" + # token_username = "" ## Influx line protocol parser ## 'internal' is the default. 'upstream' is a newer parser that is faster diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/influxdb_v2_listener.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/influxdb_v2_listener.conf index dec888cfc3..1560652c59 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/influxdb_v2_listener.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/influxdb_v2_listener.conf @@ -4,6 +4,16 @@ ## (Double check the port. Could be 9999 if using OSS Beta) service_address = ":8086" + ## Maximum undelivered metrics before rate limit kicks in. + ## When the rate limit kicks in, HTTP status 429 will be returned. + ## 0 disables rate limiting + # max_undelivered_metrics = 0 + + ## Maximum duration before timing out read of the request + # read_timeout = "10s" + ## Maximum duration before timing out write of the response + # write_timeout = "10s" + ## Maximum allowed HTTP request body size in bytes. ## 0 means to use the default of 32MiB. # max_body_size = "32MiB" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/intel_baseband.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_baseband.conf new file mode 100644 index 0000000000..7189a233db --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_baseband.conf @@ -0,0 +1,31 @@ +# Intel Baseband Accelerator Input Plugin collects metrics from both dedicated and integrated +# Intel devices that provide Wireless Baseband hardware acceleration. +# This plugin ONLY supports Linux. +[[inputs.intel_baseband]] + ## Path to socket exposed by pf-bb-config for CLI interaction (mandatory). + ## In version v23.03 of pf-bb-config the path is created according to the schema: + ## "/tmp/pf_bb_config.0000\:\:..sock" where 0000\:\:. is the PCI device ID. + socket_path = "" + + ## Path to log file exposed by pf-bb-config with telemetry to read (mandatory). + ## In version v23.03 of pf-bb-config the path is created according to the schema: + ## "/var/log/pf_bb_cfg_0000\:\:..log" where 0000\:\:. is the PCI device ID. + log_file_path = "" + + ## Specifies plugin behavior regarding unreachable socket (which might not have been initialized yet). + ## Available choices: + ## - error: Telegraf will return an error on startup if socket is unreachable + ## - ignore: Telegraf will ignore error regarding unreachable socket on both startup and gather + # unreachable_socket_behavior = "error" + + ## Duration that defines how long the connected socket client will wait for + ## a response before terminating connection. + ## Since it's local socket access to a fast packet processing application, the timeout should + ## be sufficient for most users. + ## Setting the value to 0 disables the timeout (not recommended). + # socket_access_timeout = "1s" + + ## Duration that defines maximum time plugin will wait for pf-bb-config to write telemetry to the log file. + ## Timeout may differ depending on the environment. + ## Must be equal or larger than 50ms. + # wait_for_telemetry_timeout = "1s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/intel_dlb.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_dlb.conf new file mode 100644 index 0000000000..5d8b0cc37e --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_dlb.conf @@ -0,0 +1,22 @@ +## Reads metrics from DPDK using v2 telemetry interface. +## This plugin ONLY supports Linux +[[inputs.intel_dlb]] + ## Path to DPDK telemetry socket. + # socket_path = "/var/run/dpdk/rte/dpdk_telemetry.v2" + + ## Default eventdev command list, it gathers metrics from socket by given commands. + ## Supported options: + ## "/eventdev/dev_xstats", "/eventdev/port_xstats", + ## "/eventdev/queue_xstats", "/eventdev/queue_links" + # eventdev_commands = ["/eventdev/dev_xstats", "/eventdev/port_xstats", "/eventdev/queue_xstats", "/eventdev/queue_links"] + + ## Detect DLB devices based on device id. + ## Currently, only supported and tested device id is `0x2710`. + ## Configuration added to support forward compatibility. + # dlb_device_types = ["0x2710"] + + ## Specifies plugin behavior regarding unreachable socket (which might not have been initialized yet). + ## Available choices: + ## - error: Telegraf will return an error on startup if socket is unreachable + ## - ignore: Telegraf will ignore error regarding unreachable socket on both startup and gather + # unreachable_socket_behavior = "error" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/intel_pmt.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_pmt.conf new file mode 100644 index 0000000000..ed19893c5a --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_pmt.conf @@ -0,0 +1,18 @@ +# Intel Platform Monitoring Technology plugin exposes Intel PMT metrics available through the Intel PMT kernel space. +# This plugin ONLY supports Linux. +[[inputs.intel_pmt]] + ## Filepath to PMT XML within local copies of XML files from PMT repository. + ## The filepath should be absolute. + spec = "/home/telegraf/Intel-PMT/xml/pmt.xml" + + ## Enable metrics by their datatype. + ## See the Enabling Metrics section in README for more details. + ## If empty, all metrics are enabled. + ## When used, the alternative option samples_enabled should NOT be used. + # datatypes_enabled = [] + + ## Enable metrics by their name. + ## See the Enabling Metrics section in README for more details. + ## If empty, all metrics are enabled. + ## When used, the alternative option datatypes_enabled should NOT be used. + # samples_enabled = [] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/intel_pmu.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_pmu.conf index a94c638751..30fd22cb9e 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/intel_pmu.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_pmu.conf @@ -1,4 +1,5 @@ # Intel Performance Monitoring Unit plugin exposes Intel PMU metrics available through Linux Perf subsystem +# This plugin ONLY supports Linux on amd64 [[inputs.intel_pmu]] ## List of filesystem locations of JSON files that contain PMU event definitions. event_definitions = ["/var/cache/pmu/GenuineIntel-6-55-4-core.json", "/var/cache/pmu/GenuineIntel-6-55-4-uncore.json"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/intel_powerstat.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_powerstat.conf index 09a5d19cdb..8d3c1a5e89 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/intel_powerstat.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_powerstat.conf @@ -1,16 +1,48 @@ -# Intel PowerStat plugin enables monitoring of platform metrics (power, TDP) and per-CPU metrics like temperature, power and utilization. +# Intel PowerStat plugin enables monitoring of platform metrics (power, TDP) +# and per-CPU metrics like temperature, power and utilization. Please see the +# plugin readme for details on software and hardware compatibility. +# This plugin ONLY supports Linux. [[inputs.intel_powerstat]] - ## The user can choose which package metrics are monitored by the plugin with the package_metrics setting: - ## - The default, will collect "current_power_consumption", "current_dram_power_consumption" and "thermal_design_power" - ## - Setting this value to an empty array means no package metrics will be collected - ## - Finally, a user can specify individual metrics to capture from the supported options list + ## The user can choose which package metrics are monitored by the plugin with + ## the package_metrics setting: + ## - The default, will collect "current_power_consumption", + ## "current_dram_power_consumption" and "thermal_design_power". + ## - Leaving this setting empty means no package metrics will be collected. + ## - Finally, a user can specify individual metrics to capture from the + ## supported options list. ## Supported options: - ## "current_power_consumption", "current_dram_power_consumption", "thermal_design_power", "max_turbo_frequency", "uncore_frequency" + ## "current_power_consumption", "current_dram_power_consumption", + ## "thermal_design_power", "max_turbo_frequency", "uncore_frequency", + ## "cpu_base_frequency" # package_metrics = ["current_power_consumption", "current_dram_power_consumption", "thermal_design_power"] - ## The user can choose which per-CPU metrics are monitored by the plugin in cpu_metrics array. - ## Empty or missing array means no per-CPU specific metrics will be collected by the plugin. + ## The user can choose which per-CPU metrics are monitored by the plugin in + ## cpu_metrics array. + ## Empty or missing array means no per-CPU specific metrics will be collected + ## by the plugin. ## Supported options: - ## "cpu_frequency", "cpu_c0_state_residency", "cpu_c1_state_residency", "cpu_c6_state_residency", "cpu_busy_cycles", "cpu_temperature", "cpu_busy_frequency" - ## ATTENTION: cpu_busy_cycles option is DEPRECATED - superseded by cpu_c0_state_residency + ## "cpu_frequency", "cpu_c0_state_residency", "cpu_c1_state_residency", + ## "cpu_c3_state_residency", "cpu_c6_state_residency", "cpu_c7_state_residency", + ## "cpu_temperature", "cpu_busy_frequency", "cpu_c0_substate_c01", + ## "cpu_c0_substate_c02", "cpu_c0_substate_c0_wait" # cpu_metrics = [] + + ## CPUs metrics to include from those configured in cpu_metrics array + ## Can't be combined with excluded_cpus. Empty means all CPUs are gathered. + ## e.g. ["0-3", "4,5,6"] or ["1-3,4"] + # included_cpus = [] + + ## CPUs metrics to exclude from those configured in cpu_metrics array + ## Can't be combined with included_cpus. Empty means all CPUs are gathered. + ## e.g. ["0-3", "4,5,6"] or ["1-3,4"] + # excluded_cpus = [] + + ## Filesystem location of JSON file that contains PMU event definitions. + ## Mandatory only for perf-related metrics (cpu_c0_substate_c01, cpu_c0_substate_c02, cpu_c0_substate_c0_wait). + # event_definitions = "" + + ## The user can set the timeout duration for MSR reading. + ## Enabling this timeout can be useful in situations where, on heavily loaded systems, + ## the code waits too long for a kernel response to MSR read requests. + ## 0 disables the timeout (default). + # msr_read_timeout = "0ms" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/intel_rdt.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_rdt.conf index 1419279629..79973b621a 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/intel_rdt.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/intel_rdt.conf @@ -1,28 +1,29 @@ # Read Intel RDT metrics +# This plugin ONLY supports non-Windows [[inputs.intel_rdt]] - ## Optionally set sampling interval to Nx100ms. - ## This value is propagated to pqos tool. Interval format is defined by pqos itself. - ## If not provided or provided 0, will be set to 10 = 10x100ms = 1s. - # sampling_interval = "10" + ## Optionally set sampling interval to Nx100ms. + ## This value is propagated to pqos tool. Interval format is defined by pqos itself. + ## If not provided or provided 0, will be set to 10 = 10x100ms = 1s. + # sampling_interval = "10" - ## Optionally specify the path to pqos executable. - ## If not provided, auto discovery will be performed. - # pqos_path = "/usr/local/bin/pqos" + ## Optionally specify the path to pqos executable. + ## If not provided, auto discovery will be performed. + # pqos_path = "/usr/local/bin/pqos" - ## Optionally specify if IPC and LLC_Misses metrics shouldn't be propagated. - ## If not provided, default value is false. - # shortened_metrics = false + ## Optionally specify if IPC and LLC_Misses metrics shouldn't be propagated. + ## If not provided, default value is false. + # shortened_metrics = false - ## Specify the list of groups of CPU core(s) to be provided as pqos input. - ## Mandatory if processes aren't set and forbidden if processes are specified. - ## e.g. ["0-3", "4,5,6"] or ["1-3,4"] - # cores = ["0-3"] + ## Specify the list of groups of CPU core(s) to be provided as pqos input. + ## Mandatory if processes aren't set and forbidden if processes are specified. + ## e.g. ["0-3", "4,5,6"] or ["1-3,4"] + # cores = ["0-3"] - ## Specify the list of processes for which Metrics will be collected. - ## Mandatory if cores aren't set and forbidden if cores are specified. - ## e.g. ["qemu", "pmd"] - # processes = ["process"] + ## Specify the list of processes for which Metrics will be collected. + ## Mandatory if cores aren't set and forbidden if cores are specified. + ## e.g. ["qemu", "pmd"] + # processes = ["process"] - ## Specify if the pqos process should be called with sudo. - ## Mandatory if the telegraf process does not run as root. - # use_sudo = false + ## Specify if the pqos process should be called with sudo. + ## Mandatory if the telegraf process does not run as root. + # use_sudo = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/internal.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/internal.conf index 4292b8e5e1..83e10ecfaa 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/internal.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/internal.conf @@ -2,3 +2,10 @@ [[inputs.internal]] ## If true, collect telegraf memory stats. # collect_memstats = true + + ## If true, collect metrics from Go's runtime.metrics. For a full list see: + ## https://pkg.go.dev/runtime/metrics + # collect_gostats = false + + ## Collect statistics per plugin instance and not per plugin type + # per_instance = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/internet_speed.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/internet_speed.conf index a51a88843d..65dfa7ae98 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/internet_speed.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/internet_speed.conf @@ -5,8 +5,32 @@ ## demand on your internet connection. # interval = "60m" - ## Sets if runs file download test - # enable_file_download = false + ## Enable to reduce memory usage + # memory_saving_mode = false ## Caches the closest server location # cache = false + + ## Number of concurrent connections + ## By default or set to zero, the number of CPU cores is used. Use this to + ## reduce the impact on system performance or to increase the connections on + ## faster connections to ensure the fastest speed. + # connections = 0 + + ## Test mode + ## By default, a single sever is used for testing. This may work for most, + ## however, setting to "multi" will reach out to multiple servers in an + ## attempt to get closer to ideal internet speeds. + ## And "multi" will use all available servers to calculate average packet loss. + # test_mode = "single" + + ## Server ID exclude filter + ## Allows the user to exclude or include specific server IDs received by + ## speedtest-go. Values in the exclude option will be skipped over. Values in + ## the include option are the only options that will be picked from. + ## + ## See the list of servers speedtest-go will return at: + ## https://www.speedtest.net/api/js/servers?engine=js&limit=10 + ## + # server_id_exclude = [] + # server_id_include = [] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/ipmi_sensor.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/ipmi_sensor.conf index 3cabeb204d..8964849a0d 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/ipmi_sensor.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/ipmi_sensor.conf @@ -1,41 +1,47 @@ # Read metrics from the bare metal servers via IPMI [[inputs.ipmi_sensor]] - ## optionally specify the path to the ipmitool executable + ## Specify the path to the ipmitool executable # path = "/usr/bin/ipmitool" - ## + + ## Use sudo ## Setting 'use_sudo' to true will make use of sudo to run ipmitool. ## Sudo must be configured to allow the telegraf user to run ipmitool ## without a password. # use_sudo = false - ## - ## optionally force session privilege level. Can be CALLBACK, USER, OPERATOR, ADMINISTRATOR - # privilege = "ADMINISTRATOR" - ## - ## optionally specify one or more servers via a url matching + + ## Servers + ## Specify one or more servers via a url. If no servers are specified, local + ## machine sensor stats will be queried. Uses the format: ## [username[:password]@][protocol[(address)]] - ## e.g. - ## root:passwd@lan(127.0.0.1) - ## - ## if no servers are specified, local machine sensor stats will be queried - ## + ## e.g. root:passwd@lan(127.0.0.1) # servers = ["USERID:PASSW0RD@lan(192.168.1.1)"] - ## Recommended: use metric 'interval' that is a multiple of 'timeout' to avoid - ## gaps or overlap in pulled data - interval = "30s" + ## Session privilege level + ## Choose from: CALLBACK, USER, OPERATOR, ADMINISTRATOR + # privilege = "ADMINISTRATOR" + + ## Timeout + ## Timeout for the ipmitool command to complete. + # timeout = "20s" - ## Timeout for the ipmitool command to complete. Default is 20 seconds. - timeout = "20s" + ## Metric schema version + ## See the plugin readme for more information on schema versioning. + # metric_version = 1 - ## Schema Version: (Optional, defaults to version 1) - metric_version = 2 + ## Sensors to collect + ## Choose from: + ## * sdr: default, collects sensor data records + ## * chassis_power_status: collects the power status of the chassis + ## * dcmi_power_reading: collects the power readings from the Data Center Management Interface + # sensors = ["sdr"] + ## Hex key ## Optionally provide the hex key for the IMPI connection. # hex_key = "" + ## Cache ## If ipmitool should use a cache - ## for me ipmitool runs about 2 to 10 times faster with cache enabled on HP G10 servers (when using ubuntu20.04) - ## the cache file may not work well for you if some sensors come up late + ## Using a cache can speed up collection times depending on your device. # use_cache = false ## Path to the ipmitools cache file (defaults to OS temp dir) diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/ipset.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/ipset.conf index a873eb7922..0ffa58ca0b 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/ipset.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/ipset.conf @@ -2,11 +2,15 @@ [[inputs.ipset]] ## By default, we only show sets which have already matched at least 1 packet. ## set include_unmatched_sets = true to gather them all. - include_unmatched_sets = false + # include_unmatched_sets = false + ## Adjust your sudo settings appropriately if using this option ("sudo ipset save") ## You can avoid using sudo or root, by setting appropriate privileges for ## the telegraf.service systemd service. - use_sudo = false + # use_sudo = false + + ## Add number of entries and number of individual IPs (resolve CIDR syntax) for each ipset + # count_per_ip_entries = false + ## The default timeout of 1s for ipset execution can be overridden here: # timeout = "1s" - diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/iptables.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/iptables.conf index 3e039c669a..5114faf9bc 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/iptables.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/iptables.conf @@ -1,17 +1,23 @@ # Gather packets and bytes throughput from iptables +# This plugin ONLY supports Linux [[inputs.iptables]] ## iptables require root access on most systems. ## Setting 'use_sudo' to true will make use of sudo to run iptables. - ## Users must configure sudo to allow telegraf user to run iptables with no password. + ## Users must configure sudo to allow telegraf user to run iptables with + ## no password. ## iptables can be restricted to only list command "iptables -nvL". - use_sudo = false + # use_sudo = false + ## Setting 'use_lock' to true runs iptables with the "-w" option. - ## Adjust your sudo settings appropriately if using this option ("iptables -w 5 -nvl") - use_lock = false + ## Adjust your sudo settings appropriately if using this option + ## ("iptables -w 5 -nvl") + # use_lock = false + ## Define an alternate executable, such as "ip6tables". Default is "iptables". # binary = "ip6tables" ## defines the table to monitor: table = "filter" + ## defines the chains to monitor. ## NOTE: iptables rules without a comment will not be monitored. ## Read the plugin documentation for more information. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/ipvs.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/ipvs.conf index 003be06325..dcd19ff669 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/ipvs.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/ipvs.conf @@ -1,3 +1,4 @@ # Collect virtual and real server stats from Linux IPVS +# This plugin ONLY supports Linux [[inputs.ipvs]] # no configuration diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/jenkins.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/jenkins.conf index 1ea19ced45..9aa4bd7097 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/jenkins.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/jenkins.conf @@ -45,3 +45,8 @@ ## Worker pool for jenkins plugin only ## Empty this field will use default value 5 # max_connections = 5 + + ## When set to true will add node labels as a comma-separated tag. If none, + ## are found, then a tag with the value of 'none' is used. Finally, if a + ## label contains a comma it is replaced with an underscore. + # node_labels_as_tag = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/jolokia2_agent.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/jolokia2_agent.conf index 24f0e46365..d50089f0a9 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/jolokia2_agent.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/jolokia2_agent.conf @@ -10,6 +10,10 @@ # password = "" # response_timeout = "5s" + ## Optional origin URL to include as a header in the request. Some endpoints + ## may reject an empty origin. + # origin = "" + ## Optional TLS config # tls_ca = "/var/private/ca.pem" # tls_cert = "/var/private/client.pem" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/jolokia2_proxy.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/jolokia2_proxy.conf index d5b4e41b00..22e4e3a222 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/jolokia2_proxy.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/jolokia2_proxy.conf @@ -10,6 +10,10 @@ # password = "" # response_timeout = "5s" + ## Optional origin URL to include as a header in the request. Some endpoints + ## may reject an empty origin. + # origin = "" + ## Optional TLS config # tls_ca = "/var/private/ca.pem" # tls_cert = "/var/private/client.pem" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/jti_openconfig_telemetry.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/jti_openconfig_telemetry.conf index 654502d414..b82d75228b 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/jti_openconfig_telemetry.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/jti_openconfig_telemetry.conf @@ -1,4 +1,4 @@ -# Read JTI OpenConfig Telemetry from listed sensors +# Subscribe and receive OpenConfig Telemetry data using JTI [[inputs.jti_openconfig_telemetry]] ## List of device addresses to collect telemetry from servers = ["localhost:1883"] @@ -33,11 +33,18 @@ "/interfaces", ] + ## Timestamp Source + ## Set to 'collection' for time of collection, and 'data' for using the time + ## provided by the _timestamp field. + # timestamp_source = "collection" + ## Optional TLS Config - # enable_tls = true + # enable_tls = false # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" + ## Minimal TLS version to accept by the client + # tls_min_version = "TLS12" ## Use TLS but skip chain & host verification # insecure_skip_verify = false @@ -45,5 +52,9 @@ ## Failed streams/calls will not be retried if 0 is provided retry_delay = "1000ms" + ## Period for sending keep-alive packets on idle connections + ## This is helpful to identify broken connections to the server + # keep_alive_period = "10s" + ## To treat all string values as tags, set this to true str_as_tags = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/kafka_consumer.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/kafka_consumer.conf index 2357ec56ee..f1d843c2fc 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/kafka_consumer.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/kafka_consumer.conf @@ -3,38 +3,68 @@ ## Kafka brokers. brokers = ["localhost:9092"] + ## Set the minimal supported Kafka version. Should be a string contains + ## 4 digits in case if it is 0 version and 3 digits for versions starting + ## from 1.0.0 separated by dot. This setting enables the use of new + ## Kafka features and APIs. Must be 0.10.2.0(used as default) or greater. + ## Please, check the list of supported versions at + ## https://pkg.go.dev/github.com/Shopify/sarama#SupportedVersions + ## ex: kafka_version = "2.6.0" + ## ex: kafka_version = "0.10.2.0" + # kafka_version = "0.10.2.0" + ## Topics to consume. topics = ["telegraf"] + ## Topic regular expressions to consume. Matches will be added to topics. + ## Example: topic_regexps = [ "*test", "metric[0-9A-z]*" ] + # topic_regexps = [ ] + ## When set this tag will be added to all metrics with the topic as the value. # topic_tag = "" + ## The list of Kafka message headers that should be pass as metric tags + ## works only for Kafka version 0.11+, on lower versions the message headers + ## are not available + # msg_headers_as_tags = [] + + ## The name of kafka message header which value should override the metric name. + ## In case when the same header specified in current option and in msg_headers_as_tags + ## option, it will be excluded from the msg_headers_as_tags list. + # msg_header_as_metric_name = "" + + ## Set metric(s) timestamp using the given source. + ## Available options are: + ## metric -- do not modify the metric timestamp + ## inner -- use the inner message timestamp (Kafka v0.10+) + ## outer -- use the outer (compressed) block timestamp (Kafka v0.10+) + # timestamp_source = "metric" + ## Optional Client id # client_id = "Telegraf" - ## Set the minimal supported Kafka version. Setting this enables the use of new - ## Kafka features and APIs. Must be 0.10.2.0 or greater. - ## ex: version = "1.1.0" - # version = "" - ## Optional TLS Config + # enable_tls = false # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" ## Use TLS but skip chain & host verification # insecure_skip_verify = false - ## SASL authentication credentials. These settings should typically be used + ## Period between keep alive probes. + ## Defaults to the OS configuration if not specified or zero. + # keep_alive_period = "15s" + + ## SASL authentication credentials. These settings should typically be used ## with TLS encryption enabled - # sasl_username = "kafka" - # sasl_password = "secret" + # sasl_username = "" + # sasl_password = "" - ## Optional SASL: - ## one of: OAUTHBEARER, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI - ## (defaults to PLAIN) + ## Optional SASL, one of: + ## OAUTHBEARER, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI, AWS-MSK-IAM # sasl_mechanism = "" - ## used if sasl_mechanism is GSSAPI (experimental) + ## used if sasl_mechanism is GSSAPI # sasl_gssapi_service_name = "" # ## One of: KRB5_USER_AUTH and KRB5_KEYTAB_AUTH # sasl_gssapi_auth_type = "KRB5_USER_AUTH" @@ -43,10 +73,22 @@ # sasl_gssapi_key_tab_path = "" # sasl_gssapi_disable_pafxfast = false - ## used if sasl_mechanism is OAUTHBEARER (experimental) + ## used if sasl_mechanism is OAUTHBEARER # sasl_access_token = "" - ## SASL protocol version. When connecting to Azure EventHub set to 0. + ## used if sasl_mechanism is AWS-MSK-IAM + # sasl_aws_msk_iam_region = "" + ## for profile based auth + ## sasl_aws_msk_iam_profile = "" + ## for role based auth + ## sasl_aws_msk_iam_role = "" + ## sasl_aws_msk_iam_session = "" + + ## Arbitrary key value string pairs to pass as a TOML table. For example: + ## {logicalCluster = "cluster-042", poolId = "pool-027"} + # sasl_extensions = {} + + ## SASL protocol version. When connecting to Azure EventHub set to 0. # sasl_version = 1 # Disable Kafka metadata full fetch @@ -69,18 +111,44 @@ ## Consumer group partition assignment strategy; one of "range", "roundrobin" or "sticky". # balance_strategy = "range" + ## Maximum number of retries for metadata operations including + ## connecting. Sets Sarama library's Metadata.Retry.Max config value. If 0 or + ## unset, use the Sarama default of 3, + # metadata_retry_max = 0 + + ## Type of retry backoff. Valid options: "constant", "exponential" + # metadata_retry_type = "constant" + + ## Amount of time to wait before retrying. When metadata_retry_type is + ## "constant", each retry is delayed this amount. When "exponential", the + ## first retry is delayed this amount, and subsequent delays are doubled. If 0 + ## or unset, use the Sarama default of 250 ms + # metadata_retry_backoff = 0 + + ## Maximum amount of time to wait before retrying when metadata_retry_type is + ## "exponential". Ignored for other retry types. If 0, there is no backoff + ## limit. + # metadata_retry_max_duration = 0 + + ## When set to true, this turns each bootstrap broker address into a set of + ## IPs, then does a reverse lookup on each one to get its canonical hostname. + ## This list of hostnames then replaces the original address list. + ## resolve_canonical_bootstrap_servers_only = false + ## Maximum length of a message to consume, in bytes (default 0/unlimited); ## larger messages are dropped max_message_len = 1000000 - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Maximum amount of time the consumer should take to process messages. If @@ -92,8 +160,15 @@ ## '2 * max_processing_time'. # max_processing_time = "100ms" + ## The default number of message bytes to fetch from the broker in each + ## request (default 1MB). This should be larger than the majority of + ## your messages, or else the consumer will spend a lot of time + ## negotiating sizes and not actually consuming. Similar to the JVM's + ## `fetch.message.max.bytes`. + # consumer_fetch_default = "1MB" + ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md - data_format = "influx" + # data_format = "influx" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/kernel.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/kernel.conf index 10de9f8a43..d848024360 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/kernel.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/kernel.conf @@ -1,3 +1,8 @@ -# Get kernel statistics from /proc/stat +# Plugin to collect various Linux kernel statistics. +# This plugin ONLY supports Linux [[inputs.kernel]] - # no configuration + ## Additional gather options + ## Possible options include: + ## * ksm - kernel same-page merging + ## * psi - pressure stall information + # collect = [] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/kernel_vmstat.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/kernel_vmstat.conf index fc5fd633db..4fdb145a14 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/kernel_vmstat.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/kernel_vmstat.conf @@ -1,3 +1,4 @@ # Get kernel statistics from /proc/vmstat +# This plugin ONLY supports Linux [[inputs.kernel_vmstat]] # no configuration diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/kibana.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/kibana.conf index 577cde8814..d43614f308 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/kibana.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/kibana.conf @@ -16,3 +16,10 @@ # tls_key = "/etc/telegraf/key.pem" ## Use TLS but skip chain & host verification # insecure_skip_verify = false + + ## If 'use_system_proxy' is set to true, Telegraf will check env vars such as + ## HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or their lowercase counterparts). + ## If 'use_system_proxy' is set to false (default) and 'http_proxy_url' is + ## provided, Telegraf will use the specified URL as HTTP proxy. + # use_system_proxy = false + # http_proxy_url = "http://localhost:8888" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/kinesis_consumer.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/kinesis_consumer.conf index 1e7547fbdc..c207caf067 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/kinesis_consumer.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/kinesis_consumer.conf @@ -30,37 +30,45 @@ ## Kinesis StreamName must exist prior to starting telegraf. streamname = "StreamName" - ## Shard iterator type (only 'TRIM_HORIZON' and 'LATEST' currently supported) + ## Shard iterator type + ## Available options: 'TRIM_HORIZON' (first in non-expired) and 'LATEST' # shard_iterator_type = "TRIM_HORIZON" - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. - ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. - # max_undelivered_messages = 1000 + ## Interval for checking for new records + ## Please consider limits for getting records documented here: + ## https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html + # poll_interval = "250ms" - ## Data format to consume. - ## Each data format has its own unique set of configuration options, read - ## more about them here: - ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md - data_format = "influx" + ## Interval for scanning for new shards created when resharding + ## If set to zero, shards are only scanned once on startup. + # shard_update_interval = "30s" + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## The content encoding of the data from kinesis - ## If you are processing a cloudwatch logs kinesis stream then set this to "gzip" - ## as AWS compresses cloudwatch log data before it is sent to kinesis (aws - ## also base64 encodes the zip byte data before pushing to the stream. The base64 decoding - ## is done automatically by the golang sdk, as data is read from kinesis) - ## + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. + # max_undelivered_messages = 1000 + + ## Content encoding of the record data + ## If you are processing a cloudwatch logs kinesis stream then set this to + ## "gzip" as AWS compresses cloudwatch log data before it is sent to kinesis. # content_encoding = "identity" - ## Optional - ## Configuration for a dynamodb checkpoint - [inputs.kinesis_consumer.checkpoint_dynamodb] - ## unique name for this consumer - app_name = "default" - table_name = "default" + ## Data format of the records to consume + ## See https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md + # data_format = "influx" + + ## Optional: Configuration for DynamoDB backend to store positions in the stream + # [inputs.kinesis_consumer.checkpoint_dynamodb] + # ## Unique name for this consumer + # app_name = "default" + # ## Table to store the sequence numbers in + # table_name = "default" + # ## Interval for persisting data to limit write operations + # # interval = "10s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/knx_listener.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/knx_listener.conf index d4508ed933..770eadbfb3 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/knx_listener.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/knx_listener.conf @@ -1,7 +1,7 @@ # Listener capable of handling KNX bus messages provided through a KNX-IP Interface. [[inputs.knx_listener]] ## Type of KNX-IP interface. - ## Can be either "tunnel" or "router". + ## Can be either "tunnel_udp", "tunnel_tcp", "tunnel" (alias for tunnel_udp) or "router". # service_type = "tunnel" ## Address of the KNX-IP interface. @@ -13,6 +13,9 @@ # name = "temperature" # ## Datapoint-Type (DPT) of the KNX messages # dpt = "9.001" + # ## Use the string representation instead of the numerical value for the + # ## datapoint-type and the addresses below + # # as_string = false # ## List of Group-Addresses (GAs) assigned to the measurement # addresses = ["5/5/1"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/kube_inventory.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/kube_inventory.conf index d9c508a08b..1eabd6805e 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/kube_inventory.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/kube_inventory.conf @@ -1,25 +1,30 @@ # Read metrics from the Kubernetes api [[inputs.kube_inventory]] - ## URL for the Kubernetes API - url = "https://127.0.0.1" + ## URL for the Kubernetes API. + ## If empty in-cluster config with POD's service account token will be used. + # url = "" + + ## URL for the kubelet, if set it will be used to collect the pods resource metrics + # url_kubelet = "http://127.0.0.1:10255" ## Namespace to use. Set to "" to use all namespaces. # namespace = "default" - ## Use bearer token for authorization. ('bearer_token' takes priority) - ## If both of these are empty, we'll use the default serviceaccount: - ## at: /run/secrets/kubernetes.io/serviceaccount/token - # bearer_token = "/path/to/bearer/token" - ## OR - # bearer_token_string = "abc_123" + ## Node name to filter to. No filtering by default. + # node_name = "" + + ## Use bearer token for authorization. + ## Ignored if url is empty and in-cluster config is used. + # bearer_token = "/var/run/secrets/kubernetes.io/serviceaccount/token" ## Set response_timeout (default 5 seconds) # response_timeout = "5s" ## Optional Resources to exclude from gathering ## Leave them with blank with try to gather everything available. - ## Values can be - "daemonsets", deployments", "endpoints", "ingress", "nodes", - ## "persistentvolumes", "persistentvolumeclaims", "pods", "services", "statefulsets" + ## Values can be - "daemonsets", deployments", "endpoints", "ingress", + ## "nodes", "persistentvolumes", "persistentvolumeclaims", "pods", "services", + ## "statefulsets" # resource_exclude = [ "deployments", "nodes", "statefulsets" ] ## Optional Resources to include when gathering @@ -45,4 +50,4 @@ # insecure_skip_verify = false ## Uncomment to remove deprecated metrics. - # fielddrop = ["terminated_reason"] + # fieldexclude = ["terminated_reason"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/kubernetes.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/kubernetes.conf index ef8c5bdf4a..c4962d6cae 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/kubernetes.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/kubernetes.conf @@ -1,15 +1,25 @@ # Read metrics from the kubernetes kubelet api [[inputs.kubernetes]] - ## URL for the kubelet + ## URL for the kubelet, if empty read metrics from all nodes in the cluster url = "http://127.0.0.1:10255" ## Use bearer token for authorization. ('bearer_token' takes priority) ## If both of these are empty, we'll use the default serviceaccount: - ## at: /run/secrets/kubernetes.io/serviceaccount/token - # bearer_token = "/path/to/bearer/token" + ## at: /var/run/secrets/kubernetes.io/serviceaccount/token + ## + ## To re-read the token at each interval, please use a file with the + ## bearer_token option. If given a string, Telegraf will always use that + ## token. + # bearer_token = "/var/run/secrets/kubernetes.io/serviceaccount/token" ## OR # bearer_token_string = "abc_123" + ## Kubernetes Node Metric Name + ## The default Kubernetes node metric name (i.e. kubernetes_node) is the same + ## for the kubernetes and kube_inventory plugins. To avoid conflicts, set this + ## option to a different value. + # node_metric_name = "kubernetes_node" + ## Pod labels to be added as tags. An empty array for both include and ## exclude will include all labels. # label_include = [] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/ldap.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/ldap.conf new file mode 100644 index 0000000000..b31c9b6c0a --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/ldap.conf @@ -0,0 +1,47 @@ +# LDAP monitoring plugin +[[inputs.ldap]] + ## Server to monitor + ## The scheme determines the mode to use for connection with + ## ldap://... -- unencrypted (non-TLS) connection + ## ldaps://... -- TLS connection + ## starttls://... -- StartTLS connection + ## If no port is given, the default ports, 389 for ldap and starttls and + ## 636 for ldaps, are used. + server = "ldap://localhost" + + ## Server dialect, can be "openldap" or "389ds" + # dialect = "openldap" + + # DN and password to bind with + ## If bind_dn is empty an anonymous bind is performed. + bind_dn = "" + bind_password = "" + + ## Reverse the field names constructed from the monitoring DN + # reverse_field_names = false + + ## Optional TLS Config + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" + ## Minimal TLS version to accept by the client + # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" + ## Use TLS but skip chain & host verification + # insecure_skip_verify = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/libvirt.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/libvirt.conf new file mode 100644 index 0000000000..561294c765 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/libvirt.conf @@ -0,0 +1,29 @@ +# The libvirt plugin collects statistics from virtualized guests using virtualization libvirt API. +[[inputs.libvirt]] + ## Domain names from which libvirt gather statistics. + ## By default (empty or missing array) the plugin gather statistics from each domain registered in the host system. + # domains = [] + + ## Libvirt connection URI with hypervisor. + ## The plugin supports multiple transport protocols and approaches which are configurable via the URI. + ## The general URI form: driver[+transport]://[username@][hostname][:port]/[path][?extraparameters] + ## Supported transport protocols: ssh, tcp, tls, unix + ## URI examples for each type of transport protocol: + ## 1. SSH: qemu+ssh:///system?keyfile=/&known_hosts=/ + ## 2. TCP: qemu+tcp:///system + ## 3. TLS: qemu+tls:///system?pkipath=/certs_dir/ + ## 4. UNIX: qemu+unix:///system?socket=/ + ## Default URI is qemu:///system + # libvirt_uri = "qemu:///system" + + ## Statistics groups for which libvirt plugin will gather statistics. + ## Supported statistics groups: state, cpu_total, balloon, vcpu, interface, block, perf, iothread, memory, dirtyrate + ## Empty array means no metrics for statistics groups will be exposed by the plugin. + ## By default the plugin will gather all available statistics. + # statistics_groups = ["state", "cpu_total", "balloon", "vcpu", "interface", "block", "perf", "iothread", "memory", "dirtyrate"] + + ## A list containing additional statistics to be exposed by libvirt plugin. + ## Supported additional statistics: vcpu_mapping + ## By default (empty or missing array) the plugin will not collect additional statistics. + # additional_statistics = [] + diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/linux_cpu.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/linux_cpu.conf index 9cb85e9971..777536ea14 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/linux_cpu.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/linux_cpu.conf @@ -1,4 +1,5 @@ # Provides Linux CPU metrics +# This plugin ONLY supports Linux [[inputs.linux_cpu]] ## Path for sysfs filesystem. ## See https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/logstash.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/logstash.conf index ed62dce13e..48afffc378 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/logstash.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/logstash.conf @@ -26,6 +26,13 @@ ## Use TLS but skip chain & host verification. # insecure_skip_verify = false + ## If 'use_system_proxy' is set to true, Telegraf will check env vars such as + ## HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or their lowercase counterparts). + ## If 'use_system_proxy' is set to false (default) and 'http_proxy_url' is + ## provided, Telegraf will use the specified URL as HTTP proxy. + # use_system_proxy = false + # http_proxy_url = "http://localhost:8888" + ## Optional HTTP headers. # [inputs.logstash.headers] # "X-Special-Header" = "Special-Value" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/lustre2.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/lustre2.conf index 02a3e3133c..7032ebd46d 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/lustre2.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/lustre2.conf @@ -1,16 +1,26 @@ # Read metrics from local Lustre service on OST, MDS +# This plugin ONLY supports Linux [[inputs.lustre2]] ## An array of /proc globs to search for Lustre stats - ## If not specified, the default will work on Lustre 2.5.x + ## If not specified, the default will work on Lustre 2.12.x ## + # mgs_procfiles = [ + # "/sys/fs/lustre/mgs/*/eviction_count", + # ] # ost_procfiles = [ # "/proc/fs/lustre/obdfilter/*/stats", # "/proc/fs/lustre/osd-ldiskfs/*/stats", # "/proc/fs/lustre/obdfilter/*/job_stats", # "/proc/fs/lustre/obdfilter/*/exports/*/stats", + # "/proc/fs/lustre/osd-ldiskfs/*/brw_stats", + # "/proc/fs/lustre/osd-zfs/*/brw_stats", + # "/sys/fs/lustre/odbfilter/*/eviction_count", # ] # mds_procfiles = [ # "/proc/fs/lustre/mdt/*/md_stats", # "/proc/fs/lustre/mdt/*/job_stats", # "/proc/fs/lustre/mdt/*/exports/*/stats", + # "/proc/fs/lustre/osd-ldiskfs/*/brw_stats", + # "/proc/fs/lustre/osd-zfs/*/brw_stats", + # "/sys/fs/lustre/mdt/*/eviction_count", # ] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/lvm.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/lvm.conf index ec2b7be83b..6c2ad57201 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/lvm.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/lvm.conf @@ -2,3 +2,12 @@ [[inputs.lvm]] ## Use sudo to run LVM commands use_sudo = false + + ## The default location of the pvs binary can be overridden with: + #pvs_binary = "/usr/sbin/pvs" + + ## The default location of the vgs binary can be overridden with: + #vgs_binary = "/usr/sbin/vgs" + + ## The default location of the lvs binary can be overridden with: + #lvs_binary = "/usr/sbin/lvs" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/mavlink.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/mavlink.conf new file mode 100644 index 0000000000..fc36db9e62 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/mavlink.conf @@ -0,0 +1,32 @@ +# Read metrics from a Mavlink flight controller. +[[inputs.mavlink]] + ## Flight controller URL supporting serial port, UDP and TCP connections. + ## Options are documented at + ## https://mavsdk.mavlink.io/v1.4/en/cpp/guide/connections.html. + ## + ## Examples: + ## - Serial port: serial:///dev/ttyACM0:57600 + ## - TCP client: tcp://192.168.1.12:5760 + ## - UDP client: udp://192.168.1.12:14550 + ## - TCP server: tcpserver://:5760 + ## - UDP server: udpserver://:14550 + # url = "tcp://127.0.0.1:5760" + + ## Filter to specific messages. Only the messages in this list will be parsed. + ## If blank or unset, all messages will be accepted. Glob syntax is accepted. + ## Each message in this list should be lowercase camel_case, with "message_" + ## prefix removed, eg: "global_position_int", "attitude" + # filter = [] + + ## Mavlink system ID for Telegraf. Only used if the mavlink plugin is sending + ## messages, eg. when `stream_request_frequency` is 0 (see below.) + # system_id = 254 + + ## Determines whether the plugin sends requests to subscribe to data. + ## In mavlink, stream rates must be configured before data is received. + ## This config item sets the rate in Hz, with 0 disabling the request. + ## + ## This frequency should be set to 0 if your software already controls the + ## rates using REQUEST_DATA_STREAM or MAV_CMD_SET_MESSAGE_INTERVAL + ## (See https://mavlink.io/en/mavgen_python/howto_requestmessages.html) + # stream_request_frequency = 4 diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/mdstat.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/mdstat.conf index 040d1d690c..68cd277c64 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/mdstat.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/mdstat.conf @@ -1,4 +1,5 @@ # Get kernel statistics from /proc/mdstat +# This plugin ONLY supports Linux [[inputs.mdstat]] ## Sets file path ## If not specified, then default is /proc/mdstat diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/memcached.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/memcached.conf index b13c2985c0..d7a6e2792e 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/memcached.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/memcached.conf @@ -7,7 +7,7 @@ # unix_sockets = ["/var/run/memcached.sock"] ## Optional TLS Config - # enable_tls = true + # enable_tls = false # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/mock.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/mock.conf index 03feadf79e..b08cbc5074 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/mock.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/mock.conf @@ -8,23 +8,24 @@ # "key" = "value" ## One or more mock data fields *must* be defined. - ## - ## [[inputs.mock.constant]] - ## name = "constant" - ## value = value_of_any_type - ## [[inputs.mock.random]] - ## name = "rand" - ## min = 1.0 - ## max = 6.0 - ## [[inputs.mock.sine_wave]] - ## name = "wave" - ## amplitude = 1.0 - ## period = 0.5 - ## [[inputs.mock.step]] - ## name = "plus_one" - ## start = 0.0 - ## step = 1.0 - ## [[inputs.mock.stock]] - ## name = "abc" - ## price = 50.00 - ## volatility = 0.2 + # [[inputs.mock.constant]] + # name = "constant" + # value = value_of_any_type + # [[inputs.mock.random]] + # name = "rand" + # min = 1.0 + # max = 6.0 + # [[inputs.mock.sine_wave]] + # name = "wave" + # amplitude = 1.0 + # period = 0.5 + # phase = 20.0 + # base_line = 0.0 + # [[inputs.mock.step]] + # name = "plus_one" + # start = 0.0 + # step = 1.0 + # [[inputs.mock.stock]] + # name = "abc" + # price = 50.00 + # volatility = 0.2 diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/modbus.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/modbus.conf index 18905973d5..0858a4c6cc 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/modbus.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/modbus.conf @@ -24,26 +24,37 @@ controller = "tcp://localhost:502" ## Serial (RS485; RS232) + ## For RS485 specific setting check the end of the configuration. + ## For unix-like operating systems use: # controller = "file:///dev/ttyUSB0" + ## For Windows operating systems use: + # controller = "COM1" # baud_rate = 9600 # data_bits = 8 # parity = "N" # stop_bits = 1 - ## For Modbus over TCP you can choose between "TCP", "RTUoverTCP" and "ASCIIoverTCP" - ## default behaviour is "TCP" if the controller is TCP - ## For Serial you can choose between "RTU" and "ASCII" - # transmission_mode = "RTU" + ## Transmission mode for Modbus packets depending on the controller type. + ## For Modbus over TCP you can choose between "TCP" , "RTUoverTCP" and + ## "ASCIIoverTCP". + ## For Serial controllers you can choose between "RTU" and "ASCII". + ## By default this is set to "auto" selecting "TCP" for ModbusTCP connections + ## and "RTU" for serial connections. + # transmission_mode = "auto" - ## Trace the connection to the modbus device as debug messages - ## Note: You have to enable telegraf's debug mode to see those messages! - # debug_connection = false + ## Trace the connection to the modbus device + # log_level = "trace" ## Define the configuration schema ## |---register -- define fields per register type in the original style (only supports one slave ID) ## |---request -- define fields on a requests base + ## |---metric -- define fields on a metric base configuration_type = "register" + ## Exclude the register type tag + ## Please note, this will also influence the grouping of metrics as you won't + ## see one metric per register type anymore! + # exclude_register_type_tag = false ## --- "register" configuration style --- ## Measurements @@ -52,6 +63,7 @@ ## Digital Variables, Discrete Inputs and Coils ## measurement - the (optional) measurement name, defaults to "modbus" ## name - the variable name + ## data_type - the (optional) output type, can be BOOL or UINT16 (default) ## address - variable address discrete_inputs = [ @@ -74,9 +86,13 @@ ## |---BA, DCBA - Little Endian ## |---BADC - Mid-Big Endian ## |---CDAB - Mid-Little Endian - ## data_type - INT16, UINT16, INT32, UINT32, INT64, UINT64, - ## FLOAT32-IEEE, FLOAT64-IEEE (the IEEE 754 binary representation) - ## FLOAT32, FIXED, UFIXED (fixed-point representation on input) + ## data_type - BIT (single bit of a register) + ## INT8L, INT8H, UINT8L, UINT8H (low and high byte variants) + ## INT16, UINT16, INT32, UINT32, INT64, UINT64, + ## FLOAT16-IEEE, FLOAT32-IEEE, FLOAT64-IEEE (IEEE 754 binary representation) + ## FIXED, UFIXED (fixed-point representation on input) + ## STRING (byte-sequence converted to string) + ## bit - (optional) bit of the register, ONLY valid for BIT type ## scale - the final numeric variable representation ## address - variable address @@ -87,6 +103,7 @@ { name = "current", byte_order = "ABCD", data_type = "FIXED", scale=0.001, address = [1,2]}, { name = "frequency", byte_order = "AB", data_type = "UFIXED", scale=0.1, address = [7]}, { name = "power", byte_order = "ABCD", data_type = "UFIXED", scale=0.1, address = [3,4]}, + { name = "firmware", byte_order = "AB", data_type = "STRING", address = [5, 6, 7, 8, 9, 10, 11, 12]}, ] input_registers = [ { name = "tank_level", byte_order = "AB", data_type = "INT16", scale=1.0, address = [0]}, @@ -94,7 +111,6 @@ { name = "pump1_speed", byte_order = "ABCD", data_type = "INT32", scale=1.0, address = [3,4]}, ] - ## --- "request" configuration style --- ## Per request definition @@ -119,36 +135,65 @@ register = "coil" ## Name of the measurement. - ## Can be overriden by the individual field definitions. Defaults to "modbus" + ## Can be overridden by the individual field definitions. Defaults to "modbus" # measurement = "modbus" + ## Request optimization algorithm. + ## |---none -- Do not perform any optimization and use the given layout(default) + ## |---shrink -- Shrink requests to actually requested fields + ## | by stripping leading and trailing omits + ## |---rearrange -- Rearrange request boundaries within consecutive address ranges + ## | to reduce the number of requested registers by keeping + ## | the number of requests. + ## |---max_insert -- Rearrange request keeping the number of extra fields below the value + ## provided in "optimization_max_register_fill". It is not necessary to define 'omitted' + ## fields as the optimisation will add such field only where needed. + # optimization = "none" + + ## Maximum number register the optimizer is allowed to insert between two fields to + ## save requests. + ## This option is only used for the 'max_insert' optimization strategy. + ## NOTE: All omitted fields are ignored, so this option denotes the effective hole + ## size to fill. + # optimization_max_register_fill = 50 + ## Field definitions ## Analog Variables, Input Registers and Holding Registers ## address - address of the register to query. For coil and discrete inputs this is the bit address. ## name *1 - field name - ## type *1,2 - type of the modbus field, can be INT16, UINT16, INT32, UINT32, INT64, UINT64 and - ## FLOAT32, FLOAT64 (IEEE 754 binary representation) - ## scale *1,2 - (optional) factor to scale the variable with - ## output *1,2 - (optional) type of resulting field, can be INT64, UINT64 or FLOAT64. Defaults to FLOAT64 if - ## "scale" is provided and to the input "type" class otherwise (i.e. INT* -> INT64, etc). + ## type *1,2 - type of the modbus field, can be + ## BIT (single bit of a register) + ## INT8L, INT8H, UINT8L, UINT8H (low and high byte variants) + ## INT16, UINT16, INT32, UINT32, INT64, UINT64 and + ## FLOAT16, FLOAT32, FLOAT64 (IEEE 754 binary representation) + ## STRING (byte-sequence converted to string) + ## length *1,2 - (optional) number of registers, ONLY valid for STRING type + ## bit *1,2 - (optional) bit of the register, ONLY valid for BIT type + ## scale *1,2,4 - (optional) factor to scale the variable with + ## output *1,3,4 - (optional) type of resulting field, can be INT64, UINT64 or FLOAT64. + ## Defaults to FLOAT64 for numeric fields if "scale" is provided. + ## Otherwise the input "type" class is used (e.g. INT* -> INT64). ## measurement *1 - (optional) measurement name, defaults to the setting of the request ## omit - (optional) omit this field. Useful to leave out single values when querying many registers ## with a single request. Defaults to "false". ## - ## *1: Those fields are ignored if field is omitted ("omit"=true) - ## - ## *2: Thise fields are ignored for both "coil" and "discrete"-input type of registers. For those register types - ## the fields are output as zero or one in UINT64 format by default. + ## *1: These fields are ignored if field is omitted ("omit"=true) + ## *2: These fields are ignored for both "coil" and "discrete"-input type of registers. + ## *3: This field can only be "UINT16" or "BOOL" if specified for both "coil" + ## and "discrete"-input type of registers. By default the fields are + ## output as zero or one in UINT16 format unless "BOOL" is used. + ## *4: These fields cannot be used with "STRING"-type fields. ## Coil / discrete input example fields = [ - { address=0, name="motor1_run"}, - { address=1, name="jog", measurement="motor"}, - { address=2, name="motor1_stop", omit=true}, - { address=3, name="motor1_overheating"}, + { address=0, name="motor1_run" }, + { address=1, name="jog", measurement="motor" }, + { address=2, name="motor1_stop", omit=true }, + { address=3, name="motor1_overheating", output="BOOL" }, + { address=4, name="firmware", type="STRING", length=8 }, ] - [[inputs.modbus.request.tags]] + [inputs.modbus.request.tags] machine = "impresser" location = "main building" @@ -167,7 +212,7 @@ { address=8, name="power_factor", type="INT64", scale=0.01 }, ] - [[inputs.modbus.request.tags]] + [inputs.modbus.request.tags] machine = "impresser" location = "main building" @@ -183,17 +228,133 @@ { address=4, name="hours", type="UINT32" }, # will result in UIN64 field ] - [[inputs.modbus.request.tags]] + [inputs.modbus.request.tags] machine = "impresser" location = "main building" + ## --- "metric" configuration style --- + + ## Per metric definition + ## + + ## Request optimization algorithm across metrics + ## |---none -- Do not perform any optimization and just group requests + ## | within metrics (default) + ## |---max_insert -- Collate registers across all defined metrics and fill in + ## holes to optimize the number of requests. + # optimization = "none" + + ## Maximum number of registers the optimizer is allowed to insert between + ## non-consecutive registers to save requests. + ## This option is only used for the 'max_insert' optimization strategy and + ## effectively denotes the hole size between registers to fill. + # optimization_max_register_fill = 50 + + ## Define a metric produced by the requests to the device + ## Multiple of those metrics can be defined. The referenced registers will + ## be collated into requests send to the device + [[inputs.modbus.metric]] + ## ID of the modbus slave device to query + ## If you need to query multiple slave-devices, create several "metric" definitions. + slave_id = 1 + + ## Byte order of the data + ## |---ABCD -- Big Endian (Motorola) + ## |---DCBA -- Little Endian (Intel) + ## |---BADC -- Big Endian with byte swap + ## |---CDAB -- Little Endian with byte swap + # byte_order = "ABCD" + + ## Name of the measurement + # measurement = "modbus" + + ## Field definitions + ## register - type of the modbus register, can be "coil", "discrete", + ## "holding" or "input". Defaults to "holding". + ## address - address of the register to query. For coil and discrete inputs this is the bit address. + ## name - field name + ## type *1 - type of the modbus field, can be + ## BIT (single bit of a register) + ## INT8L, INT8H, UINT8L, UINT8H (low and high byte variants) + ## INT16, UINT16, INT32, UINT32, INT64, UINT64 and + ## FLOAT16, FLOAT32, FLOAT64 (IEEE 754 binary representation) + ## STRING (byte-sequence converted to string) + ## length *1 - (optional) number of registers, ONLY valid for STRING type + ## bit *1,2 - (optional) bit of the register, ONLY valid for BIT type + ## scale *1,3 - (optional) factor to scale the variable with + ## output *2,3 - (optional) type of resulting field, can be INT64, UINT64 or FLOAT64. Defaults to FLOAT64 if + ## "scale" is provided and to the input "type" class otherwise (i.e. INT* -> INT64, etc). + ## + ## *1: These fields are ignored for both "coil" and "discrete"-input type of registers. + ## *2: This field can only be "UINT16" or "BOOL" if specified for both "coil" + ## and "discrete"-input type of registers. By default the fields are + ## output as zero or one in UINT16 format unless "BOOL" is used. + ## *3: These fields cannot be used with "STRING"-type fields. + fields = [ + { register="coil", address=0, name="door_open"}, + { register="coil", address=1, name="status_ok"}, + { register="holding", address=0, name="voltage", type="INT16" }, + { address=1, name="current", type="INT32", scale=0.001 }, + { address=5, name="energy", type="FLOAT32", scale=0.001 }, + { address=7, name="frequency", type="UINT32", scale=0.1 }, + { address=8, name="power_factor", type="INT64", scale=0.01 }, + { address=9, name="firmware", type="STRING", length=8 }, + ] + + ## Tags assigned to the metric + # [inputs.modbus.metric.tags] + # machine = "impresser" + # location = "main building" + ## RS485 specific settings. Only take effect for serial controllers. + ## Note: This has to be at the end of the modbus configuration due to + ## TOML constraints. + # [inputs.modbus.rs485] + ## Delay RTS prior to sending + # delay_rts_before_send = "0ms" + ## Delay RTS after to sending + # delay_rts_after_send = "0ms" + ## Pull RTS line to high during sending + # rts_high_during_send = false + ## Pull RTS line to high after sending + # rts_high_after_send = false + ## Enabling receiving (Rx) during transmission (Tx) + # rx_during_tx = false + ## Enable workarounds required by some devices to work correctly # [inputs.modbus.workarounds] - ## Pause between read requests sent to the device. This might be necessary for (slow) serial devices. + ## Pause after connect delays the first request by the specified time. + ## This might be necessary for (slow) devices. + # pause_after_connect = "0ms" + + ## Pause between read requests sent to the device. + ## This might be necessary for (slow) serial devices. # pause_between_requests = "0ms" - ## Close the connection after every gather cycle. Usually the plugin closes the connection after a certain - ## idle-timeout, however, if you query a device with limited simultaneous connectivity (e.g. serial devices) - ## from multiple instances you might want to only stay connected during gather and disconnect afterwards. + + ## Close the connection after every gather cycle. + ## Usually the plugin closes the connection after a certain idle-timeout, + ## however, if you query a device with limited simultaneous connectivity + ## (e.g. serial devices) from multiple instances you might want to only + ## stay connected during gather and disconnect afterwards. # close_connection_after_gather = false + + ## Force the plugin to read each field in a separate request. + ## This might be necessary for devices not conforming to the spec, + ## see https://github.com/influxdata/telegraf/issues/12071. + # one_request_per_field = false + + ## Enforce the starting address to be zero for the first request on + ## coil registers. This is necessary for some devices see + ## https://github.com/influxdata/telegraf/issues/8905 + # read_coils_starting_at_zero = false + + ## String byte-location in registers AFTER byte-order conversion + ## Some device (e.g. EM340) place the string byte in only the upper or + ## lower byte location of a register see + ## https://github.com/influxdata/telegraf/issues/14748 + ## Available settings: + ## lower -- use only lower byte of the register i.e. 00XX 00XX 00XX 00XX + ## upper -- use only upper byte of the register i.e. XX00 XX00 XX00 XX00 + ## By default both bytes of the register are used i.e. XXXX XXXX. + # string_register_location = "" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/mongodb.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/mongodb.conf index 5e9fbba176..97a876734c 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/mongodb.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/mongodb.conf @@ -31,8 +31,33 @@ # col_stats_dbs = ["local"] ## Optional TLS Config - # tls_ca = "/etc/telegraf/ca.pem" - # tls_cert = "/etc/telegraf/cert.pem" - # tls_key = "/etc/telegraf/key.pem" + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" + ## Minimal TLS version to accept by the client + # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" ## Use TLS but skip chain & host verification # insecure_skip_verify = false + + ## Specifies plugin behavior regarding disconnected servers + ## Available choices : + ## - error: telegraf will return an error on startup if one the servers is unreachable + ## - skip: telegraf will skip unreachable servers on both startup and gather + # disconnected_servers_behavior = "error" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/mqtt_consumer.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/mqtt_consumer.conf index 65b78d623e..5d8104c7ab 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/mqtt_consumer.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/mqtt_consumer.conf @@ -30,21 +30,32 @@ ## Connection timeout for initial connection in seconds # connection_timeout = "30s" - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Interval and ping timeout for keep-alive messages + ## The sum of those options defines when a connection loss is detected. + ## Note: The keep-alive interval needs to be greater or equal one second and + ## fractions of a second are not supported. + # keepalive = "60s" + # ping_timeout = "10s" + + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Persistent session disables clearing of the client session on connection. ## In order for this option to work you must also set client_id to identify ## the client. To receive messages that arrived while the client is offline, ## also set the qos option to 1 or 2 and don't forget to also set the QoS when - ## publishing. + ## publishing. Finally, using a persistent session will use the initial + ## connection topics and not subscribe to any new topics even after + ## reconnecting or restarting without a change in client ID. # persistent_session = false ## If unset, a random client ID will be generated. @@ -61,6 +72,12 @@ ## Use TLS but skip chain & host verification # insecure_skip_verify = false + ## Client trace messages + ## When set to true, and debug mode enabled in the agent settings, the MQTT + ## client's messages are included in telegraf logs. These messages are very + ## noisey, but essential for debugging issues. + # client_trace = false + ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: @@ -68,12 +85,13 @@ data_format = "influx" ## Enable extracting tag values from MQTT topics - ## _ denotes an ignored entry in the topic path + ## _ denotes an ignored entry in the topic path, + ## # denotes a variable length path element (can only be used once per setting) # [[inputs.mqtt_consumer.topic_parsing]] # topic = "" # measurement = "" # tags = "" # fields = "" ## Value supported is int, float, unit - # [[inputs.mqtt_consumer.topic.types]] + # [inputs.mqtt_consumer.topic_parsing.types] # key = type diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/mysql.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/mysql.conf index c429ad932a..a3a439c90f 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/mysql.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/mysql.conf @@ -26,7 +26,8 @@ ## if the list is empty, then metrics are gathered from all database tables # table_schema_databases = [] - ## gather metrics from INFORMATION_SCHEMA.TABLES for databases provided above list + ## gather metrics from INFORMATION_SCHEMA.TABLES for databases provided + ## in the list above # gather_table_schema = false ## gather thread state counts from INFORMATION_SCHEMA.PROCESSLIST @@ -47,7 +48,11 @@ ## gather metrics from SHOW SLAVE STATUS command output # gather_slave_status = false + ## gather metrics from SHOW REPLICA STATUS command output + # gather_replica_status = false + ## use SHOW ALL SLAVES STATUS command output for MariaDB + ## use SHOW ALL REPLICAS STATUS command if enable gather replica status # mariadb_dialect = false ## gather metrics from SHOW BINARY LOGS command output @@ -80,8 +85,6 @@ ## list of events to be gathered for gather_perf_sum_per_acc_per_event ## in case of empty list all events will be gathered # perf_summary_events = [] - # - # gather_perf_events_statements = false ## the limits for metrics form perf_events_statements # perf_events_statements_digest_text_limit = 120 @@ -92,7 +95,7 @@ ## example: interval_slow = "30m" # interval_slow = "" - ## Optional TLS Config (will be used if tls=custom parameter specified in server uri) + ## Optional TLS Config (used if tls=custom parameter specified in server uri) # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/nats.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/nats.conf index c5aaecd06d..7bf144eb2f 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/nats.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/nats.conf @@ -1,4 +1,5 @@ # Provides metrics about the state of a NATS server +# This plugin does NOT support FreeBSD [[inputs.nats]] ## The address of the monitoring endpoint of the NATS server server = "http://localhost:8222" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/nats_consumer.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/nats_consumer.conf index a498dadbc0..42a94af5c9 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/nats_consumer.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/nats_consumer.conf @@ -4,18 +4,37 @@ servers = ["nats://localhost:4222"] ## subject(s) to consume + ## If you use jetstream you need to set the subjects + ## in jetstream_subjects subjects = ["telegraf"] + ## jetstream subjects + ## jetstream is a streaming technology inside of nats. + ## With jetstream the nats-server persists messages and + ## a consumer can consume historical messages. This is + ## useful when telegraf needs to restart it don't miss a + ## message. You need to configure the nats-server. + ## https://docs.nats.io/nats-concepts/jetstream. + jetstream_subjects = ["js_telegraf"] + + ## explicitly specify the jetstream stream name + ## useful for sourced streams where there is no subject defined and + ## thus jetstream_subjects won't work + jetstream_stream = "" + ## name a queue group queue_group = "telegraf_consumers" - ## Optional credentials + ## Optional authentication with username and password credentials # username = "" # password = "" - ## Optional NATS 2.0 and NATS NGS compatible user credentials + ## Optional authentication with NATS credentials file (NATS 2.0) # credentials = "/etc/telegraf/nats.creds" + ## Optional authentication with nkey seed file (NATS 2.0) + # nkey_seed = "/etc/telegraf/seed.txt" + ## Use Transport Layer Security # secure = false @@ -31,14 +50,16 @@ # pending_message_limit = 65536 # pending_bytes_limit = 67108864 - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Data format to consume. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/neoom_beaam.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/neoom_beaam.conf new file mode 100644 index 0000000000..426e28e4bd --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/neoom_beaam.conf @@ -0,0 +1,36 @@ +# Read energy data from the local Neoom Beaam gateway +[[inputs.neoom_beaam]] + ## Address of the gateway + # address = "https://10.10.10.10" + + ## Bearer token for accessing the data + # token = "" + + ## Enforce refreshing the site configuration in each gather cycle + # refresh_configuration = false + + ## Optional TLS Config + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" + ## Minimal TLS version to accept by the client + # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" + ## Use TLS but skip chain & host verification + # insecure_skip_verify = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/net.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/net.conf index e7e3c8db73..7575d46857 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/net.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/net.conf @@ -4,11 +4,4 @@ ## Setting interfaces will tell it to gather these explicit interfaces, ## regardless of status. When specifying an interface, glob-style ## patterns are also supported. - ## # interfaces = ["eth*", "enp0s[0-1]", "lo"] - ## - ## On linux systems telegraf also collects protocol stats. - ## Setting ignore_protocol_stats to true will skip reporting of protocol metrics. - ## - # ignore_protocol_stats = false - ## diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/net_response.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/net_response.conf index deb0939c85..9327571f4c 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/net_response.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/net_response.conf @@ -22,4 +22,4 @@ # expect = "ssh" ## Uncomment to remove deprecated fields; recommended for new deploys - # fielddrop = ["result_type", "string_found"] + # fieldexclude = ["result_type", "string_found"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/netflow.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/netflow.conf new file mode 100644 index 0000000000..0713fafbf4 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/netflow.conf @@ -0,0 +1,28 @@ +# Netflow v5, Netflow v9 and IPFIX collector +[[inputs.netflow]] + ## Address to listen for netflow,ipfix or sflow packets. + ## example: service_address = "udp://:2055" + ## service_address = "udp4://:2055" + ## service_address = "udp6://:2055" + service_address = "udp://:2055" + + ## Set the size of the operating system's receive buffer. + ## example: read_buffer_size = "64KiB" + ## Uses the system's default if not set. + # read_buffer_size = "" + + ## Protocol version to use for decoding. + ## Available options are + ## "ipfix" -- IPFIX / Netflow v10 protocol (also works for Netflow v9) + ## "netflow v5" -- Netflow v5 protocol + ## "netflow v9" -- Netflow v9 protocol (also works for IPFIX) + ## "sflow v5" -- sFlow v5 protocol + # protocol = "ipfix" + + ## Private Enterprise Numbers (PEN) mappings for decoding + ## This option allows to specify vendor-specific mapping files to use during + ## decoding. + # private_enterprise_number_files = [] + + ## Log incoming packets for tracing issues + # log_level = "trace" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/nfsclient.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/nfsclient.conf index fbd1371c5f..f85be223a1 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/nfsclient.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/nfsclient.conf @@ -3,7 +3,7 @@ ## Read more low-level metrics (optional, defaults to false) # fullstat = false - ## List of mounts to explictly include or exclude (optional) + ## List of mounts to explicitly include or exclude (optional) ## The pattern (Go regexp) is matched against the mount point (not the ## device being mounted). If include_mounts is set, all mounts are ignored ## unless present in the list. If a mount is listed in both include_mounts @@ -12,7 +12,7 @@ # exclude_mounts = [] ## List of operations to include or exclude from collecting. This applies - ## only when fullstat=true. Symantics are similar to {include,exclude}_mounts: + ## only when fullstat=true. Semantics are similar to {include,exclude}_mounts: ## the default is to collect everything; when include_operations is set, only ## those OPs are collected; when exclude_operations is set, all are collected ## except those listed. If include and exclude are set, the OP is excluded. @@ -20,7 +20,7 @@ ## NFSv3 and NFSv4 have different lists. While it is not possible to ## have different include/exclude lists for NFSv3/4, unused elements ## in the list should be okay. It is possible to have different lists - ## for different mountpoints: use mulitple [[input.nfsclient]] stanzas, + ## for different mountpoints: use multiple [[input.nfsclient]] stanzas, ## with their own lists. See "include_mounts" above, and be careful of ## duplicate metrics. # include_operations = [] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/nsdp.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/nsdp.conf new file mode 100644 index 0000000000..e9990227a7 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/nsdp.conf @@ -0,0 +1,15 @@ +# Gather Netgear Switch Discovery Protocol status +[[inputs.nsdp]] + ## The target address to use for status gathering. Either Broadcast (default) + ## or the address of a single well-known device. + # address = "255.255.255.255:63322" + + ## The maximum number of device responses to wait for. 0 means no limit. + ## NSDP works asynchronously. Without a limit (0) the plugin always waits + ## the amount given in timeout for possible responses. By setting this + ## option to the known number of devices, the plugin completes + ## processing as soon as the last device has answered. + # device_limit = 0 + + ## The maximum duration to wait for device responses. + # timeout = "2s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/nsq_consumer.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/nsq_consumer.conf index 99003633eb..60fc0b59e6 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/nsq_consumer.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/nsq_consumer.conf @@ -1,8 +1,5 @@ # Read metrics from NSQD topic(s) [[inputs.nsq_consumer]] - ## Server option still works but is deprecated, we just prepend it to the nsqd array. - # server = "localhost:4150" - ## An array representing the NSQD TCP HTTP Endpoints nsqd = ["localhost:4150"] @@ -12,14 +9,16 @@ channel = "consumer" max_in_flight = 100 - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Data format to consume. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/ntpq.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/ntpq.conf index b94004c256..b4fa316699 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/ntpq.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/ntpq.conf @@ -1,4 +1,17 @@ # Get standard NTP query metrics, requires ntpq executable. [[inputs.ntpq]] - ## If false, set the -n ntpq flag. Can reduce metric gather time. - dns_lookup = true + ## Servers to query with ntpq. + ## If no server is given, the local machine is queried. + # servers = [] + + ## Options to pass to the ntpq command. + # options = "-p" + + ## Output format for the 'reach' field. + ## Available values are + ## octal -- output as is in octal representation e.g. 377 (default) + ## decimal -- convert value to decimal representation e.g. 371 -> 249 + ## count -- count the number of bits in the value. This represents + ## the number of successful reaches, e.g. 37 -> 5 + ## ratio -- output the ratio of successful attempts e.g. 37 -> 5/8 = 0.625 + # reach_format = "octal" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/opcua.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/opcua.conf index 0e44d1d6c5..491e74ec35 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/opcua.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/opcua.conf @@ -2,86 +2,151 @@ [[inputs.opcua]] ## Metric name # name = "opcua" - # + ## OPC UA Endpoint URL # endpoint = "opc.tcp://localhost:4840" - # + ## Maximum time allowed to establish a connect to the endpoint. # connect_timeout = "10s" - # - ## Maximum time allowed for a request over the estabilished connection. + + ## Maximum time allowed for a request over the established connection. # request_timeout = "5s" - # + + ## Maximum time that a session shall remain open without activity. + # session_timeout = "20m" + + ## Retry options for failing reads e.g. due to invalid sessions + ## If the retry count is zero, the read will fail after the initial attempt. + # read_retry_timeout = "100ms" + # read_retry_count = 0 + + ## Number of consecutive errors before forcing a reconnection + ## If set to 1 (default), the client will reconnect after a single failed read + # reconnect_error_threshold = 1 + ## Security policy, one of "None", "Basic128Rsa15", "Basic256", ## "Basic256Sha256", or "auto" # security_policy = "auto" - # + ## Security mode, one of "None", "Sign", "SignAndEncrypt", or "auto" # security_mode = "auto" - # + ## Path to cert.pem. Required when security mode or policy isn't "None". ## If cert path is not supplied, self-signed cert and key will be generated. # certificate = "/etc/telegraf/cert.pem" - # + ## Path to private key.pem. Required when security mode or policy isn't "None". ## If key path is not supplied, self-signed cert and key will be generated. # private_key = "/etc/telegraf/key.pem" - # + ## Authentication Method, one of "Certificate", "UserName", or "Anonymous". To ## authenticate using a specific ID, select 'Certificate' or 'UserName' # auth_method = "Anonymous" - # - ## Username. Required for auth_method = "UserName" + + ## Username and password required for auth_method = "UserName" # username = "" - # - ## Password. Required for auth_method = "UserName" # password = "" - # + ## Option to select the metric timestamp to use. Valid options are: ## "gather" -- uses the time of receiving the data in telegraf ## "server" -- uses the timestamp provided by the server ## "source" -- uses the timestamp provided by the source # timestamp = "gather" - # + + ## Client trace messages + ## When set to true, and debug mode enabled in the agent settings, the OPCUA + ## client's messages are included in telegraf logs. These messages are very + ## noisey, but essential for debugging issues. + # client_trace = false + + ## Include additional Fields in each metric + ## Available options are: + ## DataType -- OPC-UA Data Type (string) + # optional_fields = [] + ## Node ID configuration ## name - field name to use in the output ## namespace - OPC UA namespace of the node (integer value 0 thru 3) ## identifier_type - OPC UA ID type (s=string, i=numeric, g=guid, b=opaque) ## identifier - OPC UA ID (tag as shown in opcua browser) - ## tags - extra tags to be added to the output metric (optional) - ## Example: - ## {name="ProductUri", namespace="0", identifier_type="i", identifier="2262", tags=[["tag1","value1"],["tag2","value2]]} + ## default_tags - extra tags to be added to the output metric (optional) + ## + ## Use either the inline notation or the bracketed notation, not both. + + ## Inline notation (default_tags not supported yet) # nodes = [ - # {name="", namespace="", identifier_type="", identifier=""}, - # {name="", namespace="", identifier_type="", identifier=""}, - #] - # + # {name="", namespace="", identifier_type="", identifier=""}, + # ] + + ## Bracketed notation + # [[inputs.opcua.nodes]] + # name = "node1" + # namespace = "" + # identifier_type = "" + # identifier = "" + # default_tags = { tag1 = "value1", tag2 = "value2" } + # + # [[inputs.opcua.nodes]] + # name = "node2" + # namespace = "" + # identifier_type = "" + # identifier = "" + ## Node Group - ## Sets defaults for OPC UA namespace and ID type so they aren't required in - ## every node. A group can also have a metric name that overrides the main - ## plugin metric name. + ## Sets defaults so they aren't required in every node. + ## Default values can be set for: + ## * Metric name + ## * OPC UA namespace + ## * Identifier + ## * Default tags ## ## Multiple node groups are allowed #[[inputs.opcua.group]] ## Group Metric name. Overrides the top level name. If unset, the ## top level name is used. # name = - # + ## Group default namespace. If a node in the group doesn't set its ## namespace, this is used. # namespace = - # + ## Group default identifier type. If a node in the group doesn't set its ## namespace, this is used. # identifier_type = - # - ## Node ID Configuration. Array of nodes with the same settings as above. + + ## Default tags that are applied to every node in this group. Can be + ## overwritten in a node by setting a different value for the tag name. + ## example: default_tags = { tag1 = "value1" } + # default_tags = {} + + ## Node ID Configuration. Array of nodes with the same settings as above. + ## Use either the inline notation or the bracketed notation, not both. + + ## Inline notation (default_tags not supported yet) # nodes = [ - # {name="", namespace="", identifier_type="", identifier=""}, - # {name="", namespace="", identifier_type="", identifier=""}, + # {name="node1", namespace="", identifier_type="", identifier=""}, + # {name="node2", namespace="", identifier_type="", identifier=""}, #] + ## Bracketed notation + # [[inputs.opcua.group.nodes]] + # name = "node1" + # namespace = "" + # identifier_type = "" + # identifier = "" + # default_tags = { tag1 = "override1", tag2 = "value2" } + # + # [[inputs.opcua.group.nodes]] + # name = "node2" + # namespace = "" + # identifier_type = "" + # identifier = "" + ## Enable workarounds required by some devices to work correctly # [inputs.opcua.workarounds] - ## Set additional valid status codes, StatusOK (0x0) is always considered valid - # additional_valid_status_codes = ["0xC0"] + # ## Set additional valid status codes, StatusOK (0x0) is always considered valid + # # additional_valid_status_codes = ["0xC0"] + + # [inputs.opcua.request_workarounds] + # ## Use unregistered reads instead of registered reads + # # use_unregistered_reads = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/opcua_listener.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/opcua_listener.conf new file mode 100644 index 0000000000..2b820c49fb --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/opcua_listener.conf @@ -0,0 +1,246 @@ +# Retrieve data from OPCUA devices +[[inputs.opcua_listener]] + ## Metric name + # name = "opcua_listener" + # + ## OPC UA Endpoint URL + # endpoint = "opc.tcp://localhost:4840" + # + ## Maximum time allowed to establish a connect to the endpoint. + # connect_timeout = "10s" + # + ## Behavior when we fail to connect to the endpoint on initialization. Valid options are: + ## "error": throw an error and exits Telegraf + ## "ignore": ignore this plugin if errors are encountered + # "retry": retry connecting at each interval + # connect_fail_behavior = "error" + # + ## Maximum time allowed for a request over the established connection. + # request_timeout = "5s" + # + # Maximum time that a session shall remain open without activity. + # session_timeout = "20m" + # + ## The interval at which the server should at least update its monitored items. + ## Please note that the OPC UA server might reject the specified interval if it cannot meet the required update rate. + ## Therefore, always refer to the hardware/software documentation of your server to ensure the specified interval is supported. + # subscription_interval = "100ms" + # + ## Security policy, one of "None", "Basic128Rsa15", "Basic256", + ## "Basic256Sha256", or "auto" + # security_policy = "auto" + # + ## Security mode, one of "None", "Sign", "SignAndEncrypt", or "auto" + # security_mode = "auto" + # + ## Path to cert.pem. Required when security mode or policy isn't "None". + ## If cert path is not supplied, self-signed cert and key will be generated. + # certificate = "/etc/telegraf/cert.pem" + # + ## Path to private key.pem. Required when security mode or policy isn't "None". + ## If key path is not supplied, self-signed cert and key will be generated. + # private_key = "/etc/telegraf/key.pem" + # + ## Authentication Method, one of "Certificate", "UserName", or "Anonymous". To + ## authenticate using a specific ID, select 'Certificate' or 'UserName' + # auth_method = "Anonymous" + # + ## Username. Required for auth_method = "UserName" + # username = "" + # + ## Password. Required for auth_method = "UserName" + # password = "" + # + ## Option to select the metric timestamp to use. Valid options are: + ## "gather" -- uses the time of receiving the data in telegraf + ## "server" -- uses the timestamp provided by the server + ## "source" -- uses the timestamp provided by the source + # timestamp = "gather" + # + ## The default timetsamp format is RFC3339Nano + # Other timestamp layouts can be configured using the Go language time + # layout specification from https://golang.org/pkg/time/#Time.Format + # e.g.: json_timestamp_format = "2006-01-02T15:04:05Z07:00" + #timestamp_format = "" + # + # + ## Client trace messages + ## When set to true, and debug mode enabled in the agent settings, the OPCUA + ## client's messages are included in telegraf logs. These messages are very + ## noisey, but essential for debugging issues. + # client_trace = false + # + ## Include additional Fields in each metric + ## Available options are: + ## DataType -- OPC-UA Data Type (string) + # optional_fields = [] + # + ## Node ID configuration + ## name - field name to use in the output + ## namespace - OPC UA namespace of the node (integer value 0 thru 3) + ## identifier_type - OPC UA ID type (s=string, i=numeric, g=guid, b=opaque) + ## identifier - OPC UA ID (tag as shown in opcua browser) + ## default_tags - extra tags to be added to the output metric (optional) + ## monitoring_params - additional settings for the monitored node (optional) + ## + ## Monitoring parameters + ## sampling_interval - interval at which the server should check for data + ## changes (default: 0s) + ## queue_size - size of the notification queue (default: 10) + ## discard_oldest - how notifications should be handled in case of full + ## notification queues, possible values: + ## true: oldest value added to queue gets replaced with new + ## (default) + ## false: last value added to queue gets replaced with new + ## data_change_filter - defines the condition under which a notification should + ## be reported + ## + ## Data change filter + ## trigger - specify the conditions under which a data change notification + ## should be reported, possible values: + ## "Status": only report notifications if the status changes + ## (default if parameter is omitted) + ## "StatusValue": report notifications if either status or value + ## changes + ## "StatusValueTimestamp": report notifications if either status, + ## value or timestamp changes + ## deadband_type - type of the deadband filter to be applied, possible values: + ## "Absolute": absolute change in a data value to report a notification + ## "Percent": works only with nodes that have an EURange property set + ## and is defined as: send notification if + ## (last value - current value) > + ## (deadband_value/100.0) * ((high–low) of EURange) + ## deadband_value - value to deadband_type, must be a float value, no filter is set + ## for negative values + ## + ## Use either the inline notation or the bracketed notation, not both. + # + ## Inline notation (default_tags and monitoring_params not supported yet) + # nodes = [ + # {name="node1", namespace="", identifier_type="", identifier=""}, + # {name="node2", namespace="", identifier_type="", identifier=""} + # ] + # + ## Bracketed notation + # [[inputs.opcua_listener.nodes]] + # name = "node1" + # namespace = "" + # identifier_type = "" + # identifier = "" + # default_tags = { tag1 = "value1", tag2 = "value2" } + # + # [[inputs.opcua_listener.nodes]] + # name = "node2" + # namespace = "" + # identifier_type = "" + # identifier = "" + # + # [inputs.opcua_listener.nodes.monitoring_params] + # sampling_interval = "0s" + # queue_size = 10 + # discard_oldest = true + # + # [inputs.opcua_listener.nodes.monitoring_params.data_change_filter] + # trigger = "Status" + # deadband_type = "Absolute" + # deadband_value = 0.0 + # + ## Node Group + ## Sets defaults so they aren't required in every node. + ## Default values can be set for: + ## * Metric name + ## * OPC UA namespace + ## * Identifier + ## * Default tags + ## * Sampling interval + ## + ## Multiple node groups are allowed + #[[inputs.opcua_listener.group]] + ## Group Metric name. Overrides the top level name. If unset, the + ## top level name is used. + # name = + # + ## Group default namespace. If a node in the group doesn't set its + ## namespace, this is used. + # namespace = + # + ## Group default identifier type. If a node in the group doesn't set its + ## namespace, this is used. + # identifier_type = + # + ## Default tags that are applied to every node in this group. Can be + ## overwritten in a node by setting a different value for the tag name. + ## example: default_tags = { tag1 = "value1" } + # default_tags = {} + # + ## Group default sampling interval. If a node in the group doesn't set its + ## sampling interval, this is used. + # sampling_interval = "0s" + # + ## Node ID Configuration. Array of nodes with the same settings as above. + ## Use either the inline notation or the bracketed notation, not both. + # + ## Inline notation (default_tags and monitoring_params not supported yet) + # nodes = [ + # {name="node1", namespace="", identifier_type="", identifier=""}, + # {name="node2", namespace="", identifier_type="", identifier=""} + #] + # + ## Bracketed notation + # [[inputs.opcua_listener.group.nodes]] + # name = "node1" + # namespace = "" + # identifier_type = "" + # identifier = "" + # default_tags = { tag1 = "override1", tag2 = "value2" } + # + # [[inputs.opcua_listener.group.nodes]] + # name = "node2" + # namespace = "" + # identifier_type = "" + # identifier = "" + # + # [inputs.opcua_listener.group.nodes.monitoring_params] + # sampling_interval = "0s" + # queue_size = 10 + # discard_oldest = true + # + # [inputs.opcua_listener.group.nodes.monitoring_params.data_change_filter] + # trigger = "Status" + # deadband_type = "Absolute" + # deadband_value = 0.0 + # + + ## Multiple event groups are allowed. + # [[inputs.opcua_listener.events]] + # ## Polling interval for data collection + # # sampling_interval = "10s" + # ## Size of the notification queue + # # queue_size = 10 + # ## Node parameter defaults for node definitions below + # # namespace = "" + # # identifier_type = "" + # ## Specifies OPCUA Event sources to filter on + # # source_names = ["SourceName1", "SourceName2"] + # ## Fields to capture from event notifications + # fields = ["Severity", "Message", "Time"] + # + # ## Type or level of events to capture from the monitored nodes. + # [inputs.opcua_listener.events.event_type_node] + # namespace = "" + # identifier_type = "" + # identifier = "" + # + # ## Nodes to monitor for event notifications associated with the defined + # ## event type + # [[inputs.opcua_listener.events.node_ids]] + # namespace = "" + # identifier_type = "" + # identifier = "" + + ## Enable workarounds required by some devices to work correctly + # [inputs.opcua_listener.workarounds] + # ## Set additional valid status codes, StatusOK (0x0) is always considered valid + # # additional_valid_status_codes = ["0xC0"] + # ## Use unregistered reads instead of registered reads + # # use_unregistered_reads = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/openntpd.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/openntpd.conf index b6538c18c0..3a27110ce2 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/openntpd.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/openntpd.conf @@ -7,4 +7,4 @@ # binary = "/usr/sbin/ntpctl" ## Maximum time the ntpctl binary is allowed to run. - # timeout = "5ms" + # timeout = "5s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/opensearch_query.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/opensearch_query.conf new file mode 100644 index 0000000000..7d1dae43c3 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/opensearch_query.conf @@ -0,0 +1,59 @@ +# Derive metrics from aggregating OpenSearch query results +[[inputs.opensearch_query]] + ## OpenSearch cluster endpoint(s). Multiple urls can be specified as part + ## of the same cluster. Only one successful call will be made per interval. + urls = [ "https://node1.os.example.com:9200" ] # required. + + ## OpenSearch client timeout, defaults to "5s". + # timeout = "5s" + + ## HTTP basic authentication details + # username = "admin" + # password = "admin" + + ## Skip TLS validation. Useful for local testing and self-signed certs. + # insecure_skip_verify = false + + [[inputs.opensearch_query.aggregation]] + ## measurement name for the results of the aggregation query + measurement_name = "measurement" + + ## OpenSearch index or index pattern to search + index = "index-*" + + ## The date/time field in the OpenSearch index (mandatory). + date_field = "@timestamp" + + ## If the field used for the date/time field in OpenSearch is also using + ## a custom date/time format it may be required to provide the format to + ## correctly parse the field. + ## + ## If using one of the built in OpenSearch formats this is not required. + ## https://opensearch.org/docs/2.4/opensearch/supported-field-types/date/#built-in-formats + # date_field_custom_format = "" + + ## Time window to query (eg. "1m" to query documents from last minute). + ## Normally should be set to same as collection interval + query_period = "1m" + + ## Lucene query to filter results + # filter_query = "*" + + ## Fields to aggregate values (must be numeric fields) + # metric_fields = ["metric"] + + ## Aggregation function to use on the metric fields + ## Must be set if 'metric_fields' is set + ## Valid values are: avg, sum, min, max, sum + # metric_function = "avg" + + ## Fields to be used as tags. Must be text, non-analyzed fields. Metric + ## aggregations are performed per tag + # tags = ["field.keyword", "field2.keyword"] + + ## Set to true to not ignore documents when the tag(s) above are missing + # include_missing_tag = false + + ## String value of the tag when the tag does not exist + ## Required when include_missing_tag is true + # missing_tag_value = "null" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/opensmtpd.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/opensmtpd.conf index c0813fcd1c..b1794cdb13 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/opensmtpd.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/opensmtpd.conf @@ -1,7 +1,7 @@ # A plugin to collect stats from Opensmtpd - a validating, recursive, and caching DNS resolver -[[inputs.opensmtpd]] - ## If running as a restricted user you can prepend sudo for additional access: - #use_sudo = false + [[inputs.opensmtpd]] + ## If running as a restricted user you can prepend sudo for additional access: + #use_sudo = false ## The default location of the smtpctl binary can be overridden with: binary = "/usr/sbin/smtpctl" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/openstack.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/openstack.conf index 1df47df4ea..b83890678d 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/openstack.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/openstack.conf @@ -16,12 +16,15 @@ password = "password" ## Available services are: - ## "agents", "aggregates", "flavors", "hypervisors", "networks", "nova_services", - ## "ports", "projects", "servers", "services", "stacks", "storage_pools", "subnets", "volumes" + ## "agents", "aggregates", "cinder_services", "flavors", "hypervisors", + ## "networks", "nova_services", "ports", "projects", "servers", + ## "serverdiagnostics", "services", "stacks", "storage_pools", "subnets", + ## "volumes" # enabled_services = ["services", "projects", "hypervisors", "flavors", "networks", "volumes"] - ## Collect Server Diagnostics - # server_diagnotics = false + ## Query all instances of all tenants for the volumes and server services + ## NOTE: Usually this is only permitted for administrators! + # query_all_tenants = true ## output secrets (such as adminPass(for server) and UserID(for volume)). # output_secrets = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/opentelemetry.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/opentelemetry.conf index 5dae3afe4f..95ff435df5 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/opentelemetry.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/opentelemetry.conf @@ -7,6 +7,40 @@ ## Override the default (5s) new connection timeout # timeout = "5s" + ## gRPC Maximum Message Size + # max_msg_size = "4MB" + + ## Override the default span attributes to be used as line protocol tags. + ## These are always included as tags: + ## - trace ID + ## - span ID + ## Common attributes can be found here: + ## - https://github.com/open-telemetry/opentelemetry-collector/tree/main/semconv + # span_dimensions = ["service.name", "span.name"] + + ## Override the default log record attributes to be used as line protocol tags. + ## These are always included as tags, if available: + ## - trace ID + ## - span ID + ## Common attributes can be found here: + ## - https://github.com/open-telemetry/opentelemetry-collector/tree/main/semconv + ## When using InfluxDB for both logs and traces, be certain that log_record_dimensions + ## matches the span_dimensions value. + # log_record_dimensions = ["service.name"] + + ## Override the default profile attributes to be used as line protocol tags. + ## These are always included as tags, if available: + ## - profile_id + ## - address + ## - sample + ## - sample_name + ## - sample_unit + ## - sample_type + ## - sample_type_unit + ## Common attributes can be found here: + ## - https://github.com/open-telemetry/opentelemetry-collector/tree/main/semconv + # profile_dimensions = [] + ## Override the default (prometheus-v1) metrics schema. ## Supports: "prometheus-v1", "prometheus-v2" ## For more information about the alternatives, read the Prometheus input diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/openweathermap.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/openweathermap.conf index 174a33d9a5..4916ee98d2 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/openweathermap.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/openweathermap.conf @@ -13,7 +13,7 @@ # lang = "en" ## APIs to fetch; can contain "weather" or "forecast". - fetch = ["weather", "forecast"] + # fetch = ["weather", "forecast"] ## OpenWeatherMap base URL # base_url = "https://api.openweathermap.org/" @@ -23,8 +23,18 @@ ## Preferred unit system for temperature and wind speed. Can be one of ## "metric", "imperial", or "standard". + ## The default is "metric" if not specified. # units = "metric" - ## Query interval; OpenWeatherMap weather data is updated every 10 - ## minutes. - interval = "10m" + ## Style to query the current weather; available options + ## batch -- query multiple cities at once using the "group" endpoint + ## individual -- query each city individually using the "weather" endpoint + ## You should use "individual" here as it is documented and provides more + ## frequent updates. The default is "batch" for backward compatibility. + # query_style = "batch" + + ## Query interval to fetch data. + ## By default the global 'interval' setting is used. You should override the + ## interval here if the global setting is shorter than 10 minutes as + ## OpenWeatherMap weather data is only updated every 10 minutes. + # interval = "10m" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/p4runtime.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/p4runtime.conf new file mode 100644 index 0000000000..b4bca45f02 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/p4runtime.conf @@ -0,0 +1,23 @@ +# P4Runtime telemetry input plugin +[[inputs.p4runtime]] + ## Define the endpoint of P4Runtime gRPC server to collect metrics. + # endpoint = "127.0.0.1:9559" + ## Set DeviceID required for Client Arbitration. + ## https://p4.org/p4-spec/p4runtime/main/P4Runtime-Spec.html#sec-client-arbitration-and-controller-replication + # device_id = 1 + ## Filter counters by their names that should be observed. + ## Example: counter_names_include=["ingressCounter", "egressCounter"] + # counter_names_include = [] + + ## Optional TLS Config. + ## Enable client-side TLS and define CA to authenticate the device. + # enable_tls = false + # tls_ca = "/etc/telegraf/ca.crt" + ## Set minimal TLS version to accept by the client. + # tls_min_version = "TLS12" + ## Use TLS but skip chain & host verification. + # insecure_skip_verify = true + + ## Define client-side TLS certificate & key to authenticate to the device. + # tls_cert = "/etc/telegraf/client.crt" + # tls_key = "/etc/telegraf/client.key" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/pgbouncer.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/pgbouncer.conf index ed592bc8d3..93f6be2d3b 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/pgbouncer.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/pgbouncer.conf @@ -9,3 +9,7 @@ ## All connection parameters are optional. ## address = "host=localhost user=pgbouncer sslmode=disable" + + ## Specify which "show" commands to gather metrics for. + ## Choose from: "stats", "pools", "lists", "databases" + # show_commands = ["stats", "pools"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/phpfpm.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/phpfpm.conf index 62dbf501e5..5b47dfaadb 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/phpfpm.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/phpfpm.conf @@ -23,6 +23,12 @@ ## urls = ["http://192.168.1.20/status", "/tmp/fpm.sock"] urls = ["http://localhost/status"] + ## Format of stats to parse, set to "status" or "json" + ## If the user configures the URL to return JSON (e.g. + ## http://localhost/status?json), set to JSON. Otherwise, will attempt to + ## parse line-by-line. The JSON mode will produce additional metrics. + # format = "status" + ## Duration allowed to complete HTTP requests. # timeout = "5s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/ping.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/ping.conf index 976d813b0b..4bf92c63a0 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/ping.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/ping.conf @@ -43,7 +43,12 @@ ## etc) will be ignored. # arguments = ["-c", "3"] - ## Use only IPv6 addresses when resolving a hostname. + ## Use only IPv4 addresses when resolving a hostname. By default, both IPv4 + ## and IPv6 can be used. + # ipv4 = false + + ## Use only IPv6 addresses when resolving a hostname. By default, both IPv4 + ## and IPv6 can be used. # ipv6 = false ## Number of data bytes to be sent. Corresponds to the "-s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/postfix.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/postfix.conf index 72e4d1c186..c167f22365 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/postfix.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/postfix.conf @@ -1,4 +1,5 @@ # Measure postfix queue statistics +# This plugin ONLY supports non-Windows [[inputs.postfix]] ## Postfix queue directory. If not provided, telegraf will try to use ## 'postconf -h queue_directory' to determine it. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/postgresql.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/postgresql.conf index e49d878655..4897dc9388 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/postgresql.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/postgresql.conf @@ -1,9 +1,11 @@ # Read metrics from one or many postgresql servers [[inputs.postgresql]] - ## specify address via a url matching: - ## postgres://[pqgotest[:password]]@localhost[/dbname]?sslmode=[disable|verify-ca|verify-full] + ## Specify address via a url matching: + ## postgres://[pqgotest[:password]]@localhost[/dbname]?sslmode=[disable|verify-ca|verify-full]&statement_timeout=... ## or a simple string: ## host=localhost user=pqgotest password=... sslmode=... dbname=app_production + ## Users can pass the path to the socket as the host value to use a socket + ## connection (e.g. `/var/run/postgresql`). ## ## All connection parameters are optional. ## @@ -13,6 +15,7 @@ ## to grab metrics for. ## address = "host=localhost user=postgres sslmode=disable" + ## A custom name for the database that will be used as the "server" tag in the ## measurement output. If not specified, a default one generated from ## the connection address is used. @@ -21,6 +24,9 @@ ## connection configuration. ## maxlifetime - specify the maximum lifetime of a connection. ## default is forever (0s) + ## + ## Note that this does not interrupt queries, the lifetime will not be enforced + ## whilst a query is running # max_lifetime = "0s" ## A list of databases to explicitly ignore. If not specified, metrics for all diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/postgresql_extensible.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/postgresql_extensible.conf index e9c26c10d9..7f60122be1 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/postgresql_extensible.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/postgresql_extensible.conf @@ -1,7 +1,7 @@ # Read metrics from one or many postgresql servers [[inputs.postgresql_extensible]] # specify address via a url matching: - # postgres://[pqgotest[:password]]@host:port[/dbname]?sslmode=... + # postgres://[pqgotest[:password]]@host:port[/dbname]?sslmode=...&statement_timeout=... # or a simple string: # host=localhost port=5432 user=pqgotest password=... sslmode=... dbname=app_production # @@ -13,10 +13,6 @@ # address = "host=localhost user=postgres sslmode=disable" - ## A list of databases to pull metrics about. - ## deprecated in 1.22.3; use the sqlquery option to specify database to use - # databases = ["app_production", "testing"] - ## Whether to use prepared statements when connecting to the database. ## This should be set to false when connecting through a PgBouncer instance ## with pool_mode set to transaction. @@ -26,6 +22,9 @@ # The script option can be used to specify the .sql file path. # If script and sqlquery options specified at same time, sqlquery will be used # + # the measurement field defines measurement name for metrics produced + # by the query. Default is "postgresql". + # # the tagvalue field is used to define custom tags (separated by comas). # the query is expected to return columns which match the names of the # defined tags. The values in these columns must be of a string-type, @@ -35,20 +34,33 @@ # default, all rows inserted with current time. By setting a timestamp column, # the row will be inserted with that column's value. # + # The min_version field specifies minimal database version this query + # will run on. + # + # The max_version field when set specifies maximal database version + # this query will NOT run on. + # + # Database version in `minversion` and `maxversion` is represented as + # a single integer without last component, for example: + # 9.6.2 -> 906 + # 15.2 -> 1500 + # # Structure : # [[inputs.postgresql_extensible.query]] + # measurement string # sqlquery string - # version string + # min_version int + # max_version int # withdbname boolean # tagvalue string (coma separated) # timestamp string [[inputs.postgresql_extensible.query]] - sqlquery="SELECT * FROM pg_stat_database where datname" - version=901 - withdbname=false + measurement="pg_stat_database" + sqlquery="SELECT * FROM pg_stat_database WHERE datname" + min_version=901 tagvalue="" [[inputs.postgresql_extensible.query]] script="your_sql-filepath.sql" - version=901 - withdbname=false + min_version=901 + max_version=1300 tagvalue="" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/powerdns_recursor.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/powerdns_recursor.conf index da42beb3ea..701457be83 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/powerdns_recursor.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/powerdns_recursor.conf @@ -8,3 +8,12 @@ # socket_dir = "/var/run/" ## Socket permissions for the receive socket. # socket_mode = "0666" + + ## The version of the PowerDNS control protocol to use. You will have to + ## change this based on your PowerDNS Recursor version, see below: + ## Version 1: PowerDNS <4.5.0 + ## Version 2: PowerDNS 4.5.0 - 4.5.11 + ## Version 3: PowerDNS >=4.6.0 + ## By default this is set to 1. + # control_protocol_version = 1 + diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/processes.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/processes.conf index 4c39c02eb4..35f435d733 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/processes.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/processes.conf @@ -1,3 +1,6 @@ # Get the number of processes and group them by status +# This plugin ONLY supports non-Windows [[inputs.processes]] - # no configuration + ## Use sudo to run ps command on *BSD systems. Linux systems will read + ## /proc, so this does not apply there. + # use_sudo = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/procstat.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/procstat.conf index f2d45545c3..ac141eb0b1 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/procstat.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/procstat.conf @@ -13,6 +13,8 @@ # include_systemd_children = false ## CGroup name or path, supports globs # cgroup = "systemd/system.slice/nginx.service" + ## Supervisor service names of hypervisorctl management + # supervisor_units = ["webserver", "proxy"] ## Windows service name # win_service = "" @@ -24,22 +26,81 @@ ## Field name prefix # prefix = "" - ## When true add the full cmdline as a tag. - # cmdline_tag = false - ## Mode to use when calculating CPU usage. Can be one of 'solaris' or 'irix'. # mode = "irix" - ## Add the PID as a tag instead of as a field. When collecting multiple - ## processes with otherwise matching tags this setting should be enabled to - ## ensure each process has a unique identity. - ## - ## Enabling this option may result in a large number of series, especially - ## when processes have a short lifetime. - # pid_tag = false + ## Add the given information tag instead of a field + ## This allows to create unique metrics/series when collecting processes with + ## otherwise identical tags. However, please be careful as this can easily + ## result in a large number of series, especially with short-lived processes, + ## creating high cardinality at the output. + ## Available options are: + ## cmdline -- full commandline + ## pid -- ID of the process + ## ppid -- ID of the process' parent + ## status -- state of the process + ## user -- username owning the process + ## socket only options: + ## protocol -- protocol type of the process socket + ## state -- state of the process socket + ## src -- source address of the process socket (non-unix sockets) + ## src_port -- source port of the process socket (non-unix sockets) + ## dest -- destination address of the process socket (non-unix sockets) + ## dest_port -- destination port of the process socket (non-unix sockets) + ## name -- name of the process socket (unix sockets only) + ## Available for procstat_lookup: + ## level -- level of the process filtering + # tag_with = [] + + ## Properties to collect + ## Available options are + ## cpu -- CPU usage statistics + ## limits -- set resource limits + ## memory -- memory usage statistics + ## mmap -- mapped memory usage statistics (caution: can cause high load) + ## sockets -- socket statistics for protocols in 'socket_protocols' + # properties = ["cpu", "limits", "memory", "mmap"] + + ## Protocol filter for the sockets property + ## Available options are + ## all -- all of the protocols below + ## tcp4 -- TCP socket statistics for IPv4 + ## tcp6 -- TCP socket statistics for IPv6 + ## udp4 -- UDP socket statistics for IPv4 + ## udp6 -- UDP socket statistics for IPv6 + ## unix -- Unix socket statistics + # socket_protocols = ["all"] ## Method to use when finding process IDs. Can be one of 'pgrep', or ## 'native'. The pgrep finder calls the pgrep executable in the PATH while ## the native finder performs the search directly in a manor dependent on the ## platform. Default is 'pgrep' # pid_finder = "pgrep" + + ## New-style filtering configuration (multiple filter sections are allowed) + # [[inputs.procstat.filter]] + # ## Name of the filter added as 'filter' tag + # name = "shell" + # + # ## Service filters, only one is allowed + # ## Systemd unit names (wildcards are supported) + # # systemd_units = [] + # ## CGroup name or path (wildcards are supported) + # # cgroups = [] + # ## Supervisor service names of hypervisorctl management + # # supervisor_units = [] + # ## Windows service names + # # win_service = [] + # + # ## Process filters, multiple are allowed + # ## Regular expressions to use for matching against the full command + # # patterns = ['.*'] + # ## List of users owning the process (wildcards are supported) + # # users = ['*'] + # ## List of executable paths of the process (wildcards are supported) + # # executables = ['*'] + # ## List of process names (wildcards are supported) + # # process_names = ['*'] + # ## Recursion depth for determining children of the matched processes + # ## A negative value means all children with infinite depth + # # recursion_depth = 0 diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/prometheus.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/prometheus.conf index 6216ebdecc..486db9df42 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/prometheus.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/prometheus.conf @@ -15,19 +15,51 @@ ## If set to true, the gather time will be used. # ignore_timestamp = false + ## Override content-type of the returned message + ## Available options are for prometheus: + ## text, protobuf-delimiter, protobuf-compact, protobuf-text, + ## and for openmetrics: + ## openmetrics-text, openmetrics-protobuf + ## By default the content-type of the response is used. + # content_type_override = "" + ## An array of Kubernetes services to scrape metrics from. # kubernetes_services = ["http://my-service-dns.my-namespace:9100/metrics"] ## Kubernetes config file to create client from. # kube_config = "/path/to/kubernetes.config" - ## Scrape Kubernetes pods for the following prometheus annotations: - ## - prometheus.io/scrape: Enable scraping for this pod - ## - prometheus.io/scheme: If the metrics endpoint is secured then you will need to - ## set this to 'https' & most likely set the tls config. - ## - prometheus.io/path: If the metrics path is not /metrics, define it with this annotation. + ## Scrape Pods + ## Enable scraping of k8s pods. Further settings as to which pods to scape + ## are determiend by the 'method' option below. When enabled, the default is + ## to use annotations to determine whether to scrape or not. + # monitor_kubernetes_pods = false + + ## Scrape Pods Method + ## annotations: default, looks for specific pod annotations documented below + ## settings: only look for pods matching the settings provided, not + ## annotations + ## settings+annotations: looks at pods that match annotations using the user + ## defined settings + # monitor_kubernetes_pods_method = "annotations" + + ## Scrape Pods 'annotations' method options + ## If set method is set to 'annotations' or 'settings+annotations', these + ## annotation flags are looked for: + ## - prometheus.io/scrape: Required to enable scraping for this pod. Can also + ## use 'prometheus.io/scrape=false' annotation to opt-out entirely. + ## - prometheus.io/scheme: If the metrics endpoint is secured then you will + ## need to set this to 'https' & most likely set the tls config + ## - prometheus.io/path: If the metrics path is not /metrics, define it with + ## this annotation ## - prometheus.io/port: If port is not 9102 use this annotation - # monitor_kubernetes_pods = true + + ## Scrape Pods 'settings' method options + ## When using 'settings' or 'settings+annotations', the default values for + ## annotations can be modified using with the following options: + # monitor_kubernetes_pods_scheme = "http" + # monitor_kubernetes_pods_port = "9102" + # monitor_kubernetes_pods_path = "/metrics" ## Get the list of pods to scrape with either the scope of ## - cluster: the kubernetes watch api (default, no need to specify) @@ -42,32 +74,34 @@ ## Default is 60 seconds. # pod_scrape_interval = 60 + ## Content length limit + ## When set, telegraf will drop responses with length larger than the configured value. + ## Default is "0KB" which means unlimited. + # content_length_limit = "0KB" + ## Restricts Kubernetes monitoring to a single namespace ## ex: monitor_kubernetes_pods_namespace = "default" # monitor_kubernetes_pods_namespace = "" + ## The name of the label for the pod that is being scraped. + ## Default is 'namespace' but this can conflict with metrics that have the label 'namespace' + # pod_namespace_label_name = "namespace" # label selector to target pods which have the label # kubernetes_label_selector = "env=dev,app=nginx" # field selector to target pods # eg. To scrape pods on a specific node # kubernetes_field_selector = "spec.nodeName=$HOSTNAME" + ## Filter which pod annotations and labels will be added to metric tags + # + # pod_annotation_include = ["annotation-key-1"] + # pod_annotation_exclude = ["exclude-me"] + # pod_label_include = ["label-key-1"] + # pod_label_exclude = ["exclude-me"] + # cache refresh interval to set the interval for re-sync of pods list. # Default is 60 minutes. # cache_refresh_interval = 60 - ## Scrape Services available in Consul Catalog - # [inputs.prometheus.consul] - # enabled = true - # agent = "http://localhost:8500" - # query_interval = "5m" - - # [[inputs.prometheus.consul.query]] - # name = "a service name" - # tag = "a service tag" - # url = 'http://{{if ne .ServiceAddress ""}}{{.ServiceAddress}}{{else}}{{.Address}}{{end}}:{{.ServicePort}}/{{with .ServiceMeta.metrics_path}}{{.}}{{else}}metrics{{end}}' - # [inputs.prometheus.consul.query.tags] - # host = "{{.Node}}" - ## Use bearer token for authorization. ('bearer_token' takes priority) # bearer_token = "/path/to/bearer/token" ## OR @@ -78,8 +112,19 @@ # username = "" # password = "" - ## Specify timeout duration for slower prometheus clients (default is 3s) - # response_timeout = "3s" + ## Optional custom HTTP headers + # http_headers = {"X-Special-Header" = "Special-Value"} + + ## Specify timeout duration for slower prometheus clients (default is 5s) + # timeout = "5s" + + ## This option is now used by the HTTP client to set the header response + ## timeout, not the overall HTTP timeout. + # response_timeout = "5s" + + ## HTTP Proxy support + # use_system_proxy = false + # http_proxy_url = "" ## Optional TLS Config # tls_ca = /path/to/cafile @@ -88,3 +133,44 @@ ## Use TLS but skip chain & host verification # insecure_skip_verify = false + + ## Use the given name as the SNI server name on each URL + # tls_server_name = "myhost.example.org" + + ## TLS renegotiation method, choose from "never", "once", "freely" + # tls_renegotiation_method = "never" + + ## Enable/disable TLS + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = true + + ## This option allows you to report the status of prometheus requests. + # enable_request_metrics = false + + ## Scrape Services available in Consul Catalog + # [inputs.prometheus.consul] + # enabled = true + # agent = "http://localhost:8500" + # query_interval = "5m" + + # [[inputs.prometheus.consul.query]] + # name = "a service name" + # tag = "a service tag" + # url = 'http://{{if ne .ServiceAddress ""}}{{.ServiceAddress}}{{else}}{{.Address}}{{end}}:{{.ServicePort}}/{{with .ServiceMeta.metrics_path}}{{.}}{{else}}metrics{{end}}' + # [inputs.prometheus.consul.query.tags] + # host = "{{.Node}}" + + ## Scrape Hosts available with http service discovery + # [inputs.prometheus.http_service_discovery] + # enabled = false + # url = "http://localhost:9000/service-discovery" + # query_interval = "5m" + + ## Control pod scraping based on pod namespace annotations + ## Pass and drop here act like tagpass and tagdrop, but instead + ## of filtering metrics they filters pod candidates for scraping + #[inputs.prometheus.namespace_annotation_pass] + # annotation_key = ["value1", "value2"] + #[inputs.prometheus.namespace_annotation_drop] + # some_annotation_key = ["dont-scrape"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/promql.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/promql.conf new file mode 100644 index 0000000000..eb2ce51e4e --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/promql.conf @@ -0,0 +1,82 @@ +# Query prometheus endpoints using PromQL +[[inputs.promql]] + ## URL of the prometheus endpoint + url = "http://localhost:9090" + + ## Basic authentication properties + # username = "" + # password = "" + + ## Bearer token based authentication + # token = "" + + ## Timeout for executing queries with zero meaning no timeout + # timeout = "5s" + + ## HTTP connection settings + # idle_conn_timeout = "0s" + # max_idle_conn = 0 + # max_idle_conn_per_host = 0 + # response_timeout = "0s" + + ## Optional proxy settings + # use_system_proxy = false + # http_proxy_url = "" + + ## Optional TLS settings + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" + ## Minimal TLS version to accept by the client + # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" + ## Use TLS but skip chain & host verification + # insecure_skip_verify = false + + ## Instant queries, multiple instances are allowed + # [[inputs.promql.instant]] + # ## Fallback name of the resulting metrics to use as metric name in case + # ## the __name__ property of the query results is empty. + # # name = "promql" + # + # ## Query to execute + # query = 'prometheus_http_requests_total' + # + # ## Limit for the number of results returned by the server with zero + # ## meaning no limit + # # limit = 0 + + ## Range queries, multiple instances are allowed + # [[inputs.promql.range]] + # ## Fallback name of the resulting metrics to use as metric name in case + # ## the __name__ property of the query results is empty. + # # name = "promql" + # + # ## Query to execute + # query = 'prometheus_http_requests_total{job="prometheus"}' + # + # ## Range parameters relative to the gathering time with positive values + # ## refer to BEFORE and negative to AFTER the gathering time + # start = "5m" + # # end = "0s" + # step = "1m" + # + # ## Limit for the number of results returned by the server with zero + # ## meaning no limit + # # limit = 0 diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/proxmox.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/proxmox.conf index 630eef1a92..0a961fefaa 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/proxmox.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/proxmox.conf @@ -1,17 +1,24 @@ # Provides metrics from Proxmox nodes (Proxmox Virtual Environment > 6.2). [[inputs.proxmox]] - ## API connection configuration. The API token was introduced in Proxmox v6.2. Required permissions for user and token: PVEAuditor role on /. + ## API connection configuration. The API token was introduced in Proxmox v6.2. + ## Required permissions for user and token: PVEAuditor role on /. base_url = "https://localhost:8006/api2/json" api_token = "USER@REALM!TOKENID=UUID" + ## Node name, defaults to OS hostname + ## Unless Telegraf is on the same host as Proxmox, setting this is required. # node_name = "" + ## Additional tags of the VM stats data to add as a tag + ## Supported values are "vmid" and "status" + # additional_vmstats_tags = [] + ## Optional TLS Config # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" ## Use TLS but skip chain & host verification - insecure_skip_verify = false + # insecure_skip_verify = false - # HTTP response timeout (default: 5s) - response_timeout = "5s" + ## HTTP response timeout (default: 5s) + # response_timeout = "5s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/rabbitmq.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/rabbitmq.conf index 04c4b4abd7..33db6e0b9a 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/rabbitmq.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/rabbitmq.conf @@ -2,8 +2,7 @@ [[inputs.rabbitmq]] ## Management Plugin url. (default: http://localhost:15672) # url = "http://localhost:15672" - ## Tag added to rabbitmq_overview series; deprecated: use tags - # name = "rmq-server-1" + ## Credentials # username = "guest" # password = "guest" @@ -29,11 +28,6 @@ ## specified, metrics for all nodes are gathered. # nodes = ["rabbit@node1", "rabbit@node2"] - ## A list of queues to gather as the rabbitmq_queue measurement. If not - ## specified, metrics for all queues are gathered. - ## Deprecated in 1.6: Use queue_name_include instead. - # queues = ["telegraf"] - ## A list of exchanges to gather as the rabbitmq_exchange measurement. If not ## specified, metrics for all exchanges are gathered. # exchanges = ["telegraf"] @@ -54,3 +48,8 @@ ## exchange filters. # federation_upstream_include = [] # federation_upstream_exclude = [] + + ## Include queue type as a tag. When enabled, adds a "type" tag to queue metrics + ## with the queue type returned by RabbitMQ (e.g., "classic", "quorum", "stream"). + ## Defaults to "classic" if empty. + # include_queue_type_tag = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/radius.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/radius.conf new file mode 100644 index 0000000000..0230490850 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/radius.conf @@ -0,0 +1,15 @@ +[[inputs.radius]] + ## An array of Server IPs and ports to gather from. If none specified, defaults to localhost. + servers = ["127.0.0.1:1812","hostname.domain.com:1812"] + + ## Credentials for radius authentication. + username = "myuser" + password = "mypassword" + secret = "mysecret" + + ## Request source server IP, normally the server running telegraf. + ## This corresponds to Radius' NAS-IP-Address. + # request_ip = "127.0.0.1" + + ## Maximum time to receive response. + # response_timeout = "5s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/ras.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/ras.conf index 7e0c649d24..ea318c03a9 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/ras.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/ras.conf @@ -1,4 +1,5 @@ # RAS plugin exposes counter metrics for Machine Check Errors provided by RASDaemon (sqlite3 output is required). +# This plugin ONLY supports Linux on 386, amd64, arm, and arm64 [[inputs.ras]] ## Optional path to RASDaemon sqlite3 database. ## Default: /var/lib/rasdaemon/ras-mc_event.db diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/redfish.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/redfish.conf index 1cced5c085..e9261d5a1d 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/redfish.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/redfish.conf @@ -3,13 +3,29 @@ ## Redfish API Base URL. address = "https://127.0.0.1:5000" - ## Credentials for the Redfish API. + ## Credentials for the Redfish API. Can also use secrets. username = "root" password = "password123456" ## System Id to collect data for in Redfish APIs. computer_system_id="System.Embedded.1" + ## Metrics to collect + ## The metric collects to gather. Choose from "power" and "thermal". + # include_metrics = ["power", "thermal"] + + ## Tag sets allow you to include redfish OData link parent data + ## For Example. + ## Thermal data is an OData link with parent Chassis which has a link of Location. + ## For more info see the Redfish Resource and Schema Guide at DMTFs website. + ## Available sets are: "chassis.location" and "chassis" + # include_tag_sets = ["chassis.location"] + + ## Workarounds + ## Defines workarounds for certain hardware vendors. Choose from: + ## * ilo4-thermal - Do not pass 0Data-Version header to Thermal endpoint + # workarounds = [] + ## Amount of time allowed to complete the HTTP request # timeout = "5s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/redis.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/redis.conf index 6f1db720d5..00571cbd7c 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/redis.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/redis.conf @@ -1,10 +1,10 @@ # Read metrics from one or many redis servers [[inputs.redis]] ## specify servers via a url matching: - ## [protocol://][:password]@address[:port] + ## [protocol://][username:password]@address[:port] ## e.g. ## tcp://localhost:6379 - ## tcp://:password@192.168.99.100 + ## tcp://username:password@192.168.99.100 ## unix:///var/run/redis.sock ## ## If no servers are specified, then localhost is used as the host. @@ -21,13 +21,15 @@ # # Can be "string", "integer", or "float" # type = "string" - ## specify server password - # password = "s#cr@t%" - - ## specify username for ACL auth (Redis 6.0+) - # username = "default" + ## Specify username and password for ACL auth (Redis 6.0+). You can add this + ## to the server URI above or specify it here. The values here take + ## precedence. + # username = "" + # password = "" ## Optional TLS Config + ## Check tls/config.go ClientConfig for more options + # tls_enable = true # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/redis_sentinel.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/redis_sentinel.conf index ae8f89aeda..0ffa2346ba 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/redis_sentinel.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/redis_sentinel.conf @@ -1,10 +1,10 @@ # Read metrics from one or many redis-sentinel servers [[inputs.redis_sentinel]] ## specify servers via a url matching: - ## [protocol://][:password]@address[:port] + ## [protocol://][username:password]@address[:port] ## e.g. ## tcp://localhost:26379 - ## tcp://:password@192.168.99.100 + ## tcp://username:password@192.168.99.100 ## unix:///var/run/redis-sentinel.sock ## ## If no servers are specified, then localhost is used as the host. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/rethinkdb.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/rethinkdb.conf index 3d6df1963a..d44d88c1f4 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/rethinkdb.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/rethinkdb.conf @@ -4,13 +4,6 @@ ## with optional port add password. ie, ## rethinkdb://user:auth_key@10.10.3.30:28105, ## rethinkdb://10.10.3.33:18832, - ## 10.0.0.1:10000, etc. + ## For rethinkdb v2.3.0+ with username/password authorization you should use + ## rethinkdb2://username:password@127.0.0.1:28015" servers = ["127.0.0.1:28015"] - - ## If you use actual rethinkdb of > 2.3.0 with username/password authorization, - ## protocol have to be named "rethinkdb2" - it will use 1_0 H. - # servers = ["rethinkdb2://username:password@127.0.0.1:28015"] - - ## If you use older versions of rethinkdb (<2.2) with auth_key, protocol - ## have to be named "rethinkdb". - # servers = ["rethinkdb://username:auth_key@127.0.0.1:28015"] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/s7comm.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/s7comm.conf new file mode 100644 index 0000000000..ac62cd4175 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/s7comm.conf @@ -0,0 +1,62 @@ +# Plugin for retrieving data from Siemens PLCs via the S7 protocol (RFC1006) +[[inputs.s7comm]] + ## Parameters to contact the PLC (mandatory) + ## The server is in the [:port] format where the port defaults to 102 + ## if not explicitly specified. + server = "127.0.0.1:102" + rack = 0 + slot = 0 + + ## Connection or drive type of S7 protocol + ## Available options are "PD" (programming device), "OP" (operator panel) or "basic" (S7 basic communication). + # connection_type = "PD" + + ## Max count of fields to be bundled in one batch-request. (PDU size) + # pdu_size = 20 + + ## Timeout for requests + # timeout = "10s" + + ## Log detailed connection messages for tracing issues + # log_level = "trace" + + ## Metric definition(s) + [[inputs.s7comm.metric]] + ## Name of the measurement + # name = "s7comm" + + ## Field definitions + ## name - field name + ## address - indirect address ".
[.extra]" + ## area - e.g. be "DB1" for data-block one + ## type - supported types are (uppercase) + ## X -- bit, requires the bit-number as 'extra' + ## parameter + ## B -- byte (8 bit) + ## C -- character (8 bit) + ## W -- word (16 bit) + ## DW -- double word (32 bit) + ## I -- integer (16 bit) + ## DI -- double integer (32 bit) + ## LI -- long integer (64 bit) only S7-1200 S7-1500 suported + ## R -- IEEE 754 real floating point number (32 bit) + ## LR -- IEEE 754 long real floating point number (64 bit) only S7-1200 S7-1500 suported + ## DT -- date-time, always converted to unix timestamp + ## with nano-second precision + ## S -- string, requires the maximum length of the + ## string as 'extra' parameter + ## address - start address to read if not specified otherwise + ## in the type field + ## extra - extra parameter e.g. for the bit and string type + fields = [ + { name="rpm", address="DB1.R4" }, + { name="status_ok", address="DB1.X2.1" }, + { name="last_error", address="DB2.S1.32" }, + { name="last_error_time", address="DB2.DT2" }, + { name="long_counter", address="DB3.LR12" } + ] + + ## Tags assigned to the metric + # [inputs.s7comm.metric.tags] + # device = "compressor" + # location = "main building" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/sensors.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/sensors.conf index 7892452fdc..6ecd4cab0f 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/sensors.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/sensors.conf @@ -1,4 +1,5 @@ # Monitor sensors, requires lm-sensors package +# This plugin ONLY supports Linux [[inputs.sensors]] ## Remove numbers from field names. ## If true, a field name like 'temp1_input' will be changed to 'temp_input'. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/sflow.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/sflow.conf index 8935fa3f29..13143c76f1 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/sflow.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/sflow.conf @@ -1,3 +1,4 @@ +## DEPRECATED: The "sflow" plugin is deprecated in version 1.31.0 and will be removed in 1.40.0, use 'inputs.netflow' instead. # SFlow V5 Protocol Listener [[inputs.sflow]] ## Address to listen for sFlow packets. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/slurm.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/slurm.conf new file mode 100644 index 0000000000..4b9a1348b4 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/slurm.conf @@ -0,0 +1,46 @@ +# Gather SLURM metrics +[[inputs.slurm]] + ## Slurmrestd URL. Both http and https can be used as schemas. + url = "http://127.0.0.1:6820" + + ## Credentials for JWT-based authentication. + # username = "foo" + # token = "topSecret" + + ## Enabled endpoints + ## List of endpoints a user can acquire data from. + ## Available values are: diag, jobs, nodes, partitions, reservations. + # enabled_endpoints = ["diag", "jobs", "nodes", "partitions", "reservations"] + + ## Maximum time to receive a response. If set to 0s, the + ## request will not time out. + # response_timeout = "5s" + + ## Optional TLS Config. Note these options will only + ## be taken into account when the scheme specififed on + ## the URL parameter is https. They will be silently + ## ignored otherwise. + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" + ## Minimal TLS version to accept by the client + # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" + ## Use TLS but skip chain & host verification + # insecure_skip_verify = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/smart.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/smart.conf index c8631836d4..d141b88048 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/smart.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/smart.conf @@ -17,6 +17,10 @@ ## without a password. # use_sudo = false + ## Adds an extra tag "device_type", which can be used to differentiate + ## multiple disks behind the same controller (e.g., MegaRAID). + # tag_with_device_type = false + ## Skip checking disks in this power mode. Defaults to ## "standby" to not wake up disks that have stopped rotating. ## See --nocheck in the man pages for smartctl. diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/smartctl.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/smartctl.conf new file mode 100644 index 0000000000..85cd4d5624 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/smartctl.conf @@ -0,0 +1,30 @@ +# Read metrics from SMART storage devices using smartclt's JSON output +[[inputs.smartctl]] + ## Optionally specify the path to the smartctl executable + # path = "/usr/sbin/smartctl" + + ## Use sudo + ## On most platforms used, smartctl requires root access. Setting 'use_sudo' + ## to true will make use of sudo to run smartctl. Sudo must be configured to + ## allow the telegraf user to run smartctl without a password. + # use_sudo = false + + ## Devices to include or exclude + ## By default, the plugin will use all devices found in the output of + ## `smartctl --scan-open`. Only one option is allowed at a time. If set, include + ## sets the specific devices to scan, while exclude omits specific devices. + # devices_include = [] + # devices_exclude = [] + + ## Skip checking disks in specified power mode + ## Defaults to "standby" to not wake up disks that have stopped rotating. + ## For full details on the options here, see the --nocheck section in the + ## smartctl man page. Choose from: + ## * never: always check the device + ## * sleep: check the device unless it is in sleep mode + ## * standby: check the device unless it is in sleep or standby mode + ## * idle: check the device unless it is in sleep, standby, or idle mode + # nocheck = "standby" + + ## Timeout for the cli command to complete + # timeout = "30s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/snmp.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/snmp.conf index d2049eb5a9..36817c4ed4 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/snmp.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/snmp.conf @@ -17,7 +17,7 @@ # version = 2 ## Unconnected UDP socket - ## When true, SNMP reponses are accepted from any address not just + ## When true, SNMP responses are accepted from any address not just ## the requested address. This can be useful when gathering from ## redundant/failover systems. # unconnected_udp_socket = false @@ -30,7 +30,12 @@ ## SNMP community string. # community = "public" - ## Agent host tag + ## Agent host tag; should be set to "source" for consistent usage across plugins + ## example: agent_host_tag = "source" + ## The default value is inconsistent with other plugins. Users will get a + ## warning that can be ignored if this is not changed. However, to have a + ## consistent experience, set this to "source" in your config to align with + ## other plugins. # agent_host_tag = "agent_host" ## Number of retries to attempt. @@ -63,17 +68,18 @@ ## full plugin documentation for configuration details. [[inputs.snmp.field]] oid = "RFC1213-MIB::sysUpTime.0" - name = "uptime" + name = "sysUptime" + conversion = "float(2)" [[inputs.snmp.field]] oid = "RFC1213-MIB::sysName.0" - name = "source" + name = "sysName" is_tag = true [[inputs.snmp.table]] oid = "IF-MIB::ifTable" name = "interface" - inherit_tags = ["source"] + inherit_tags = ["sysName"] [[inputs.snmp.table.field]] oid = "IF-MIB::ifDescr" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/snmp_trap.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/snmp_trap.conf index a9aadde845..3ab073c887 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/snmp_trap.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/snmp_trap.conf @@ -14,16 +14,16 @@ ## To add paths when translating with netsnmp, use the MIBDIRS environment variable # path = ["/usr/share/snmp/mibs"] ## - ## Deprecated in 1.20.0; no longer running snmptranslate ## Timeout running snmptranslate command + ## Used by the netsnmp translator only # timeout = "5s" - ## Snmp version + ## Snmp version; one of "1", "2c" or "3". # version = "2c" ## SNMPv3 authentication and encryption options. ## ## Security Name. # sec_name = "myuser" - ## Authentication protocol; one of "MD5", "SHA" or "". + ## Authentication protocol; one of "MD5", "SHA", "SHA224", "SHA256", "SHA384", "SHA512" or "". # auth_protocol = "MD5" ## Authentication password. # auth_password = "pass" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/socket_listener.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/socket_listener.conf index ce297a5b5d..33162ae811 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/socket_listener.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/socket_listener.conf @@ -11,49 +11,86 @@ # service_address = "udp6://:8094" # service_address = "unix:///tmp/telegraf.sock" # service_address = "unixgram:///tmp/telegraf.sock" + # service_address = "vsock://cid:port" - ## Change the file mode bits on unix sockets. These permissions may not be - ## respected by some platforms, to safely restrict write permissions it is best - ## to place the socket into a directory that has previously been created - ## with the desired permissions. + ## Permission for unix sockets (only available on unix sockets) + ## This setting may not be respected by some platforms. To safely restrict + ## permissions it is recommended to place the socket into a previously + ## created directory with the desired permissions. ## ex: socket_mode = "777" # socket_mode = "" - ## Maximum number of concurrent connections. - ## Only applies to stream sockets (e.g. TCP). - ## 0 (default) is unlimited. - # max_connections = 1024 + ## Maximum number of concurrent connections (only available on stream sockets like TCP) + ## Zero means unlimited. + # max_connections = 0 - ## Read timeout. - ## Only applies to stream sockets (e.g. TCP). - ## 0 (default) is unlimited. - # read_timeout = "30s" + ## Read timeout (only available on stream sockets like TCP) + ## Zero means unlimited. + # read_timeout = "0s" - ## Optional TLS configuration. - ## Only applies to stream sockets (e.g. TCP). + ## Optional TLS configuration (only available on stream sockets like TCP) # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" ## Enables client authentication if set. # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] - ## Maximum socket buffer size (in bytes when no unit specified). - ## For stream sockets, once the buffer fills up, the sender will start backing up. - ## For datagram sockets, once the buffer fills up, metrics will start dropping. - ## Defaults to the OS default. + ## Maximum socket buffer size (in bytes when no unit specified) + ## For stream sockets, once the buffer fills up, the sender will start + ## backing up. For datagram sockets, once the buffer fills up, metrics will + ## start dropping. Defaults to the OS default. # read_buffer_size = "64KiB" - ## Period between keep alive probes. - ## Only applies to TCP sockets. - ## 0 disables keep alive probes. - ## Defaults to the OS configuration. + ## Period between keep alive probes (only applies to TCP sockets) + ## Zero disables keep alive probes. Defaults to the OS configuration. # keep_alive_period = "5m" + ## Content encoding for message payloads + ## Can be set to "gzip" for compressed payloads or "identity" for no encoding. + # content_encoding = "identity" + + ## Maximum size of decoded packet (in bytes when no unit specified) + # max_decompression_size = "500MB" + + ## Message splitting strategy and corresponding settings for stream sockets + ## (tcp, tcp4, tcp6, unix or unixpacket). The setting is ignored for packet + ## listeners such as udp. + ## Available strategies are: + ## newline -- split at newlines (default) + ## null -- split at null bytes + ## delimiter -- split at delimiter byte-sequence in hex-format + ## given in `splitting_delimiter` + ## fixed length -- split after number of bytes given in `splitting_length` + ## variable length -- split depending on length information received in the + ## data. The length field information is specified in + ## `splitting_length_field`. + # splitting_strategy = "newline" + + ## Delimiter used to split received data to messages consumed by the parser. + ## The delimiter is a hex byte-sequence marking the end of a message + ## e.g. "0x0D0A", "x0d0a" or "0d0a" marks a Windows line-break (CR LF). + ## The value is case-insensitive and can be specified with "0x" or "x" prefix + ## or without. + ## Note: This setting is only used for splitting_strategy = "delimiter". + # splitting_delimiter = "" + + ## Fixed length of a message in bytes. + ## Note: This setting is only used for splitting_strategy = "fixed length". + # splitting_length = 0 + + ## Specification of the length field contained in the data to split messages + ## with variable length. The specification contains the following fields: + ## offset -- start of length field in bytes from begin of data + ## bytes -- length of length field in bytes + ## endianness -- endianness of the value, either "be" for big endian or + ## "le" for little endian + ## header_length -- total length of header to be skipped when passing + ## data on to the parser. If zero (default), the header + ## is passed on to the parser together with the message. + ## Note: This setting is only used for splitting_strategy = "variable length". + # splitting_length_field = {offset = 0, bytes = 0, endianness = "be", header_length = 0} + ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # data_format = "influx" - - ## Content encoding for message payloads, can be set to "gzip" to or - ## "identity" to apply no encoding. - # content_encoding = "identity" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/socketstat.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/socketstat.conf index ed99025caa..24fc172d4f 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/socketstat.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/socketstat.conf @@ -1,7 +1,9 @@ # Gather indicators from established connections, using iproute2's ss command. +# This plugin ONLY supports non-Windows [[inputs.socketstat]] ## ss can display information about tcp, udp, raw, unix, packet, dccp and sctp sockets ## Specify here the types you want to gather - socket_types = [ "tcp", "udp" ] + protocols = [ "tcp", "udp" ] + ## The default timeout of 1s for ss execution can be overridden here: # timeout = "1s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/solr.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/solr.conf index 30643f7496..754981b6d3 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/solr.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/solr.conf @@ -2,10 +2,13 @@ [[inputs.solr]] ## specify a list of one or more Solr servers servers = ["http://localhost:8983"] - ## + ## specify a list of one or more Solr cores (default - all) - # cores = ["main"] - ## + # cores = ["*"] + ## Optional HTTP Basic Auth Credentials # username = "username" # password = "pa$$word" + + ## Timeout for HTTP requests + # timeout = "5s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/sql.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/sql.conf index af7a9df8c5..749bf3e7c2 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/sql.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/sql.conf @@ -7,7 +7,7 @@ ## Data source name for connecting ## The syntax and supported options depends on selected driver. - dsn = "username:password@mysqlserver:3307/dbname?param=value" + dsn = "username:password@tcp(mysqlserver:3307)/dbname?param=value" ## Timeout for any operation ## Note that the timeout for queries is per query not per gather. @@ -28,6 +28,12 @@ # connection_max_open = 0 # connection_max_idle = auto + ## Specifies plugin behavior regarding disconnected servers + ## Available choices : + ## - error: telegraf will return an error on startup if one the servers is unreachable + ## - ignore: telegraf will ignore unreachable servers on both startup and gather + # disconnected_servers_behavior = "error" + [[inputs.sql.query]] ## Query to perform on the server query="SELECT user,state,latency,score FROM Scoreboard WHERE application > 0" @@ -45,7 +51,7 @@ # measurement_column = "" ## Column name containing the time of the measurement - ## If ommited, the time of the query will be used. + ## If omitted, the time of the query will be used. # time_column = "" ## Format of the time contained in 'time_col' diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/sqlserver.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/sqlserver.conf index ad19f28f18..6a61294e3f 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/sqlserver.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/sqlserver.conf @@ -4,21 +4,29 @@ ## All connection parameters are optional. ## By default, the host is localhost, listening on default port, TCP 1433. ## for Windows, the user is the currently running AD user (SSO). - ## See https://github.com/denisenkom/go-mssqldb for detailed connection + ## See https://github.com/microsoft/go-mssqldb for detailed connection ## parameters, in particular, tls connections can be created like so: ## "encrypt=true;certificate=;hostNameInCertificate=" servers = [ "Server=192.168.1.10;Port=1433;User Id=;Password=;app name=telegraf;log=1;", ] + ## Timeout for query execution operation + ## Note that the timeout for queries is per query not per gather. + ## 0 value means no timeout + # query_timeout = "0s" + ## Authentication method ## valid methods: "connection_string", "AAD" # auth_method = "connection_string" + ## ClientID is the is the client ID of the user assigned identity of the VM + ## that should be used to authenticate to the Azure SQL server. + # client_id = "" + ## "database_type" enables a specific set of queries depending on the database type. If specified, it replaces azuredb = true/false and query_version = 2 ## In the config file, the sql server plugin section should be repeated each with a set of servers for a specific database_type. ## Possible values for database_type are - "SQLServer" or "AzureSQLDB" or "AzureSQLManagedInstance" or "AzureSQLPool" - database_type = "SQLServer" ## A list of queries to include. If not specified, all the below listed queries are used. @@ -27,6 +35,11 @@ ## A list of queries to explicitly ignore. exclude_query = ["SQLServerAvailabilityReplicaStates", "SQLServerDatabaseReplicaStates"] + ## Force using the deprecated ADAL authentication method instead of the recommended + ## MSAL method. Setting this option is not recommended and only exists for backward + ## compatibility. + # use_deprecated_adal_authentication = false + ## Queries enabled by default for database_type = "SQLServer" are - ## SQLServerPerformanceCounters, SQLServerWaitStatsCategorized, SQLServerDatabaseIO, SQLServerProperties, SQLServerMemoryClerks, ## SQLServerSchedulers, SQLServerRequests, SQLServerVolumeSpace, SQLServerCpu, SQLServerAvailabilityReplicaStates, SQLServerDatabaseReplicaStates, @@ -44,6 +57,10 @@ ## AzureSQLPoolResourceStats, AzureSQLPoolResourceGovernance, AzureSQLPoolDatabaseIO, AzureSQLPoolWaitStats, ## AzureSQLPoolMemoryClerks, AzureSQLPoolPerformanceCounters, AzureSQLPoolSchedulers + ## Queries enabled by default for database_type = "AzureArcSQLManagedInstance" are - + ## AzureSQLMIDatabaseIO, AzureSQLMIServerProperties, AzureSQLMIOsWaitstats, + ## AzureSQLMIMemoryClerks, AzureSQLMIPerformanceCounters, AzureSQLMIRequests, AzureSQLMISchedulers + ## Following are old config settings ## You may use them only if you are using the earlier flavor of queries, however it is recommended to use ## the new mechanism of identifying the database_type there by use it's corresponding queries @@ -63,7 +80,7 @@ ## This setting/metric is optional and is disabled by default. # health_metric = false - ## Possible queries accross different versions of the collectors + ## Possible queries across different versions of the collectors ## Queries enabled by default for specific Database Type ## database_type = AzureSQLDB by default collects the following queries @@ -113,27 +130,8 @@ ## - SQLServerAvailabilityReplicaStates ## - SQLServerDatabaseReplicaStates - ## Version 2 by default collects the following queries - ## Version 2 is being deprecated, please consider using database_type. - ## - PerformanceCounters - ## - WaitStatsCategorized - ## - DatabaseIO - ## - ServerProperties - ## - MemoryClerk - ## - Schedulers - ## - SqlRequests - ## - VolumeSpace - ## - Cpu - - ## Version 1 by default collects the following queries - ## Version 1 is deprecated, please consider using database_type. - ## - PerformanceCounters - ## - WaitStatsCategorized - ## - CPUHistory - ## - DatabaseIO - ## - DatabaseSize - ## - DatabaseStats - ## - DatabaseProperties - ## - MemoryClerk - ## - VolumeSpace - ## - PerformanceMetrics + ## Maximum number of open connections to the database, 0 allows the driver to decide. + # max_open_connections = 0 + + ## Maximum number of idle connections in the connection pool, 0 allows the driver to decide. + # max_idle_connections = 0 diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/stackdriver.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/stackdriver.conf index b571e9dca9..04c47747b9 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/stackdriver.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/stackdriver.conf @@ -59,9 +59,11 @@ ## ## The logical operators when combining filters are defined statically using ## the following values: - ## filter ::= {AND } + ## filter ::= {AND AND AND } ## resource_labels ::= {OR } ## metric_labels ::= {OR } + ## user_labels ::= {OR } + ## system_labels ::= {OR } ## ## For more details, see https://cloud.google.com/monitoring/api/v3/filters # @@ -76,3 +78,15 @@ # [[inputs.stackdriver.filter.metric_labels]] # key = "device_name" # value = 'one_of("sda", "sdb")' + # + ## User labels refine the time series selection with the following expression: + ## metadata.user_labels."" = + # [[inputs.stackdriver.filter.user_labels]] + # key = "environment" + # value = 'one_of("prod", "staging")' + # + ## System labels refine the time series selection with the following expression: + ## metadata.system_labels."" = + # [[inputs.stackdriver.filter.system_labels]] + # key = "machine_type" + # value = 'starts_with("e2-")' diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/statsd.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/statsd.conf index c60e7b17b9..2e0a485ae8 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/statsd.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/statsd.conf @@ -29,17 +29,17 @@ ## Reset timings & histograms every interval (default=true) delete_timings = true + ## Enable aggregation temporality adds temporality=delta or temporality=commulative tag, and + ## start_time field, which adds the start time of the metric accumulation. + ## You should use this when using OpenTelemetry output. + # enable_aggregation_temporality = false + ## Percentiles to calculate for timing & histogram stats. percentiles = [50.0, 90.0, 99.0, 99.9, 99.95, 100.0] ## separator to use between elements of a statsd metric metric_separator = "_" - ## Parses tags in the datadog statsd format - ## http://docs.datadoghq.com/guides/dogstatsd/ - ## deprecated in 1.10; use datadog_extensions option instead - parse_data_dog_tags = false - ## Parses extensions to statsd in the datadog statsd format ## currently supports metrics and datadog tags. ## http://docs.datadoghq.com/guides/dogstatsd/ @@ -49,6 +49,11 @@ ## https://docs.datadoghq.com/developers/metrics/types/?tab=distribution#definition datadog_distributions = false + ## Keep or drop the container id as tag. Included as optional field + ## in DogStatsD protocol v1.2 if source is running in Kubernetes + ## https://docs.datadoghq.com/developers/dogstatsd/datagram_shell/?tab=metrics#dogstatsd-protocol-v12 + datadog_keep_container_tag = false + ## Statsd data translation templates, more info can be read here: ## https://github.com/influxdata/telegraf/blob/master/docs/TEMPLATE_PATTERN.md # templates = [ @@ -59,6 +64,9 @@ ## the statsd server will start dropping packets allowed_pending_messages = 10000 + ## Number of worker threads used to parse the incoming messages. + # number_workers_threads = 5 + ## Number of timing/histogram values to track per-measurement in the ## calculation of percentiles. Raising this limit increases the accuracy ## of percentiles but also increases the memory usage and cpu time. @@ -75,6 +83,22 @@ ## By default, telegraf will pass names directly as they are received. ## However, upstream statsd now does sanitization of names which can be ## enabled by using the "upstream" method option. This option will a) replace - ## white space with '_', replace '/' with '-', and remove charachters not + ## white space with '_', replace '/' with '-', and remove characters not ## matching 'a-zA-Z_\-0-9\.;='. #sanitize_name_method = "" + + ## Replace dots (.) with underscore (_) and dashes (-) with + ## double underscore (__) in metric names. + # convert_names = false + + ## Convert all numeric counters to float + ## Enabling this would ensure that both counters and guages are both emitted + ## as floats. + # float_counters = false + + ## Emit timings `metric__count` field as float, the same as all other + ## histogram fields + # float_timings = false + + ## Emit sets as float + # float_sets = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/suricata.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/suricata.conf index 6abf7e28aa..986f229ab5 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/suricata.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/suricata.conf @@ -1,13 +1,26 @@ # Suricata stats and alerts plugin [[inputs.suricata]] - ## Data sink for Suricata stats log. - # This is expected to be a filename of a - # unix socket to be created for listening. - source = "/var/run/suricata-stats.sock" + ## Source + ## Data sink for Suricata stats log. This is expected to be a filename of a + ## unix socket to be created for listening. + # source = "/var/run/suricata-stats.sock" - # Delimiter for flattening field keys, e.g. subitem "alert" of "detect" - # becomes "detect_alert" when delimiter is "_". - delimiter = "_" + ## Delimiter + ## Used for flattening field keys, e.g. subitem "alert" of "detect" becomes + ## "detect_alert" when delimiter is "_". + # delimiter = "_" - # Detect alert logs - alerts = false + ## Metric version + ## Version 1 only collects stats and optionally will look for alerts if + ## the configuration setting alerts is set to true. + ## Version 2 parses any event type message by default and produced metrics + ## under a single metric name using a tag to differentiate between event + ## types. The timestamp for the message is applied to the generated metric. + ## Additional tags and fields are included as well. + # version = "1" + + ## Alerts + ## In metric version 1, only status is captured by default, alerts must be + ## turned on with this configuration option. This option does not apply for + ## metric version 2. + # alerts = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/synproxy.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/synproxy.conf index de944aa19e..ef41961cdc 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/synproxy.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/synproxy.conf @@ -1,3 +1,4 @@ # Get synproxy counter statistics from procfs +# This plugin ONLY supports Linux [[inputs.synproxy]] # no configuration diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/syslog.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/syslog.conf index d166134c23..d4910fc8fa 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/syslog.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/syslog.conf @@ -5,32 +5,53 @@ ## ex: server = "tcp://localhost:6514" ## server = "udp://:6514" ## server = "unix:///var/run/telegraf-syslog.sock" - server = "tcp://:6514" + ## When using tcp, consider using 'tcp4' or 'tcp6' to force the usage of IPv4 + ## or IPV6 respectively. There are cases, where when not specified, a system + ## may force an IPv4 mapped IPv6 address. + server = "tcp://127.0.0.1:6514" - ## TLS Config - # tls_allowed_cacerts = ["/etc/telegraf/ca.pem"] + ## Permission for unix sockets (only available on unix sockets) + ## This setting may not be respected by some platforms. To safely restrict + ## permissions it is recommended to place the socket into a previously + ## created directory with the desired permissions. + ## ex: socket_mode = "777" + # socket_mode = "" + + ## Maximum number of concurrent connections (only available on stream sockets like TCP) + ## Zero means unlimited. + # max_connections = 0 + + ## Read timeout (only available on stream sockets like TCP) + ## Zero means unlimited. + # read_timeout = "0s" + + ## Optional TLS configuration (only available on stream sockets like TCP) # tls_cert = "/etc/telegraf/cert.pem" - # tls_key = "/etc/telegraf/key.pem" + # tls_key = "/etc/telegraf/key.pem" + ## Enables client authentication if set. + # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] - ## Period between keep alive probes. - ## 0 disables keep alive probes. - ## Defaults to the OS configuration. - ## Only applies to stream sockets (e.g. TCP). + ## Maximum socket buffer size (in bytes when no unit specified) + ## For stream sockets, once the buffer fills up, the sender will start + ## backing up. For datagram sockets, once the buffer fills up, metrics will + ## start dropping. Defaults to the OS default. + # read_buffer_size = "64KiB" + + ## Period between keep alive probes (only applies to TCP sockets) + ## Zero disables keep alive probes. Defaults to the OS configuration. # keep_alive_period = "5m" - ## Maximum number of concurrent connections (default = 0). - ## 0 means unlimited. - ## Only applies to stream sockets (e.g. TCP). - # max_connections = 1024 + ## Content encoding for message payloads + ## Can be set to "gzip" for compressed payloads or "identity" for no encoding. + # content_encoding = "identity" - ## Read timeout is the maximum time allowed for reading a single message (default = 5s). - ## 0 means unlimited. - # read_timeout = "5s" + ## Maximum size of decoded packet (in bytes when no unit specified) + # max_decompression_size = "500MB" - ## The framing technique with which it is expected that messages are transported (default = "octet-counting"). - ## Whether the messages come using the octect-counting (RFC5425#section-4.3.1, RFC6587#section-3.4.1), - ## or the non-transparent framing technique (RFC6587#section-3.4.2). - ## Must be one of "octect-counting", "non-transparent". + ## Framing technique used for messages transport + ## Available settings are: + ## octet-counting -- see RFC5425#section-4.3.1 and RFC6587#section-3.4.1 + ## non-transparent -- see RFC6587#section-3.4.2 # framing = "octet-counting" ## The trailer to be expected in case of non-transparent framing (default = "LF"). @@ -52,3 +73,7 @@ ## For each combination a field is created. ## Its name is created concatenating identifier, sdparam_separator, and parameter name. # sdparam_separator = "_" + + ## Maximum length allowed for a single message (in bytes when no unit specified) + ## Only applies to octet-counting framing. + # max_message_length = "8KiB" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/sysstat.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/sysstat.conf index 01f8e73fcc..7d8e3e4b18 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/sysstat.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/sysstat.conf @@ -1,4 +1,5 @@ # Sysstat metrics collector +# This plugin ONLY supports Linux [[inputs.sysstat]] ## Path to the sadc command. # @@ -25,7 +26,7 @@ # group = true ## Options for the sadf command. The values on the left represent the sadf options and - ## the values on the right their description (wich are used for grouping and prefixing metrics). + ## the values on the right their description (which are used for grouping and prefixing metrics). ## ## Run 'sar -h' or 'man sar' to find out the supported options for your sysstat version. [inputs.sysstat.options] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/systemd_units.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/systemd_units.conf index 421be8cffc..73193a8084 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/systemd_units.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/systemd_units.conf @@ -1,16 +1,29 @@ -# Gather systemd units state +# Gather information about systemd-unit states +# This plugin ONLY supports Linux [[inputs.systemd_units]] - ## Set timeout for systemctl execution - # timeout = "1s" - # - ## Filter for a specific unit type, default is "service", other possible - ## values are "socket", "target", "device", "mount", "automount", "swap", - ## "timer", "path", "slice" and "scope ": + ## Pattern of units to collect + ## A space-separated list of unit-patterns including wildcards determining + ## the units to collect. + ## ex: pattern = "telegraf* influxdb* user@*" + # pattern = "*" + + ## Filter for a specific unit type + ## Available settings are: service, socket, target, device, mount, + ## automount, swap, timer, path, slice and scope # unittype = "service" - # - ## Filter for a specific pattern, default is "" (i.e. all), other possible - ## values are valid pattern for systemctl, e.g. "a*" for all units with - ## names starting with "a" - # pattern = "" - ## pattern = "telegraf* influxdb*" - ## pattern = "a*" + + ## Collect system or user scoped units + ## ex: scope = "user" + # scope = "system" + + ## Collect also units not loaded by systemd, i.e. disabled or static units + ## Enabling this feature might introduce significant load when used with + ## unspecific patterns (such as '*') as systemd will need to load all + ## matching unit files. + # collect_disabled_units = false + + ## Collect detailed information for the units + # details = false + + ## Timeout for state-collection + # timeout = "5s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/tacacs.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/tacacs.conf new file mode 100644 index 0000000000..bb378b6c88 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/tacacs.conf @@ -0,0 +1,15 @@ +# Tacacs plugin collects successful tacacs authentication response times. +[[inputs.tacacs]] + ## An array of Server IPs (or hostnames) and ports to gather from. If none specified, defaults to localhost. + # servers = ["127.0.0.1:49"] + + ## Request source server IP, normally the server running telegraf. + # request_ip = "127.0.0.1" + + ## Credentials for tacacs authentication. + username = "myuser" + password = "mypassword" + secret = "mysecret" + + ## Maximum time to receive response. + # response_timeout = "5s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/tail.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/tail.conf index 07ed4a6658..97c3290d9c 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/tail.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/tail.conf @@ -12,13 +12,20 @@ ## files = ["/var/mymetrics.out"] - ## Read file from beginning. - # from_beginning = false + ## Offset to start reading at + ## The following methods are available: + ## beginning -- start reading from the beginning of the file ignoring any persisted offset + ## end -- start reading from the end of the file ignoring any persisted offset + ## saved-or-beginning -- use the persisted offset of the file or, if no offset persisted, start from the beginning of the file + ## saved-or-end -- use the persisted offset of the file or, if no offset persisted, start from the end of the file + # initial_read_offset = "saved-or-end" ## Whether file is a named pipe # pipe = false ## Method used to watch for file updates. Can be either "inotify" or "poll". + ## inotify is supported on linux, *bsd, and macOS, while Windows requires + ## using poll. Poll checks for changes every 250ms. # watch_method = "inotify" ## Maximum lines of the file to process that have not yet be written by the @@ -62,5 +69,19 @@ ## If true, a message not matching the pattern will constitute a match of the multiline filter and the what will be applied. (vice-versa is also true) #invert_match = false + ## The handling method for quoted text (defaults to 'ignore'). + ## The following methods are available: + ## ignore -- do not consider quotation (default) + ## single-quotes -- consider text quoted by single quotes (') + ## double-quotes -- consider text quoted by double quotes (") + ## backticks -- consider text quoted by backticks (`) + ## When handling quotes, escaped quotes (e.g. \") are handled correctly. + #quotation = "ignore" + + ## The preserve_newline option can be true or false (defaults to false). + ## If true, the newline character is preserved for multiline elements, + ## this is useful to preserve message-structure e.g. for logging outputs. + #preserve_newline = false + #After the specified timeout, this plugin sends the multiline event even if no new pattern is found to start a new event. The default is 5s. #timeout = 5s diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/temp.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/temp.conf index 938ce9d949..55c234b125 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/temp.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/temp.conf @@ -1,3 +1,10 @@ # Read metrics about temperature [[inputs.temp]] - # no configuration + ## Desired output format (Linux only) + ## Available values are + ## v1 -- use pre-v1.22.4 sensor naming, e.g. coretemp_core0_input + ## v2 -- use v1.22.4+ sensor naming, e.g. coretemp_core_0_input + # metric_format = "v2" + + ## Add device tag to distinguish devices with the same name (Linux only) + # add_device_tag = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/turbostat.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/turbostat.conf new file mode 100644 index 0000000000..03e65fe932 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/turbostat.conf @@ -0,0 +1,10 @@ +## Gather CPU metrics using Turbostat +[[inputs.turbostat]] + ## Path to the Turbostat exectuable if not in the PATH + # path = "/usr/bin/turbostat" + + ## Turbostat measurement interval + # interval = "10s" + + ## Use sudo to run the Turbostat executable + # use_sudo = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/unbound.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/unbound.conf index 095da9ddb4..a9b8fb0826 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/unbound.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/unbound.conf @@ -22,3 +22,6 @@ ## true in a future version. It is recommended to set to true on new ## deployments. thread_as_tag = false + + ## Collect metrics with the histogram of the recursive query times: + # histogram = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/upsd.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/upsd.conf index 2c0a1960af..3ec7973385 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/upsd.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/upsd.conf @@ -1,7 +1,26 @@ # Monitor UPSes connected via Network UPS Tools [[inputs.upsd]] ## A running NUT server to connect to. + ## IPv6 addresses must be enclosed in brackets (e.g. "[::1]") # server = "127.0.0.1" # port = 3493 # username = "user" # password = "password" + + ## Force parsing numbers as floats + ## It is highly recommended to enable this setting to parse numbers + ## consistently as floats to avoid database conflicts where some numbers are + ## parsed as integers and others as floats. + # force_float = false + + ## Collect additional fields if they are available for the UPS + ## The fields need to be specified as NUT variable names, see + ## https://networkupstools.org/docs/developer-guide.chunked/apas02.html + ## Wildcards are accepted. + # additional_fields = [] + + ## Dump information for debugging + ## Allows to print the raw variables (and corresponding types) as received + ## from the NUT server ONCE for each UPS. + ## Please attach this information when reporting issues! + # log_level = "trace" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/varnish.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/varnish.conf index 0e59f9bad4..8189d3ec98 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/varnish.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/varnish.conf @@ -1,4 +1,5 @@ # A plugin to collect stats from Varnish HTTP Cache +# This plugin ONLY supports non-Windows [[inputs.varnish]] ## If running as a restricted user you can prepend sudo for additional access: #use_sudo = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/vsphere.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/vsphere.conf index a7d2355399..6b865cf243 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/vsphere.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/vsphere.conf @@ -1,4 +1,4 @@ --# Read metrics from one or many vCenters +# Read metrics from one or many vCenters [[inputs.vsphere]] ## List of vCenter URLs to be monitored. These three lines must be uncommented ## and edited for the plugin to work. @@ -116,11 +116,11 @@ # cluster_instances = false ## false by default ## Resource Pools - # datastore_include = [ "/*/host/**"] # Inventory path to datastores to collect (by default all are collected) - # datastore_exclude = [] # Inventory paths to exclude - # datastore_metric_include = [] ## if omitted or empty, all metrics are collected - # datastore_metric_exclude = [] ## Nothing excluded by default - # datastore_instances = false ## false by default + # resource_pool_include = [ "/*/host/**"] # Inventory path to resource pools to collect (by default all are collected) + # resource_pool_exclude = [] # Inventory paths to exclude + # resource_pool_metric_include = [] ## if omitted or empty, all metrics are collected + # resource_pool_metric_exclude = [] ## Nothing excluded by default + # resource_pool_instances = false ## false by default ## Datastores # datastore_include = [ "/*/datastore/**"] # Inventory path to datastores to collect (by default all are collected) @@ -136,6 +136,16 @@ datacenter_metric_exclude = [ "*" ] ## Datacenters are not collected by default. # datacenter_instances = false ## false by default + ## VSAN + # vsan_metric_include = [] ## if omitted or empty, all metrics are collected + # vsan_metric_exclude = [ "*" ] ## vSAN are not collected by default. + ## Whether to skip verifying vSAN metrics against the ones from GetSupportedEntityTypes API. + # vsan_metric_skip_verify = false ## false by default. + + ## Interval for sampling vSAN performance metrics, can be reduced down to + ## 30 seconds for vSAN 8 U1. + # vsan_interval = "5m" + ## Plugin Settings ## separator character to use for measurement and field names (default: "_") # separator = "_" @@ -193,3 +203,13 @@ ## The Historical Interval value must match EXACTLY the interval in the daily # "Interval Duration" found on the VCenter server under Configure > General > Statistics > Statistic intervals # historical_interval = "5m" + + ## Specifies plugin behavior regarding disconnected servers + ## Available choices : + ## - error: telegraf will return an error on startup if one the servers is unreachable + ## - ignore: telegraf will ignore unreachable servers on both startup and gather + # disconnected_servers_behavior = "error" + + ## HTTP Proxy support + # use_system_proxy = true + # http_proxy_url = "" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/webhooks.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/webhooks.conf index 8b518c95b0..0e6cd4679f 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/webhooks.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/webhooks.conf @@ -3,6 +3,11 @@ ## Address and port to host Webhook listener on service_address = ":1619" + ## Maximum duration before timing out read of the request + # read_timeout = "10s" + ## Maximum duration before timing out write of the response + # write_timeout = "10s" + [inputs.webhooks.filestack] path = "/filestack" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/whois.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/whois.conf new file mode 100644 index 0000000000..b818356f06 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/whois.conf @@ -0,0 +1,13 @@ +# Reads whois data and expose as metrics +[[inputs.whois]] + ## List of domains to query + domains = ["example.com", "influxdata.com"] + + ## Use Custom WHOIS server + # server = "whois.iana.org" + + ## Timeout for WHOIS queries + # timeout = "30s" + + ## Enable WHOIS referral chain query + # referral_chain_query = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/win_eventlog.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/win_eventlog.conf index 60f8117475..7fc66378c2 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/win_eventlog.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/win_eventlog.conf @@ -1,7 +1,8 @@ # Input plugin to collect Windows Event Log messages +# This plugin ONLY supports Windows [[inputs.win_eventlog]] - ## Telegraf should have Administrator permissions to subscribe for some Windows Events channels - ## (System log, for example) + ## Telegraf should have Administrator permissions to subscribe for some + ## Windows Events channels (e.g. System log) ## LCID (Locale ID) for event rendering ## 1033 to force English language @@ -39,39 +40,63 @@ ''' - ## System field names: - ## "Source", "EventID", "Version", "Level", "Task", "Opcode", "Keywords", "TimeCreated", - ## "EventRecordID", "ActivityID", "RelatedActivityID", "ProcessID", "ThreadID", "ProcessName", - ## "Channel", "Computer", "UserID", "UserName", "Message", "LevelText", "TaskText", "OpcodeText" + ## When true, event logs are read from the beginning; otherwise only future + ## events will be logged. + # from_beginning = false - ## In addition to System, Data fields can be unrolled from additional XML nodes in event. - ## Human-readable representation of those nodes is formatted into event Message field, - ## but XML is more machine-parsable + ## Number of events to fetch in one batch + # event_batch_size = 5 # Process UserData XML to fields, if this node exists in Event XML - process_userdata = true + # process_userdata = true # Process EventData XML to fields, if this node exists in Event XML - process_eventdata = true + # process_eventdata = true ## Separator character to use for unrolled XML Data field names - separator = "_" + # separator = "_" - ## Get only first line of Message field. For most events first line is usually more than enough - only_first_line_of_message = true + ## Get only first line of Message field. For most events first line is + ## usually more than enough + # only_first_line_of_message = true ## Parse timestamp from TimeCreated.SystemTime event field. - ## Will default to current time of telegraf processing on parsing error or if set to false - timestamp_from_event = true + ## Will default to current time of telegraf processing on parsing error or if + ## set to false + # timestamp_from_event = true + + ## System field names: + ## "Source", "EventID", "Version", "Level", "Task", "Opcode", "Keywords", + ## "TimeCreated", "EventRecordID", "ActivityID", "RelatedActivityID", + ## "ProcessID", "ThreadID", "ProcessName", "Channel", "Computer", "UserID", + ## "UserName", "Message", "LevelText", "TaskText", "OpcodeText" + ## + ## In addition to System, Data fields can be unrolled from additional XML + ## nodes in event. Human-readable representation of those nodes is formatted + ## into event Message field, but XML is more machine-parsable + + ## Event fields to include as tags + ## The values below are included by default. + ## Globbing supported (e.g. "Level*" matches both "Level" and "LevelText") + # event_tags = ["Source", "EventID", "Level", "LevelText", "Task", "TaskText", "Opcode", "OpcodeText", "Keywords", "Channel", "Computer"] - ## Fields to include as tags. Globbing supported ("Level*" for both "Level" and "LevelText") - event_tags = ["Source", "EventID", "Level", "LevelText", "Task", "TaskText", "Opcode", "OpcodeText", "Keywords", "Channel", "Computer"] + ## Event fields to include + ## All fields are sent by default. + ## Globbing supported (e.g. "Level*" matches both "Level" and "LevelText") + # event_fields = ["*"] - ## Default list of fields to send. All fields are sent by default. Globbing supported - event_fields = ["*"] + ## Event fields to exclude + ## Note that if you exclude all fields then no metrics are produced. A valid + ## metric includes at least one field. + ## Globbing supported (e.g. "Level*" matches both "Level" and "LevelText") + # exclude_fields = [] - ## Fields to exclude. Also applied to data fields. Globbing supported - exclude_fields = ["TimeCreated", "Binary", "Data_Address*"] + ## Event fields to exclude if their value is empty or equals to zero + ## The values below are included by default. + ## Globbing supported (e.g. "Level*" matches both "Level" and "LevelText") + # exclude_empty = ["Task", "Opcode", "*ActivityID", "UserID"] - ## Skip those tags or fields if their value is empty or equals to zero. Globbing supported - exclude_empty = ["*ActivityID", "UserID"] + ## Maximum memory size available for an event to render + ## Events larger that that are not processed and will not create a metric. + ## NOTE: As events are encoded in UTF-16 we need two bytes per character. + # event_size_limit = "64KB" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/win_perf_counters.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/win_perf_counters.conf index 6b42ad98c0..46efab1174 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/win_perf_counters.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/win_perf_counters.conf @@ -1,136 +1,170 @@ -# # Input plugin to counterPath Performance Counters on Windows operating systems -# [[inputs.win_perf_counters]] -# ## By default this plugin returns basic CPU and Disk statistics. -# ## See the README file for more examples. -# ## Uncomment examples below or write your own as you see fit. If the system -# ## being polled for data does not have the Object at startup of the Telegraf -# ## agent, it will not be gathered. -# ## Settings: -# # PrintValid = false # Print All matching performance counters -# # Whether request a timestamp along with the PerfCounter data or just use current time -# # UsePerfCounterTime=true -# # If UseWildcardsExpansion params is set to true, wildcards (partial wildcards in instance names and wildcards in counters names) in configured counter paths will be expanded -# # and in case of localized Windows, counter paths will be also localized. It also returns instance indexes in instance names. -# # If false, wildcards (not partial) in instance names will still be expanded, but instance indexes will not be returned in instance names. -# #UseWildcardsExpansion = false -# # When running on a localized version of Windows and with UseWildcardsExpansion = true, Windows will -# # localize object and counter names. When LocalizeWildcardsExpansion = false, use the names in object.Counters instead -# # of the localized names. Only Instances can have wildcards in this case. ObjectName and Counters must not have wildcards when this -# # setting is false. -# #LocalizeWildcardsExpansion = true -# # Period after which counters will be reread from configuration and wildcards in counter paths expanded -# CountersRefreshInterval="1m" -# ## Accepts a list of PDH error codes which are defined in pdh.go, if this error is encountered it will be ignored -# ## For example, you can provide "PDH_NO_DATA" to ignore performance counters with no instances -# ## By default no errors are ignored -# ## You can find the list here: https://github.com/influxdata/telegraf/blob/master/plugins/inputs/win_perf_counters/pdh.go -# ## e.g.: IgnoredErrors = ["PDH_NO_DATA"] -# # IgnoredErrors = [] -# -# [[inputs.win_perf_counters.object]] -# # Processor usage, alternative to native, reports on a per core. -# ObjectName = "Processor" -# Instances = ["*"] -# Counters = [ -# "% Idle Time", -# "% Interrupt Time", -# "% Privileged Time", -# "% User Time", -# "% Processor Time", -# "% DPC Time", -# ] -# Measurement = "win_cpu" -# # Set to true to include _Total instance when querying for all (*). -# # IncludeTotal=false -# # Print out when the performance counter is missing from object, counter or instance. -# # WarnOnMissing = false -# # Gather raw values instead of formatted. Raw value is stored in the field name with the "_Raw" suffix, e.g. "Disk_Read_Bytes_sec_Raw". -# # UseRawValues = true -# -# [[inputs.win_perf_counters.object]] -# # Disk times and queues -# ObjectName = "LogicalDisk" -# Instances = ["*"] -# Counters = [ -# "% Idle Time", -# "% Disk Time", -# "% Disk Read Time", -# "% Disk Write Time", -# "% User Time", -# "% Free Space", -# "Current Disk Queue Length", -# "Free Megabytes", -# ] -# Measurement = "win_disk" -# -# [[inputs.win_perf_counters.object]] -# ObjectName = "PhysicalDisk" -# Instances = ["*"] -# Counters = [ -# "Disk Read Bytes/sec", -# "Disk Write Bytes/sec", -# "Current Disk Queue Length", -# "Disk Reads/sec", -# "Disk Writes/sec", -# "% Disk Time", -# "% Disk Read Time", -# "% Disk Write Time", -# ] -# Measurement = "win_diskio" -# -# [[inputs.win_perf_counters.object]] -# ObjectName = "Network Interface" -# Instances = ["*"] -# Counters = [ -# "Bytes Received/sec", -# "Bytes Sent/sec", -# "Packets Received/sec", -# "Packets Sent/sec", -# "Packets Received Discarded", -# "Packets Outbound Discarded", -# "Packets Received Errors", -# "Packets Outbound Errors", -# ] -# Measurement = "win_net" -# -# -# [[inputs.win_perf_counters.object]] -# ObjectName = "System" -# Counters = [ -# "Context Switches/sec", -# "System Calls/sec", -# "Processor Queue Length", -# "System Up Time", -# ] -# Instances = ["------"] -# Measurement = "win_system" -# -# [[inputs.win_perf_counters.object]] -# # Example counterPath where the Instance portion must be removed to get data back, -# # such as from the Memory object. -# ObjectName = "Memory" -# Counters = [ -# "Available Bytes", -# "Cache Faults/sec", -# "Demand Zero Faults/sec", -# "Page Faults/sec", -# "Pages/sec", -# "Transition Faults/sec", -# "Pool Nonpaged Bytes", -# "Pool Paged Bytes", -# "Standby Cache Reserve Bytes", -# "Standby Cache Normal Priority Bytes", -# "Standby Cache Core Bytes", -# ] -# Instances = ["------"] # Use 6 x - to remove the Instance bit from the counterPath. -# Measurement = "win_mem" -# -# [[inputs.win_perf_counters.object]] -# # Example query where the Instance portion must be removed to get data back, -# # such as from the Paging File object. -# ObjectName = "Paging File" -# Counters = [ -# "% Usage", -# ] -# Instances = ["_Total"] -# Measurement = "win_swap" +# Input plugin to counterPath Performance Counters on Windows operating systems +# This plugin ONLY supports Windows +[[inputs.win_perf_counters]] + ## By default this plugin returns basic CPU and Disk statistics. See the + ## README file for more examples. Uncomment examples below or write your own + ## as you see fit. If the system being polled for data does not have the + ## Object at startup of the Telegraf agent, it will not be gathered. + + ## Print All matching performance counters + # PrintValid = false + + ## Whether request a timestamp along with the PerfCounter data or use current + ## time + # UsePerfCounterTime = true + + ## If UseWildcardsExpansion params is set to true, wildcards (partial + ## wildcards in instance names and wildcards in counters names) in configured + ## counter paths will be expanded and in case of localized Windows, counter + ## paths will be also localized. It also returns instance indexes in instance + ## names. If false, wildcards (not partial) in instance names will still be + ## expanded, but instance indexes will not be returned in instance names. + # UseWildcardsExpansion = false + + ## When running on a localized version of Windows and with + ## UseWildcardsExpansion = true, Windows will localize object and counter + ## names. When LocalizeWildcardsExpansion = false, use the names in + ## object.Counters instead of the localized names. Only Instances can have + ## wildcards in this case. ObjectName and Counters must not have wildcards + ## when this setting is false. + # LocalizeWildcardsExpansion = true + + ## Period after which counters will be reread from configuration and + ## wildcards in counter paths expanded + # CountersRefreshInterval="1m" + + ## Accepts a list of PDH error codes which are defined in pdh.go, if this + ## error is encountered it will be ignored. For example, you can provide + ## "PDH_NO_DATA" to ignore performance counters with no instances. By default + ## no errors are ignored You can find the list here: + ## https://github.com/influxdata/telegraf/blob/master/plugins/inputs/win_perf_counters/pdh.go + ## e.g. IgnoredErrors = ["PDH_NO_DATA"] + # IgnoredErrors = [] + + ## Maximum size of the buffer for values returned by the API + ## Increase this value if you experience "buffer limit reached" errors. + # MaxBufferSize = "4MiB" + + ## NOTE: Due to the way TOML is parsed, tables must be at the END of the + ## plugin definition, otherwise additional config options are read as part of + ## the table + + # [[inputs.win_perf_counters.object]] + # Measurement = "" + # ObjectName = "" + # Instances = [""] + # Counters = [] + ## Additional Object Settings + ## * IncludeTotal: set to true to include _Total instance when querying + ## for all metrics via '*' + ## * WarnOnMissing: print out when the performance counter is missing + ## from object, counter or instance + ## * UseRawValues: gather raw values instead of formatted. Raw values are + ## stored in the field name with the "_Raw" suffix, e.g. + ## "Disk_Read_Bytes_sec_Raw". + # IncludeTotal = false + # WarnOnMissing = false + # UseRawValues = false + + ## Processor usage, alternative to native, reports on a per core. + # [[inputs.win_perf_counters.object]] + # Measurement = "win_cpu" + # ObjectName = "Processor" + # Instances = ["*"] + # UseRawValues = true + # Counters = [ + # "% Idle Time", + # "% Interrupt Time", + # "% Privileged Time", + # "% User Time", + # "% Processor Time", + # "% DPC Time", + # ] + + ## Disk times and queues + # [[inputs.win_perf_counters.object]] + # Measurement = "win_disk" + # ObjectName = "LogicalDisk" + # Instances = ["*"] + # Counters = [ + # "% Idle Time", + # "% Disk Time", + # "% Disk Read Time", + # "% Disk Write Time", + # "% User Time", + # "% Free Space", + # "Current Disk Queue Length", + # "Free Megabytes", + # ] + + # [[inputs.win_perf_counters.object]] + # Measurement = "win_diskio" + # ObjectName = "PhysicalDisk" + # Instances = ["*"] + # Counters = [ + # "Disk Read Bytes/sec", + # "Disk Write Bytes/sec", + # "Current Disk Queue Length", + # "Disk Reads/sec", + # "Disk Writes/sec", + # "% Disk Time", + # "% Disk Read Time", + # "% Disk Write Time", + # ] + + # [[inputs.win_perf_counters.object]] + # Measurement = "win_net" + # ObjectName = "Network Interface" + # Instances = ["*"] + # Counters = [ + # "Bytes Received/sec", + # "Bytes Sent/sec", + # "Packets Received/sec", + # "Packets Sent/sec", + # "Packets Received Discarded", + # "Packets Outbound Discarded", + # "Packets Received Errors", + # "Packets Outbound Errors", + # ] + + # [[inputs.win_perf_counters.object]] + # Measurement = "win_system" + # ObjectName = "System" + # Instances = ["------"] + # Counters = [ + # "Context Switches/sec", + # "System Calls/sec", + # "Processor Queue Length", + # "System Up Time", + # ] + + ## Example counterPath where the Instance portion must be removed to get + ## data back, such as from the Memory object. + # [[inputs.win_perf_counters.object]] + # Measurement = "win_mem" + # ObjectName = "Memory" + ## Use 6 x - to remove the Instance bit from the counterPath. + # Instances = ["------"] + # Counters = [ + # "Available Bytes", + # "Cache Faults/sec", + # "Demand Zero Faults/sec", + # "Page Faults/sec", + # "Pages/sec", + # "Transition Faults/sec", + # "Pool Nonpaged Bytes", + # "Pool Paged Bytes", + # "Standby Cache Reserve Bytes", + # "Standby Cache Normal Priority Bytes", + # "Standby Cache Core Bytes", + # ] + + ## Example query where the Instance portion must be removed to get data back, + ## such as from the Paging File object. + # [[inputs.win_perf_counters.object]] + # Measurement = "win_swap" + # ObjectName = "Paging File" + # Instances = ["_Total"] + # Counters = [ + # "% Usage", + # ] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/win_services.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/win_services.conf index a02c82eb9e..8fb562f9d0 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/win_services.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/win_services.conf @@ -1,9 +1,13 @@ # Input plugin to report Windows services info. +# This plugin ONLY supports Windows [[inputs.win_services]] - ## Names of the services to monitor. Leave empty to monitor all the available services on the host. Globs accepted. Case sensitive. + ## Names of the services to monitor. Leave empty to monitor all the available + ## services on the host. Globs accepted. Case insensitive. service_names = [ "LanmanServer", "TermService", "Win*", ] - excluded_service_names = ['WinRM'] # optional, list of service names to exclude + + # optional, list of service names to exclude + excluded_service_names = ['WinRM'] diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/win_wmi.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/win_wmi.conf new file mode 100644 index 0000000000..78ae120507 --- /dev/null +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/win_wmi.conf @@ -0,0 +1,36 @@ +# Input plugin to query Windows Management Instrumentation +# This plugin ONLY supports Windows +[[inputs.win_wmi]] + ## Hostname or IP for remote connections, by default the local machine is queried + # host = "" + ## Credentials for the connection, by default no credentials are used + # username = "" + # password = "" + + ## WMI query to execute, multiple methods are possible + [[inputs.win_wmi.query]] + ## Namespace, class and a list of properties to use in the WMI query + namespace = "root\\cimv2" + class_name = "Win32_Volume" + properties = ["Name", "Capacity", "FreeSpace"] + ## Optional WHERE clause for the WQL query + # filter = 'NOT Name LIKE "\\\\?\\%"' + ## Returned properties to use as tags instead of fields + # tag_properties = ["Name"] + + # ## WMI method to invoke, multiple methods are possible + # [[inputs.win_wmi.method]] + # ## WMI namespace, class and method to use + # namespace = 'root\default' + # class_name = "StdRegProv" + # method = "GetStringValue" + # ## Returned WMI method values to use as tags instead of fields + # # tag_properties = ["ReturnValue"] + # ## Named arguments for the method call + # [inputs.win_wmi.method.arguments] + # hDefKey = '2147483650' + # sSubKeyName = 'Software\Microsoft\windows NT\CurrentVersion' + # sValueName = 'ProductName' + # ## Mapping of the name of the returned property to a field-name + # [inputs.win_wmi.method.fields] + # sValue = "product_name" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/wireless.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/wireless.conf index d5f993533a..f5cc488bea 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/wireless.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/wireless.conf @@ -1,4 +1,5 @@ # Monitor wifi signal strength and quality +# This plugin ONLY supports Linux [[inputs.wireless]] ## Sets 'proc' directory path ## If not specified, then default is /proc diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/x509_cert.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/x509_cert.conf index de7c75bee6..91df4e2bd7 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/x509_cert.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/x509_cert.conf @@ -5,7 +5,10 @@ sources = ["tcp://example.org:443", "https://influxdata.com:443", "smtp://mail.localhost:25", "udp://127.0.0.1:4433", "/etc/ssl/certs/ssl-cert-snakeoil.pem", - "/etc/mycerts/*.mydomain.org.pem", "file:///path/to/*.pem"] + "/etc/mycerts/*.mydomain.org.pem", "file:///path/to/*.pem", + "jks:///etc/mycerts/keystore.jks", + "pkcs12:///etc/mycerts/keystore.p12", + "wincertstore://machine:ROOT", "wincertstore://user:CA"] ## Timeout for SSL connection # timeout = "5s" @@ -16,6 +19,15 @@ ## example: server_name = "myhost.example.org" # server_name = "myhost.example.org" + ## Only output the leaf certificates and omit the root ones. + # exclude_root_certs = false + + ## Pad certificate serial number with zeroes to 128-bits. + # pad_serial_with_zeroes = false + + ## Password to be used with PKCS#12 or JKS files + # password = "" + ## Optional TLS Config # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/zfs.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/zfs.conf index c5014b3457..1978542531 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/zfs.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/zfs.conf @@ -1,4 +1,5 @@ # Read metrics of ZFS from arcstats, zfetchstats, vdev_cache_stats, pools and datasets +# This plugin ONLY supports Linux & FreeBSD [[inputs.zfs]] ## ZFS kstat path. Ignored on FreeBSD ## If not specified, then default is: @@ -16,6 +17,10 @@ # poolMetrics = false ## By default, don't gather dataset stats - ## On FreeBSD, if the user has enabled listsnapshots in the pool property, - ## telegraf may not be able to correctly parse the output. # datasetMetrics = false + + ## Report fields as the type defined by ZFS (Linux only) + ## This is disabled for backward compatibility but is STRONGLY RECOMMENDED + ## to be enabled to avoid overflows. This requires UINT support on the output + ## for most fields. + ## useNativeTypes = false diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/zipkin.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/zipkin.conf index 0fda452c77..7376585f8c 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/zipkin.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/zipkin.conf @@ -1,6 +1,14 @@ -# 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]] - # path = "/api/v1/spans" # URL path for span data - # port = 9411 # Port on which Telegraf listens + ## URL path for span data + # path = "/api/v1/spans" + + ## Port on which Telegraf listens + # port = 9411 + + ## Maximum duration before timing out read of the request + # read_timeout = "10s" + ## Maximum duration before timing out write of the response + # write_timeout = "10s" diff --git a/src/writeData/components/telegrafInputPluginsConfigurationText/zookeeper.conf b/src/writeData/components/telegrafInputPluginsConfigurationText/zookeeper.conf index 6cb40dd09a..15049550f3 100644 --- a/src/writeData/components/telegrafInputPluginsConfigurationText/zookeeper.conf +++ b/src/writeData/components/telegrafInputPluginsConfigurationText/zookeeper.conf @@ -10,10 +10,34 @@ ## Timeout for metric collections from all servers. Minimum timeout is "1s". # timeout = "5s" + ## Float Parsing - the initial implementation forced any value unable to be + ## parsed as an int to be a string. Setting this to "float" will attempt to + ## parse float values as floats and not strings. This would break existing + ## metrics and may cause issues if a value switches between a float and int. + # parse_floats = "string" + ## Optional TLS Config - # enable_tls = true - # tls_ca = "/etc/telegraf/ca.pem" - # tls_cert = "/etc/telegraf/cert.pem" - # tls_key = "/etc/telegraf/key.pem" - ## If false, skip chain & host verification - # insecure_skip_verify = true + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" + ## Minimal TLS version to accept by the client + # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" + ## Use TLS but skip chain & host verification + # insecure_skip_verify = false diff --git a/src/writeData/components/telegrafPlugins/activemq.md b/src/writeData/components/telegrafPlugins/activemq.md index f2a27625bb..65e28f7a65 100644 --- a/src/writeData/components/telegrafPlugins/activemq.md +++ b/src/writeData/components/telegrafPlugins/activemq.md @@ -1,7 +1,22 @@ # ActiveMQ Input Plugin -This plugin gather queues, topics & subscribers metrics using ActiveMQ Console -API. +This plugin gathers queue, topics and subscribers metrics using the Console API +[ActiveMQ][activemq] message broker daemon. + +⭐ Telegraf v1.8.0 +🏷️ messaging +💻 all + +[activemq]: https://activemq.apache.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -11,11 +26,6 @@ API. ## ActiveMQ WebConsole URL url = "http://127.0.0.1:8161" - ## Required ActiveMQ Endpoint - ## deprecated in 1.11; use the url option - # server = "192.168.50.10" - # port = 8161 - ## Credentials for basic HTTP authentication # username = "admin" # password = "admin" @@ -78,7 +88,7 @@ ActiveMQ Console API. ## Example Output -```shell +```text activemq_queues,name=sandra,host=88284b2fe51b,source=localhost,port=8161 consumer_count=0i,enqueue_count=0i,dequeue_count=0i,size=0i 1492610703000000000 activemq_queues,name=Test,host=88284b2fe51b,source=localhost,port=8161 dequeue_count=0i,size=0i,consumer_count=0i,enqueue_count=0i 1492610703000000000 activemq_topics,name=ActiveMQ.Advisory.MasterBroker\ ,host=88284b2fe51b,source=localhost,port=8161 size=0i,consumer_count=0i,enqueue_count=1i,dequeue_count=0i 1492610703000000000 diff --git a/src/writeData/components/telegrafPlugins/aerospike.md b/src/writeData/components/telegrafPlugins/aerospike.md index 44d5e6ad26..38be1fc990 100644 --- a/src/writeData/components/telegrafPlugins/aerospike.md +++ b/src/writeData/components/telegrafPlugins/aerospike.md @@ -1,15 +1,41 @@ # Aerospike Input Plugin -The aerospike plugin queries aerospike server(s) and get node statistics & stats -for all the configured namespaces. +This plugin queries [Aerospike][aerospike] server(s) for node statistics and +statistics on all configured namespaces. -For what the measurements mean, please consult the [Aerospike Metrics Reference -Docs](http://www.aerospike.com/docs/reference/metrics). +> [!CAUTION] +> As of version 1.30 the Aerospike plugin has been deprecated in favor of the +> [prometheus plugin](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/prometheus/README.md) and the officially +> supported [Aerospike Prometheus Exporter][prometheus_exporter] -The metric names, to make it less complicated in querying, have replaced all `-` -with `_` as Aerospike metrics come in both forms (no idea why). +For details on the measurements mean, please consult the +[Aerospike Metrics Reference Docs][ref_manual]. -All metrics are attempted to be cast to integers, then booleans, then strings. +> [!NOTE] +> Metric names will have dashes (`-`) replaced as underscores (`_`) to make +> querying more consistently and easy. + +All metrics are attempted to be cast to integers, then booleans, then strings +in order. + +⭐ Telegraf v0.2.0 +🚩 Telegraf v1.30.0 +🔥 Telegraf v1.40.0 +🏷️ server +💻 all + +[aerospike]: https://www.aerospike.com +[prometheus_exporter]: https://aerospike.com/docs/monitorstack/configure/configure-exporter +[ref_manual]: https://www.aerospike.com/docs/reference/metrics + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -139,11 +165,9 @@ Histogram metrics have tags: ## Example Output -```shell -% telegraf --input-filter aerospike --test -> aerospike_node,aerospike_host=localhost:3000,node_name="BB9020011AC4202" batch_error=0i,batch_index_complete=0i,batch_index_created_buffers=0i,batch_index_destroyed_buffers=0i,batch_index_error=0i,batch_index_huge_buffers=0i,batch_index_initiate=0i,batch_index_queue="0:0,0:0,0:0,0:0",batch_index_timeout=0i,batch_index_unused_buffers=0i,batch_initiate=0i,batch_queue=0i,batch_timeout=0i,client_connections=6i,cluster_integrity=true,cluster_key="8AF422E05281249E",cluster_size=1i,delete_queue=0i,demarshal_error=0i,early_tsvc_batch_sub_error=0i,early_tsvc_client_error=0i,early_tsvc_udf_sub_error=0i,fabric_connections=16i,fabric_msgs_rcvd=0i,fabric_msgs_sent=0i,heartbeat_connections=0i,heartbeat_received_foreign=0i,heartbeat_received_self=0i,info_complete=47i,info_queue=0i,migrate_allowed=true,migrate_partitions_remaining=0i,migrate_progress_recv=0i,migrate_progress_send=0i,objects=0i,paxos_principal="BB9020011AC4202",proxy_in_progress=0i,proxy_retry=0i,query_long_running=0i,query_short_running=0i,reaped_fds=0i,record_refs=0i,rw_in_progress=0i,scans_active=0i,sindex_gc_activity_dur=0i,sindex_gc_garbage_cleaned=0i,sindex_gc_garbage_found=0i,sindex_gc_inactivity_dur=0i,sindex_gc_list_creation_time=0i,sindex_gc_list_deletion_time=0i,sindex_gc_locktimedout=0i,sindex_gc_objects_validated=0i,sindex_ucgarbage_found=0i,sub_objects=0i,system_free_mem_pct=92i,system_swapping=false,tsvc_queue=0i,uptime=1457i 1468923222000000000 -> aerospike_namespace,aerospike_host=localhost:3000,namespace=test,node_name="BB9020011AC4202" allow_nonxdr_writes=true,allow_xdr_writes=true,available_bin_names=32768i,batch_sub_proxy_complete=0i,batch_sub_proxy_error=0i,batch_sub_proxy_timeout=0i,batch_sub_read_error=0i,batch_sub_read_not_found=0i,batch_sub_read_success=0i,batch_sub_read_timeout=0i,batch_sub_tsvc_error=0i,batch_sub_tsvc_timeout=0i,client_delete_error=0i,client_delete_not_found=0i,client_delete_success=0i,client_delete_timeout=0i,client_lang_delete_success=0i,client_lang_error=0i,client_lang_read_success=0i,client_lang_write_success=0i,client_proxy_complete=0i,client_proxy_error=0i,client_proxy_timeout=0i,client_read_error=0i,client_read_not_found=0i,client_read_success=0i,client_read_timeout=0i,client_tsvc_error=0i,client_tsvc_timeout=0i,client_udf_complete=0i,client_udf_error=0i,client_udf_timeout=0i,client_write_error=0i,client_write_success=0i,client_write_timeout=0i,cold_start_evict_ttl=4294967295i,conflict_resolution_policy="generation",current_time=206619222i,data_in_index=false,default_ttl=432000i,device_available_pct=99i,device_free_pct=100i,device_total_bytes=4294967296i,device_used_bytes=0i,disallow_null_setname=false,enable_benchmarks_batch_sub=false,enable_benchmarks_read=false,enable_benchmarks_storage=false,enable_benchmarks_udf=false,enable_benchmarks_udf_sub=false,enable_benchmarks_write=false,enable_hist_proxy=false,enable_xdr=false,evict_hist_buckets=10000i,evict_tenths_pct=5i,evict_ttl=0i,evicted_objects=0i,expired_objects=0i,fail_generation=0i,fail_key_busy=0i,fail_record_too_big=0i,fail_xdr_forbidden=0i,geo2dsphere_within.earth_radius_meters=6371000i,geo2dsphere_within.level_mod=1i,geo2dsphere_within.max_cells=12i,geo2dsphere_within.max_level=30i,geo2dsphere_within.min_level=1i,geo2dsphere_within.strict=true,geo_region_query_cells=0i,geo_region_query_falsepos=0i,geo_region_query_points=0i,geo_region_query_reqs=0i,high_water_disk_pct=50i,high_water_memory_pct=60i,hwm_breached=false,ldt_enabled=false,ldt_gc_rate=0i,ldt_page_size=8192i,master_objects=0i,master_sub_objects=0i,max_ttl=315360000i,max_void_time=0i,memory_free_pct=100i,memory_size=1073741824i,memory_used_bytes=0i,memory_used_data_bytes=0i,memory_used_index_bytes=0i,memory_used_sindex_bytes=0i,migrate_order=5i,migrate_record_receives=0i,migrate_record_retransmits=0i,migrate_records_skipped=0i,migrate_records_transmitted=0i,migrate_rx_instances=0i,migrate_rx_partitions_active=0i,migrate_rx_partitions_initial=0i,migrate_rx_partitions_remaining=0i,migrate_sleep=1i,migrate_tx_instances=0i,migrate_tx_partitions_active=0i,migrate_tx_partitions_imbalance=0i,migrate_tx_partitions_initial=0i,migrate_tx_partitions_remaining=0i,non_expirable_objects=0i,ns_forward_xdr_writes=false,nsup_cycle_duration=0i,nsup_cycle_sleep_pct=0i,objects=0i,prole_objects=0i,prole_sub_objects=0i,query_agg=0i,query_agg_abort=0i,query_agg_avg_rec_count=0i,query_agg_error=0i,query_agg_success=0i,query_fail=0i,query_long_queue_full=0i,query_long_reqs=0i,query_lookup_abort=0i,query_lookup_avg_rec_count=0i,query_lookup_error=0i,query_lookup_success=0i,query_lookups=0i,query_reqs=0i,query_short_queue_full=0i,query_short_reqs=0i,query_udf_bg_failure=0i,query_udf_bg_success=0i,read_consistency_level_override="off",repl_factor=1i,scan_aggr_abort=0i,scan_aggr_complete=0i,scan_aggr_error=0i,scan_basic_abort=0i,scan_basic_complete=0i,scan_basic_error=0i,scan_udf_bg_abort=0i,scan_udf_bg_complete=0i,scan_udf_bg_error=0i,set_deleted_objects=0i,sets_enable_xdr=true,sindex.data_max_memory="ULONG_MAX",sindex.num_partitions=32i,single_bin=false,stop_writes=false,stop_writes_pct=90i,storage_engine="device",storage_engine.cold_start_empty=false,storage_engine.data_in_memory=true,storage_engine.defrag_lwm_pct=50i,storage_engine.defrag_queue_min=0i,storage_engine.defrag_sleep=1000i,storage_engine.defrag_startup_minimum=10i,storage_engine.disable_odirect=false,storage_engine.enable_osync=false,storage_engine.file="/opt/aerospike/data/test.dat",storage_engine.filesize=4294967296i,storage_engine.flush_max_ms=1000i,storage_engine.fsync_max_sec=0i,storage_engine.max_write_cache=67108864i,storage_engine.min_avail_pct=5i,storage_engine.post_write_queue=0i,storage_engine.scheduler_mode="null",storage_engine.write_block_size=1048576i,storage_engine.write_threads=1i,sub_objects=0i,udf_sub_lang_delete_success=0i,udf_sub_lang_error=0i,udf_sub_lang_read_success=0i,udf_sub_lang_write_success=0i,udf_sub_tsvc_error=0i,udf_sub_tsvc_timeout=0i,udf_sub_udf_complete=0i,udf_sub_udf_error=0i,udf_sub_udf_timeout=0i,write_commit_level_override="off",xdr_write_error=0i,xdr_write_success=0i,xdr_write_timeout=0i,{test}_query_hist_track_back=300i,{test}_query_hist_track_slice=10i,{test}_query_hist_track_thresholds="1,8,64",{test}_read_hist_track_back=300i,{test}_read_hist_track_slice=10i,{test}_read_hist_track_thresholds="1,8,64",{test}_udf_hist_track_back=300i,{test}_udf_hist_track_slice=10i,{test}_udf_hist_track_thresholds="1,8,64",{test}_write_hist_track_back=300i,{test}_write_hist_track_slice=10i,{test}_write_hist_track_thresholds="1,8,64" 1468923222000000000 -> aerospike_set,aerospike_host=localhost:3000,node_name=BB99458B42826B0,set=test/test disable_eviction=false,memory_data_bytes=0i,objects=0i,set_enable_xdr="use-default",stop_writes_count=0i,tombstones=0i,truncate_lut=0i 1598033805000000000 ->> aerospike_histogram_ttl,aerospike_host=localhost:3000,namespace=test,node_name=BB98EE5B42826B0,set=test 0=0i,1=0i,10=0i,11=0i,12=0i,13=0i,14=0i,15=0i,16=0i,17=0i,18=0i,19=0i,2=0i,20=0i,21=0i,22=0i,23=0i,24=0i,25=0i,26=0i,27=0i,28=0i,29=0i,3=0i,30=0i,31=0i,32=0i,33=0i,34=0i,35=0i,36=0i,37=0i,38=0i,39=0i,4=0i,40=0i,41=0i,42=0i,43=0i,44=0i,45=0i,46=0i,47=0i,48=0i,49=0i,5=0i,50=0i,51=0i,52=0i,53=0i,54=0i,55=0i,56=0i,57=0i,58=0i,59=0i,6=0i,60=0i,61=0i,62=0i,63=0i,64=0i,65=0i,66=0i,67=0i,68=0i,69=0i,7=0i,70=0i,71=0i,72=0i,73=0i,74=0i,75=0i,76=0i,77=0i,78=0i,79=0i,8=0i,80=0i,81=0i,82=0i,83=0i,84=0i,85=0i,86=0i,87=0i,88=0i,89=0i,9=0i,90=0i,91=0i,92=0i,93=0i,94=0i,95=0i,96=0i,97=0i,98=0i,99=0i 1598034191000000000 - +```text +aerospike_node,aerospike_host=localhost:3000,node_name="BB9020011AC4202" batch_error=0i,batch_index_complete=0i,batch_index_created_buffers=0i,batch_index_destroyed_buffers=0i,batch_index_error=0i,batch_index_huge_buffers=0i,batch_index_initiate=0i,batch_index_queue="0:0,0:0,0:0,0:0",batch_index_timeout=0i,batch_index_unused_buffers=0i,batch_initiate=0i,batch_queue=0i,batch_timeout=0i,client_connections=6i,cluster_integrity=true,cluster_key="8AF422E05281249E",cluster_size=1i,delete_queue=0i,demarshal_error=0i,early_tsvc_batch_sub_error=0i,early_tsvc_client_error=0i,early_tsvc_udf_sub_error=0i,fabric_connections=16i,fabric_msgs_rcvd=0i,fabric_msgs_sent=0i,heartbeat_connections=0i,heartbeat_received_foreign=0i,heartbeat_received_self=0i,info_complete=47i,info_queue=0i,migrate_allowed=true,migrate_partitions_remaining=0i,migrate_progress_recv=0i,migrate_progress_send=0i,objects=0i,paxos_principal="BB9020011AC4202",proxy_in_progress=0i,proxy_retry=0i,query_long_running=0i,query_short_running=0i,reaped_fds=0i,record_refs=0i,rw_in_progress=0i,scans_active=0i,sindex_gc_activity_dur=0i,sindex_gc_garbage_cleaned=0i,sindex_gc_garbage_found=0i,sindex_gc_inactivity_dur=0i,sindex_gc_list_creation_time=0i,sindex_gc_list_deletion_time=0i,sindex_gc_locktimedout=0i,sindex_gc_objects_validated=0i,sindex_ucgarbage_found=0i,sub_objects=0i,system_free_mem_pct=92i,system_swapping=false,tsvc_queue=0i,uptime=1457i 1468923222000000000 +aerospike_namespace,aerospike_host=localhost:3000,namespace=test,node_name="BB9020011AC4202" allow_nonxdr_writes=true,allow_xdr_writes=true,available_bin_names=32768i,batch_sub_proxy_complete=0i,batch_sub_proxy_error=0i,batch_sub_proxy_timeout=0i,batch_sub_read_error=0i,batch_sub_read_not_found=0i,batch_sub_read_success=0i,batch_sub_read_timeout=0i,batch_sub_tsvc_error=0i,batch_sub_tsvc_timeout=0i,client_delete_error=0i,client_delete_not_found=0i,client_delete_success=0i,client_delete_timeout=0i,client_lang_delete_success=0i,client_lang_error=0i,client_lang_read_success=0i,client_lang_write_success=0i,client_proxy_complete=0i,client_proxy_error=0i,client_proxy_timeout=0i,client_read_error=0i,client_read_not_found=0i,client_read_success=0i,client_read_timeout=0i,client_tsvc_error=0i,client_tsvc_timeout=0i,client_udf_complete=0i,client_udf_error=0i,client_udf_timeout=0i,client_write_error=0i,client_write_success=0i,client_write_timeout=0i,cold_start_evict_ttl=4294967295i,conflict_resolution_policy="generation",current_time=206619222i,data_in_index=false,default_ttl=432000i,device_available_pct=99i,device_free_pct=100i,device_total_bytes=4294967296i,device_used_bytes=0i,disallow_null_setname=false,enable_benchmarks_batch_sub=false,enable_benchmarks_read=false,enable_benchmarks_storage=false,enable_benchmarks_udf=false,enable_benchmarks_udf_sub=false,enable_benchmarks_write=false,enable_hist_proxy=false,enable_xdr=false,evict_hist_buckets=10000i,evict_tenths_pct=5i,evict_ttl=0i,evicted_objects=0i,expired_objects=0i,fail_generation=0i,fail_key_busy=0i,fail_record_too_big=0i,fail_xdr_forbidden=0i,geo2dsphere_within.earth_radius_meters=6371000i,geo2dsphere_within.level_mod=1i,geo2dsphere_within.max_cells=12i,geo2dsphere_within.max_level=30i,geo2dsphere_within.min_level=1i,geo2dsphere_within.strict=true,geo_region_query_cells=0i,geo_region_query_falsepos=0i,geo_region_query_points=0i,geo_region_query_reqs=0i,high_water_disk_pct=50i,high_water_memory_pct=60i,hwm_breached=false,ldt_enabled=false,ldt_gc_rate=0i,ldt_page_size=8192i,master_objects=0i,master_sub_objects=0i,max_ttl=315360000i,max_void_time=0i,memory_free_pct=100i,memory_size=1073741824i,memory_used_bytes=0i,memory_used_data_bytes=0i,memory_used_index_bytes=0i,memory_used_sindex_bytes=0i,migrate_order=5i,migrate_record_receives=0i,migrate_record_retransmits=0i,migrate_records_skipped=0i,migrate_records_transmitted=0i,migrate_rx_instances=0i,migrate_rx_partitions_active=0i,migrate_rx_partitions_initial=0i,migrate_rx_partitions_remaining=0i,migrate_sleep=1i,migrate_tx_instances=0i,migrate_tx_partitions_active=0i,migrate_tx_partitions_imbalance=0i,migrate_tx_partitions_initial=0i,migrate_tx_partitions_remaining=0i,non_expirable_objects=0i,ns_forward_xdr_writes=false,nsup_cycle_duration=0i,nsup_cycle_sleep_pct=0i,objects=0i,prole_objects=0i,prole_sub_objects=0i,query_agg=0i,query_agg_abort=0i,query_agg_avg_rec_count=0i,query_agg_error=0i,query_agg_success=0i,query_fail=0i,query_long_queue_full=0i,query_long_reqs=0i,query_lookup_abort=0i,query_lookup_avg_rec_count=0i,query_lookup_error=0i,query_lookup_success=0i,query_lookups=0i,query_reqs=0i,query_short_queue_full=0i,query_short_reqs=0i,query_udf_bg_failure=0i,query_udf_bg_success=0i,read_consistency_level_override="off",repl_factor=1i,scan_aggr_abort=0i,scan_aggr_complete=0i,scan_aggr_error=0i,scan_basic_abort=0i,scan_basic_complete=0i,scan_basic_error=0i,scan_udf_bg_abort=0i,scan_udf_bg_complete=0i,scan_udf_bg_error=0i,set_deleted_objects=0i,sets_enable_xdr=true,sindex.data_max_memory="ULONG_MAX",sindex.num_partitions=32i,single_bin=false,stop_writes=false,stop_writes_pct=90i,storage_engine="device",storage_engine.cold_start_empty=false,storage_engine.data_in_memory=true,storage_engine.defrag_lwm_pct=50i,storage_engine.defrag_queue_min=0i,storage_engine.defrag_sleep=1000i,storage_engine.defrag_startup_minimum=10i,storage_engine.disable_odirect=false,storage_engine.enable_osync=false,storage_engine.file="/opt/aerospike/data/test.dat",storage_engine.filesize=4294967296i,storage_engine.flush_max_ms=1000i,storage_engine.fsync_max_sec=0i,storage_engine.max_write_cache=67108864i,storage_engine.min_avail_pct=5i,storage_engine.post_write_queue=0i,storage_engine.scheduler_mode="null",storage_engine.write_block_size=1048576i,storage_engine.write_threads=1i,sub_objects=0i,udf_sub_lang_delete_success=0i,udf_sub_lang_error=0i,udf_sub_lang_read_success=0i,udf_sub_lang_write_success=0i,udf_sub_tsvc_error=0i,udf_sub_tsvc_timeout=0i,udf_sub_udf_complete=0i,udf_sub_udf_error=0i,udf_sub_udf_timeout=0i,write_commit_level_override="off",xdr_write_error=0i,xdr_write_success=0i,xdr_write_timeout=0i,{test}_query_hist_track_back=300i,{test}_query_hist_track_slice=10i,{test}_query_hist_track_thresholds="1,8,64",{test}_read_hist_track_back=300i,{test}_read_hist_track_slice=10i,{test}_read_hist_track_thresholds="1,8,64",{test}_udf_hist_track_back=300i,{test}_udf_hist_track_slice=10i,{test}_udf_hist_track_thresholds="1,8,64",{test}_write_hist_track_back=300i,{test}_write_hist_track_slice=10i,{test}_write_hist_track_thresholds="1,8,64" 1468923222000000000 +aerospike_set,aerospike_host=localhost:3000,node_name=BB99458B42826B0,set=test/test disable_eviction=false,memory_data_bytes=0i,objects=0i,set_enable_xdr="use-default",stop_writes_count=0i,tombstones=0i,truncate_lut=0i 1598033805000000000 +aerospike_histogram_ttl,aerospike_host=localhost:3000,namespace=test,node_name=BB98EE5B42826B0,set=test 0=0i,1=0i,10=0i,11=0i,12=0i,13=0i,14=0i,15=0i,16=0i,17=0i,18=0i,19=0i,2=0i,20=0i,21=0i,22=0i,23=0i,24=0i,25=0i,26=0i,27=0i,28=0i,29=0i,3=0i,30=0i,31=0i,32=0i,33=0i,34=0i,35=0i,36=0i,37=0i,38=0i,39=0i,4=0i,40=0i,41=0i,42=0i,43=0i,44=0i,45=0i,46=0i,47=0i,48=0i,49=0i,5=0i,50=0i,51=0i,52=0i,53=0i,54=0i,55=0i,56=0i,57=0i,58=0i,59=0i,6=0i,60=0i,61=0i,62=0i,63=0i,64=0i,65=0i,66=0i,67=0i,68=0i,69=0i,7=0i,70=0i,71=0i,72=0i,73=0i,74=0i,75=0i,76=0i,77=0i,78=0i,79=0i,8=0i,80=0i,81=0i,82=0i,83=0i,84=0i,85=0i,86=0i,87=0i,88=0i,89=0i,9=0i,90=0i,91=0i,92=0i,93=0i,94=0i,95=0i,96=0i,97=0i,98=0i,99=0i 1598034191000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/aliyuncms.md b/src/writeData/components/telegrafPlugins/aliyuncms.md index e56103834e..e478a20b47 100644 --- a/src/writeData/components/telegrafPlugins/aliyuncms.md +++ b/src/writeData/components/telegrafPlugins/aliyuncms.md @@ -1,9 +1,15 @@ -# Alibaba (Aliyun) CloudMonitor Service Statistics Input Plugin +# Alibaba Cloud Monitor Service (Aliyun) Input Plugin -Here and after we use `Aliyun` instead `Alibaba` as it is default naming -across web console and docs. +This plugin gathers statistics from the +[Alibaba / Aliyun cloud monitoring service][alibaba]. In the following we will +use `Aliyun` instead of `Alibaba` as it's the default naming across the web +console and docs. -This plugin will pull metric statistics from Aliyun CMS. +⭐ Telegraf v1.19.0 +🏷️ cloud +💻 all + +[alibaba]: https://www.alibabacloud.com ## Aliyun Authentication @@ -23,6 +29,15 @@ to authenticate. [1]: https://www.alibabacloud.com/help/doc-detail/53045.htm?spm=a2c63.p38356.b99.127.5cba21fdt5MJKr&parentId=28572 +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -97,46 +112,55 @@ to authenticate. ## How often the discovery API call executed (default 1m) #discovery_interval = "1m" - ## Metrics to Pull (Required) + ## NOTE: Due to the way TOML is parsed, tables must be at the END of the + ## plugin definition, otherwise additional config options are read as part of + ## the table + + ## Metrics to Pull + ## At least one metrics definition required [[inputs.aliyuncms.metrics]] - ## Metrics names to be requested, - ## Description can be found here (per project): - ## https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq - names = ["InstanceActiveConnection", "InstanceNewConnection"] - - ## Dimension filters for Metric (optional). - ## This allows to get additional metric dimension. If dimension is not - ## specified it can be returned or the data can be aggregated - it depends - ## on particular metric, you can find details here: - ## https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq - ## - ## Note, that by default dimension filter includes the list of discovered - ## objects in scope (if discovery is enabled). - # Values specified here would be added into the list of discovered objects. - ## You can specify either single dimension: - #dimensions = '{"instanceId": "p-example"}' - - ## Or you can specify several dimensions at once: - #dimensions = '[{"instanceId": "p-example"},{"instanceId": "q-example"}]' - - ## Enrichment tags, can be added from discovery (if supported) - ## Notation is : - ## To figure out which fields are available, consult the Describe - ## API per project. - ## For example, for SLB: https://api.aliyun.com/#/?product=Slb&version=2014-05-15&api=DescribeLoadBalancers¶ms={}&tab=MOCK&lang=GO - #tag_query_path = [ - # "address:Address", - # "name:LoadBalancerName", - # "cluster_owner:Tags.Tag[?TagKey=='cs.cluster.name'].TagValue | [0]" - # ] - ## The following tags added by default: - ## regionId (if discovery enabled), userId, instanceId. - - ## Allow metrics without discovery data, if discovery is enabled. - ## If set to true, then metric without discovery data would be emitted, otherwise dropped. - ## This cane be of help, in case debugging dimension filters, or partial coverage of - ## discovery scope vs monitoring scope - # allow_dps_without_discovery = false + ## Metrics names to be requested, + ## Description can be found here (per project): + ## https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq + names = ["InstanceActiveConnection", "InstanceNewConnection"] + + ## Dimension filters for Metric (optional) + ## This allows to get additional metric dimension. If dimension is not + ## specified it can be returned or the data can be aggregated - it depends + ## on particular metric, you can find details here: + ## https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq + ## + ## Note, that by default dimension filter includes the list of discovered + ## objects in scope (if discovery is enabled). Values specified here would + ## be added into the list of discovered objects. You can specify either + ## single dimension: + # dimensions = '{"instanceId": "p-example"}' + + ## Or you can specify several dimensions at once: + # dimensions = '[{"instanceId": "p-example"},{"instanceId": "q-example"}]' + + ## Tag Query Path + ## The following tags added by default: + ## * regionId (if discovery enabled) + ## * userId + ## * instanceId + ## Enrichment tags, can be added from discovery (if supported) + ## Notation is + ## : + ## To figure out which fields are available, consult the + ## Describe API per project. For example, for SLB see: + ## https://api.aliyun.com/#/?product=Slb&version=2014-05-15&api=DescribeLoadBalancers¶ms={}&tab=MOCK&lang=GO + # tag_query_path = [ + # "address:Address", + # "name:LoadBalancerName", + # "cluster_owner:Tags.Tag[?TagKey=='cs.cluster.name'].TagValue | [0]" + # ] + + ## Allow metrics without discovery data, if discovery is enabled. + ## If set to true, then metric without discovery data would be emitted, otherwise dropped. + ## This cane be of help, in case debugging dimension filters, or partial coverage of + ## discovery scope vs monitoring scope + # allow_dps_without_discovery = false ``` ### Requirements and Terminology @@ -166,7 +190,6 @@ case](https://en.wikipedia.org/wiki/Snake_case) ## Example Output -```shell -$ ./telegraf --config telegraf.conf --input-filter aliyuncms --test -> aliyuncms_acs_slb_dashboard,instanceId=p-example,regionId=cn-hangzhou,userId=1234567890 latency_average=0.004810798017284538,latency_maximum=0.1100282669067383,latency_minimum=0.0006084442138671875 +```text +aliyuncms_acs_slb_dashboard,instanceId=p-example,regionId=cn-hangzhou,userId=1234567890 latency_average=0.004810798017284538,latency_maximum=0.1100282669067383,latency_minimum=0.0006084442138671875 ``` diff --git a/src/writeData/components/telegrafPlugins/amd_rocm_smi.md b/src/writeData/components/telegrafPlugins/amd_rocm_smi.md index db800713d9..d1c3e4a3a8 100644 --- a/src/writeData/components/telegrafPlugins/amd_rocm_smi.md +++ b/src/writeData/components/telegrafPlugins/amd_rocm_smi.md @@ -1,9 +1,39 @@ # AMD ROCm System Management Interface (SMI) Input Plugin -This plugin uses a query on the [`rocm-smi`][1] binary to pull GPU stats -including memory and GPU usage, temperatures and other. +This plugin gathers statistics including memory and GPU usage, temperatures +etc from [AMD ROCm platform][amd_rocm] GPUs. -[1]: https://github.com/RadeonOpenCompute/rocm_smi_lib/tree/master/python_smi_tools +> [!IMPORTANT] +> The [`rocm-smi` binary][binary] is required and needs to be installed on the +> system. + +⭐ Telegraf v1.20.0 +🏷️ hardware, system +💻 all + +[amd_rocm]: https://rocm.docs.amd.com/ +[binary]: https://github.com/RadeonOpenCompute/rocm_smi_lib/tree/master/python_smi_tools + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Startup error behavior options + +In addition to the plugin-specific and global configuration settings the plugin +supports options for specifying the behavior when experiencing startup errors +using the `startup_error_behavior` setting. Available values are: + +- `error`: Telegraf with stop and exit in case of startup errors. This is the + default behavior. +- `ignore`: Telegraf will ignore startup errors for this plugin and disables it + but continues processing for all other plugins. +- `retry`: NOT AVAILABLE ## Configuration @@ -27,10 +57,10 @@ including memory and GPU usage, temperatures and other. - fields - `driver_version` (integer) - - `fan_speed`(integer) - - `memory_total`(integer B) - - `memory_used`(integer B) - - `memory_free`(integer B) + - `fan_speed` (integer) + - `memory_total` (integer, B) + - `memory_used` (integer, B) + - `memory_free` (integer, B) - `temperature_sensor_edge` (float, Celsius) - `temperature_sensor_junction` (float, Celsius) - `temperature_sensor_memory` (float, Celsius) @@ -38,7 +68,13 @@ including memory and GPU usage, temperatures and other. - `utilization_memory` (integer, percentage) - `clocks_current_sm` (integer, Mhz) - `clocks_current_memory` (integer, Mhz) + - `clocks_current_display` (integer, Mhz) + - `clocks_current_fabric` (integer, Mhz) + - `clocks_current_system` (integer, Mhz) - `power_draw` (float, Watt) + - `card_series` (string) + - `card_model` (string) + - `card_vendor` (string) ## Troubleshooting @@ -55,7 +91,7 @@ with ROCm version. ## Example Output -```shell +```text amd_rocm_smi,gpu_id=0x6861,gpu_unique_id=0x2150e7d042a1124,host=ali47xl,name=card0 clocks_current_memory=167i,clocks_current_sm=852i,driver_version=51114i,fan_speed=14i,memory_free=17145282560i,memory_total=17163091968i,memory_used=17809408i,power_draw=7,temperature_sensor_edge=28,temperature_sensor_junction=29,temperature_sensor_memory=92,utilization_gpu=0i 1630572551000000000 amd_rocm_smi,gpu_id=0x6861,gpu_unique_id=0x2150e7d042a1124,host=ali47xl,name=card0 clocks_current_memory=167i,clocks_current_sm=852i,driver_version=51114i,fan_speed=14i,memory_free=17145282560i,memory_total=17163091968i,memory_used=17809408i,power_draw=7,temperature_sensor_edge=29,temperature_sensor_junction=30,temperature_sensor_memory=91,utilization_gpu=0i 1630572701000000000 amd_rocm_smi,gpu_id=0x6861,gpu_unique_id=0x2150e7d042a1124,host=ali47xl,name=card0 clocks_current_memory=167i,clocks_current_sm=852i,driver_version=51114i,fan_speed=14i,memory_free=17145282560i,memory_total=17163091968i,memory_used=17809408i,power_draw=7,temperature_sensor_edge=29,temperature_sensor_junction=29,temperature_sensor_memory=92,utilization_gpu=0i 1630572749000000000 @@ -69,6 +105,6 @@ of versions and small set of GPUs. Currently the latest ROCm version tested is information provided by `rocm-smi` can vary so that some fields would start/stop appearing in the metrics upon updates. The `rocm-smi` JSON output is not perfectly homogeneous and is possibly changing in the future, hence parsing and -unmarshaling can start failing upon updating ROCm. +unmarshalling can start failing upon updating ROCm. Inspired by the current state of the art of the `nvidia-smi` plugin. diff --git a/src/writeData/components/telegrafPlugins/amqp_consumer.md b/src/writeData/components/telegrafPlugins/amqp_consumer.md index 04c851fc44..965b3bee92 100644 --- a/src/writeData/components/telegrafPlugins/amqp_consumer.md +++ b/src/writeData/components/telegrafPlugins/amqp_consumer.md @@ -1,18 +1,69 @@ # AMQP Consumer Input Plugin -This plugin provides a consumer for use with AMQP 0-9-1, a prominent -implementation of this protocol being [RabbitMQ](https://www.rabbitmq.com/). +This plugin consumes messages from an Advanced Message Queuing Protocol v0.9.1 +broker. A prominent implementation of this protocol is [RabbitMQ][rabbitmq]. -Metrics are read from a topic exchange using the configured queue and -binding_key. +Metrics are read from a topic exchange using the configured queue and binding +key. The message payloads must be formatted in one of the supported +[data formats][data_formats]. -Message payload should be formatted in one of the [Telegraf Data -Formats](https://github.com/influxdata/telegraf/tree/master/docs/DATA_FORMATS_INPUT.md). +For an introduction check the [AMQP concepts page][amqp_concepts] and the +[RabbitMQ getting started guide][rabbitmq_getting_started]. -For an introduction to AMQP see: +⭐ Telegraf v1.3.0 +🏷️ messaging +💻 all -- [amqp - concepts](https://www.rabbitmq.com/tutorials/amqp-concepts.html) -- [rabbitmq: getting started](https://www.rabbitmq.com/getstarted.html) +[amqp_concepts]: https://www.rabbitmq.com/tutorials/amqp-concepts.html +[data_formats]: /docs/DATA_FORMATS_INPUT.md +[rabbitmq]: https://www.rabbitmq.com +[rabbitmq_getting_started]: https://www.rabbitmq.com/getstarted.html + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Startup error behavior options + +In addition to the plugin-specific and global configuration settings the plugin +supports options for specifying the behavior when experiencing startup errors +using the `startup_error_behavior` setting. Available values are: + +- `error`: Telegraf with stop and exit in case of startup errors. This is the + default behavior. +- `ignore`: Telegraf will ignore startup errors for this plugin and disables it + but continues processing for all other plugins. +- `retry`: Telegraf will try to startup the plugin in every gather or write + cycle in case of startup errors. The plugin is disabled until + the startup succeeds. +- `probe`: Telegraf will probe the plugin's function (if possible) and disables + the plugin in case probing fails. If the plugin does not support + probing, Telegraf will behave as if `ignore` was set instead. + +## Secret-store support + +This plugin supports secrets from secret-stores for the `username` and +`password` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -53,6 +104,14 @@ For an introduction to AMQP see: ## If true, queue will be passively declared. # queue_passive = false + ## Additional arguments when consuming from Queue + # queue_consume_arguments = { } + # queue_consume_arguments = {"x-stream-offset" = "first"} + + ## Additional queue arguments. + # queue_arguments = { } + # queue_arguments = {"x-max-length" = 100} + ## A binding between the exchange and queue using this binding key is ## created. If unset, no binding is created. binding_key = "#" @@ -60,16 +119,21 @@ For an introduction to AMQP see: ## Maximum number of messages server should give to the worker. # prefetch_count = 50 - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 + ## Timeout for establishing the connection to a broker + # timeout = "30s" + ## Auth method. PLAIN and EXTERNAL are supported ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as ## described here: https://www.rabbitmq.com/plugins.html @@ -82,13 +146,48 @@ For an introduction to AMQP see: ## Use TLS but skip chain & host verification # insecure_skip_verify = false - ## Content encoding for message payloads, can be set to "gzip" to or - ## "identity" to apply no encoding. + ## Content encoding for message payloads, can be set to + ## "gzip", "identity" or "auto" + ## - Use "gzip" to decode gzip + ## - Use "identity" to apply no encoding + ## - Use "auto" determine the encoding using the ContentEncoding header # content_encoding = "identity" + ## Maximum size of decoded message. + ## Acceptable units are B, KiB, KB, MiB, MB... + ## Without quotes and units, interpreted as size in bytes. + # max_decompression_size = "500MB" + ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md data_format = "influx" ``` + +## Message acknowledgement behavior + +This plugin tracks metrics to report the delivery state to the broker. + +Messages are **acknowledged** (ACK) in the broker if they were successfully +parsed and delivered to all corresponding output sinks. + +Messages are **not acknowledged** (NACK) if parsing of the messages fails and no +metrics were created. In this case requeueing is disabled so messages will not +be sent out to any other queue. The message will then be discarded or sent to a +dead-letter exchange depending on the server configuration. See +[RabitMQ documentation][rabbitmq_doc] for more details. + +Messages are **rejected** (REJECT) if the messages were parsed correctly but +could not be delivered e.g. due to output-service outages. Requeueing is +disabled in this case and messages will be discarded by the server. See +[RabitMQ documentation][rabbitmq_doc] for more details. + +[rabbitmq_doc]: https://www.rabbitmq.com/docs/confirms + +## Metrics + +The format of metrics produced by this plugin depends on the content and +data format of received messages. + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/apache.md b/src/writeData/components/telegrafPlugins/apache.md index de596bec0c..480160e886 100644 --- a/src/writeData/components/telegrafPlugins/apache.md +++ b/src/writeData/components/telegrafPlugins/apache.md @@ -1,15 +1,29 @@ # Apache Input Plugin -The Apache plugin collects server performance information using the -[`mod_status`](https://httpd.apache.org/docs/2.4/mod/mod_status.html) module of -the [Apache HTTP Server](https://httpd.apache.org/). +This plugin collects performance information from [Apache HTTP Servers][apache] +using the [`mod_status` module][mod_status_module]. Typically, this module is +configured to expose a page at the `/server-status?auto` endpoint the server. -Typically, the `mod_status` module is configured to expose a page at the -`/server-status?auto` location of the Apache server. The -[ExtendedStatus](https://httpd.apache.org/docs/2.4/mod/core.html#extendedstatus) -option must be enabled in order to collect all available fields. For -information about how to configure your server reference the [module -documentation](https://httpd.apache.org/docs/2.4/mod/mod_status.html#enable). +The [ExtendedStatus option][extended_status] must be enabled in order to collect +all available fields. For information about configuration of your server check +the [module documentation][mod_status_module]. + +⭐ Telegraf v1.8.0 +🏷️ server, web +💻 all + +[apache]: https://httpd.apache.org +[extended_status]: https://httpd.apache.org/docs/current/mod/core.html#extendedstatus +[mod_status_module]: https://httpd.apache.org/docs/current/mod/mod_status.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -87,6 +101,6 @@ number of requests in the given state: ## Example Output -```shell +```text apache,port=80,server=debian-stretch-apache BusyWorkers=1,BytesPerReq=0,BytesPerSec=0,CPUChildrenSystem=0,CPUChildrenUser=0,CPULoad=0.00995025,CPUSystem=0.01,CPUUser=0.01,ConnsAsyncClosing=0,ConnsAsyncKeepAlive=0,ConnsAsyncWriting=0,ConnsTotal=0,IdleWorkers=49,Load1=0.01,Load15=0,Load5=0,ParentServerConfigGeneration=3,ParentServerMPMGeneration=2,ReqPerSec=0.00497512,ServerUptimeSeconds=201,TotalAccesses=1,TotalkBytes=0,Uptime=201,scboard_closing=0,scboard_dnslookup=0,scboard_finishing=0,scboard_idle_cleanup=0,scboard_keepalive=0,scboard_logging=0,scboard_open=100,scboard_reading=0,scboard_sending=1,scboard_starting=0,scboard_waiting=49 1502489900000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/apcupsd.md b/src/writeData/components/telegrafPlugins/apcupsd.md index a5ad298385..dbbe294519 100644 --- a/src/writeData/components/telegrafPlugins/apcupsd.md +++ b/src/writeData/components/telegrafPlugins/apcupsd.md @@ -1,10 +1,23 @@ -# APCUPSD Input Plugin +# APC UPSD Input Plugin -This plugin reads data from an apcupsd daemon over its NIS network protocol. +This plugin gathers data from one or more [apcupsd daemon][apcupsd_daemon] over +the NIS network protocol. To query a server, the daemon must be running and be +accessible. -## Requirements +⭐ Telegraf v1.12.0 +🏷️ hardware, server +💻 all -apcupsd should be installed and it's daemon should be running. +[apcupsd_daemon]: https://sourceforge.net/projects/apcupsd/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -24,8 +37,8 @@ apcupsd should be installed and it's daemon should be running. - apcupsd - tags: - serial - - status (string representing the set status_flags) - ups_name + - status (string representing the set status_flags) - model - fields: - status_flags ([status-bits][]) @@ -38,15 +51,18 @@ apcupsd should be installed and it's daemon should be running. - battery_voltage - input_frequency - time_on_battery_ns - - battery_date + - cumulative_time_on_battery_ns - nominal_input_voltage - nominal_battery_voltage - nominal_power - firmware + - battery_date + - last_transfer + - number_transfers ## Example Output -```shell +```text apcupsd,serial=AS1231515,status=ONLINE,ups_name=name1 time_on_battery=0,load_percent=9.7,time_left_minutes=98,output_voltage=230.4,internal_temp=32.4,battery_voltage=27.4,input_frequency=50.2,input_voltage=230.4,battery_charge_percent=100,status_flags=8i 1490035922000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/aurora.md b/src/writeData/components/telegrafPlugins/aurora.md index 2ff7f7680b..737bf7b799 100644 --- a/src/writeData/components/telegrafPlugins/aurora.md +++ b/src/writeData/components/telegrafPlugins/aurora.md @@ -1,10 +1,24 @@ -# Aurora Input Plugin +# Apache Aurora Input Plugin -The Aurora Input Plugin gathers metrics from [Apache -Aurora](https://aurora.apache.org/) schedulers. +This plugin gathers metrics from [Apache Aurora][aurora] schedulers. For +monitoring recommendations check the [Monitoring your Aurora cluster][monitoring] +article. -For monitoring recommendations reference [Monitoring your Aurora -cluster](https://aurora.apache.org/documentation/latest/operations/monitoring/) +⭐ Telegraf v1.7.0 +🏷️ applications, server +💻 all + +[aurora]: https://aurora.apache.org +[monitoring]: https://aurora.apache.org/documentation/latest/operations/monitoring + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -63,6 +77,6 @@ curl http://127.0.0.1:8081/vars The example output below has been trimmed. -```shell -> aurora,role=leader,scheduler=http://debian-stretch-aurora-coordinator-3.virt:8081 CronBatchWorker_batch_locked_events=0i,CronBatchWorker_batch_locked_events_per_sec=0,CronBatchWorker_batch_locked_nanos_per_event=0,CronBatchWorker_batch_locked_nanos_total=0i,CronBatchWorker_batch_locked_nanos_total_per_sec=0,CronBatchWorker_batch_unlocked_events=0i,CronBatchWorker_batch_unlocked_events_per_sec=0,CronBatchWorker_batch_unlocked_nanos_per_event=0,CronBatchWorker_batch_unlocked_nanos_total=0i,CronBatchWorker_batch_unlocked_nanos_total_per_sec=0,CronBatchWorker_batches_processed=0i,CronBatchWorker_items_processed=0i,CronBatchWorker_last_processed_batch_size=0i,CronBatchWorker_queue_size=0i,TaskEventBatchWorker_batch_locked_events=0i,TaskEventBatchWorker_batch_locked_events_per_sec=0,TaskEventBatchWorker_batch_locked_nanos_per_event=0,TaskEventBatchWorker_batch_locked_nanos_total=0i,TaskEventBatchWorker_batch_locked_nanos_total_per_sec=0,TaskEventBatchWorker_batch_unlocked_events=0i,TaskEventBatchWorker_batch_unlocked_events_per_sec=0,TaskEventBatchWorker_batch_unlocked_nanos_per_event=0,TaskEventBatchWorker_batch_unlocked_nanos_total=0i,TaskEventBatchWorker_batch_unlocked_nanos_total_per_sec=0,TaskEventBatchWorker_batches_processed=0i,TaskEventBatchWorker_items_processed=0i,TaskEventBatchWorker_last_processed_batch_size=0i,TaskEventBatchWorker_queue_size=0i,TaskGroupBatchWorker_batch_locked_events=0i,TaskGroupBatchWorker_batch_locked_events_per_sec=0,TaskGroupBatchWorker_batch_locked_nanos_per_event=0,TaskGroupBatchWorker_batch_locked_nanos_total=0i,TaskGroupBatchWorker_batch_locked_nanos_total_per_sec=0,TaskGroupBatchWorker_batch_unlocked_events=0i,TaskGroupBatchWorker_batch_unlocked_events_per_sec=0,TaskGroupBatchWorker_batch_unlocked_nanos_per_event=0,TaskGroupBatchWorker_batch_unlocked_nanos_total=0i,TaskGroupBatchWorker_batch_unlocked_nanos_total_per_sec=0,TaskGroupBatchWorker_batches_processed=0i,TaskGroupBatchWorker_items_processed=0i,TaskGroupBatchWorker_last_processed_batch_size=0i,TaskGroupBatchWorker_queue_size=0i,assigner_launch_failures=0i,async_executor_uncaught_exceptions=0i,async_tasks_completed=1i,cron_job_collisions=0i,cron_job_concurrent_runs=0i,cron_job_launch_failures=0i,cron_job_misfires=0i,cron_job_parse_failures=0i,cron_job_triggers=0i,cron_jobs_loaded=1i,empty_slots_dedicated_large=0i,empty_slots_dedicated_medium=0i,empty_slots_dedicated_revocable_large=0i,empty_slots_dedicated_revocable_medium=0i,empty_slots_dedicated_revocable_small=0i,empty_slots_dedicated_revocable_xlarge=0i,empty_slots_dedicated_small=0i,empty_slots_dedicated_xlarge=0i,empty_slots_large=0i,empty_slots_medium=0i,empty_slots_revocable_large=0i,empty_slots_revocable_medium=0i,empty_slots_revocable_small=0i,empty_slots_revocable_xlarge=0i,empty_slots_small=0i,empty_slots_xlarge=0i,event_bus_dead_events=0i,event_bus_exceptions=1i,framework_registered=1i,globally_banned_offers_size=0i,http_200_responses_events=55i,http_200_responses_events_per_sec=0,http_200_responses_nanos_per_event=0,http_200_responses_nanos_total=310416694i,http_200_responses_nanos_total_per_sec=0,job_update_delete_errors=0i,job_update_recovery_errors=0i,job_update_state_change_errors=0i,job_update_store_delete_all_events=1i,job_update_store_delete_all_events_per_sec=0,job_update_store_delete_all_nanos_per_event=0,job_update_store_delete_all_nanos_total=1227254i,job_update_store_delete_all_nanos_total_per_sec=0,job_update_store_fetch_details_query_events=74i,job_update_store_fetch_details_query_events_per_sec=0,job_update_store_fetch_details_query_nanos_per_event=0,job_update_store_fetch_details_query_nanos_total=24643149i,job_update_store_fetch_details_query_nanos_total_per_sec=0,job_update_store_prune_history_events=59i,job_update_store_prune_history_events_per_sec=0,job_update_store_prune_history_nanos_per_event=0,job_update_store_prune_history_nanos_total=262868218i,job_update_store_prune_history_nanos_total_per_sec=0,job_updates_pruned=0i,jvm_available_processors=2i,jvm_class_loaded_count=6707i,jvm_class_total_loaded_count=6732i,jvm_class_unloaded_count=25i,jvm_gc_PS_MarkSweep_collection_count=2i,jvm_gc_PS_MarkSweep_collection_time_ms=223i,jvm_gc_PS_Scavenge_collection_count=27i,jvm_gc_PS_Scavenge_collection_time_ms=1691i,jvm_gc_collection_count=29i,jvm_gc_collection_time_ms=1914i,jvm_memory_free_mb=65i,jvm_memory_heap_mb_committed=157i,jvm_memory_heap_mb_max=446i,jvm_memory_heap_mb_used=91i,jvm_memory_max_mb=446i,jvm_memory_mb_total=157i,jvm_memory_non_heap_mb_committed=50i,jvm_memory_non_heap_mb_max=0i,jvm_memory_non_heap_mb_used=49i,jvm_threads_active=47i,jvm_threads_daemon=28i,jvm_threads_peak=48i,jvm_threads_started=62i,jvm_time_ms=1526530686927i,jvm_uptime_secs=79947i,log_entry_serialize_events=16i,log_entry_serialize_events_per_sec=0,log_entry_serialize_nanos_per_event=0,log_entry_serialize_nanos_total=4815321i,log_entry_serialize_nanos_total_per_sec=0,log_manager_append_events=16i,log_manager_append_events_per_sec=0,log_manager_append_nanos_per_event=0,log_manager_append_nanos_total=506453428i,log_manager_append_nanos_total_per_sec=0,log_manager_deflate_events=14i,log_manager_deflate_events_per_sec=0,log_manager_deflate_nanos_per_event=0,log_manager_deflate_nanos_total=21010565i,log_manager_deflate_nanos_total_per_sec=0 1526530687000000000 +```text +aurora,role=leader,scheduler=http://debian-stretch-aurora-coordinator-3.virt:8081 CronBatchWorker_batch_locked_events=0i,CronBatchWorker_batch_locked_events_per_sec=0,CronBatchWorker_batch_locked_nanos_per_event=0,CronBatchWorker_batch_locked_nanos_total=0i,CronBatchWorker_batch_locked_nanos_total_per_sec=0,CronBatchWorker_batch_unlocked_events=0i,CronBatchWorker_batch_unlocked_events_per_sec=0,CronBatchWorker_batch_unlocked_nanos_per_event=0,CronBatchWorker_batch_unlocked_nanos_total=0i,CronBatchWorker_batch_unlocked_nanos_total_per_sec=0,CronBatchWorker_batches_processed=0i,CronBatchWorker_items_processed=0i,CronBatchWorker_last_processed_batch_size=0i,CronBatchWorker_queue_size=0i,TaskEventBatchWorker_batch_locked_events=0i,TaskEventBatchWorker_batch_locked_events_per_sec=0,TaskEventBatchWorker_batch_locked_nanos_per_event=0,TaskEventBatchWorker_batch_locked_nanos_total=0i,TaskEventBatchWorker_batch_locked_nanos_total_per_sec=0,TaskEventBatchWorker_batch_unlocked_events=0i,TaskEventBatchWorker_batch_unlocked_events_per_sec=0,TaskEventBatchWorker_batch_unlocked_nanos_per_event=0,TaskEventBatchWorker_batch_unlocked_nanos_total=0i,TaskEventBatchWorker_batch_unlocked_nanos_total_per_sec=0,TaskEventBatchWorker_batches_processed=0i,TaskEventBatchWorker_items_processed=0i,TaskEventBatchWorker_last_processed_batch_size=0i,TaskEventBatchWorker_queue_size=0i,TaskGroupBatchWorker_batch_locked_events=0i,TaskGroupBatchWorker_batch_locked_events_per_sec=0,TaskGroupBatchWorker_batch_locked_nanos_per_event=0,TaskGroupBatchWorker_batch_locked_nanos_total=0i,TaskGroupBatchWorker_batch_locked_nanos_total_per_sec=0,TaskGroupBatchWorker_batch_unlocked_events=0i,TaskGroupBatchWorker_batch_unlocked_events_per_sec=0,TaskGroupBatchWorker_batch_unlocked_nanos_per_event=0,TaskGroupBatchWorker_batch_unlocked_nanos_total=0i,TaskGroupBatchWorker_batch_unlocked_nanos_total_per_sec=0,TaskGroupBatchWorker_batches_processed=0i,TaskGroupBatchWorker_items_processed=0i,TaskGroupBatchWorker_last_processed_batch_size=0i,TaskGroupBatchWorker_queue_size=0i,assigner_launch_failures=0i,async_executor_uncaught_exceptions=0i,async_tasks_completed=1i,cron_job_collisions=0i,cron_job_concurrent_runs=0i,cron_job_launch_failures=0i,cron_job_misfires=0i,cron_job_parse_failures=0i,cron_job_triggers=0i,cron_jobs_loaded=1i,empty_slots_dedicated_large=0i,empty_slots_dedicated_medium=0i,empty_slots_dedicated_revocable_large=0i,empty_slots_dedicated_revocable_medium=0i,empty_slots_dedicated_revocable_small=0i,empty_slots_dedicated_revocable_xlarge=0i,empty_slots_dedicated_small=0i,empty_slots_dedicated_xlarge=0i,empty_slots_large=0i,empty_slots_medium=0i,empty_slots_revocable_large=0i,empty_slots_revocable_medium=0i,empty_slots_revocable_small=0i,empty_slots_revocable_xlarge=0i,empty_slots_small=0i,empty_slots_xlarge=0i,event_bus_dead_events=0i,event_bus_exceptions=1i,framework_registered=1i,globally_banned_offers_size=0i,http_200_responses_events=55i,http_200_responses_events_per_sec=0,http_200_responses_nanos_per_event=0,http_200_responses_nanos_total=310416694i,http_200_responses_nanos_total_per_sec=0,job_update_delete_errors=0i,job_update_recovery_errors=0i,job_update_state_change_errors=0i,job_update_store_delete_all_events=1i,job_update_store_delete_all_events_per_sec=0,job_update_store_delete_all_nanos_per_event=0,job_update_store_delete_all_nanos_total=1227254i,job_update_store_delete_all_nanos_total_per_sec=0,job_update_store_fetch_details_query_events=74i,job_update_store_fetch_details_query_events_per_sec=0,job_update_store_fetch_details_query_nanos_per_event=0,job_update_store_fetch_details_query_nanos_total=24643149i,job_update_store_fetch_details_query_nanos_total_per_sec=0,job_update_store_prune_history_events=59i,job_update_store_prune_history_events_per_sec=0,job_update_store_prune_history_nanos_per_event=0,job_update_store_prune_history_nanos_total=262868218i,job_update_store_prune_history_nanos_total_per_sec=0,job_updates_pruned=0i,jvm_available_processors=2i,jvm_class_loaded_count=6707i,jvm_class_total_loaded_count=6732i,jvm_class_unloaded_count=25i,jvm_gc_PS_MarkSweep_collection_count=2i,jvm_gc_PS_MarkSweep_collection_time_ms=223i,jvm_gc_PS_Scavenge_collection_count=27i,jvm_gc_PS_Scavenge_collection_time_ms=1691i,jvm_gc_collection_count=29i,jvm_gc_collection_time_ms=1914i,jvm_memory_free_mb=65i,jvm_memory_heap_mb_committed=157i,jvm_memory_heap_mb_max=446i,jvm_memory_heap_mb_used=91i,jvm_memory_max_mb=446i,jvm_memory_mb_total=157i,jvm_memory_non_heap_mb_committed=50i,jvm_memory_non_heap_mb_max=0i,jvm_memory_non_heap_mb_used=49i,jvm_threads_active=47i,jvm_threads_daemon=28i,jvm_threads_peak=48i,jvm_threads_started=62i,jvm_time_ms=1526530686927i,jvm_uptime_secs=79947i,log_entry_serialize_events=16i,log_entry_serialize_events_per_sec=0,log_entry_serialize_nanos_per_event=0,log_entry_serialize_nanos_total=4815321i,log_entry_serialize_nanos_total_per_sec=0,log_manager_append_events=16i,log_manager_append_events_per_sec=0,log_manager_append_nanos_per_event=0,log_manager_append_nanos_total=506453428i,log_manager_append_nanos_total_per_sec=0,log_manager_deflate_events=14i,log_manager_deflate_events_per_sec=0,log_manager_deflate_nanos_per_event=0,log_manager_deflate_nanos_total=21010565i,log_manager_deflate_nanos_total_per_sec=0 1526530687000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/azure_storage_queue.md b/src/writeData/components/telegrafPlugins/azure_storage_queue.md index 7bcaab60e6..1467b73210 100644 --- a/src/writeData/components/telegrafPlugins/azure_storage_queue.md +++ b/src/writeData/components/telegrafPlugins/azure_storage_queue.md @@ -1,19 +1,33 @@ -# Azure Storage Queue Input Plugin +# Azure Queue Storage Input Plugin -This plugin gathers sizes of Azure Storage Queues. +This plugin gathers queue sizes from the [Azure Queue Storage][azure_queues] +service, storing a large numbers of messages. + +⭐ Telegraf v1.13.0 +🏷️ cloud +💻 all + +[azure_queues]: https://learn.microsoft.com/en-us/azure/storage/queues + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Gather Azure Storage Queue metrics [[inputs.azure_storage_queue]] - ## Required Azure Storage Account name + ## Azure Storage Account name and shared access key (required) account_name = "mystorageaccount" - - ## Required Azure Storage Account access key account_key = "storageaccountaccesskey" - ## Set to false to disable peeking age of oldest message (executes faster) + ## Disable peeking age of oldest message (faster) # peek_oldest_message_age = true ``` @@ -31,7 +45,7 @@ This plugin gathers sizes of Azure Storage Queues. ## Example Output -```shell +```text azure_storage_queues,queue=myqueue,account=mystorageaccount oldest_message_age=799714900i,size=7i 1565970503000000000 azure_storage_queues,queue=myemptyqueue,account=mystorageaccount size=0i 1565970502000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/bcache.md b/src/writeData/components/telegrafPlugins/bcache.md index 88e4ce600e..fafca60ba2 100644 --- a/src/writeData/components/telegrafPlugins/bcache.md +++ b/src/writeData/components/telegrafPlugins/bcache.md @@ -1,57 +1,28 @@ -# bcache Input Plugin +# Bcache Input Plugin -Get bcache stat from stats_total directory and dirty_data file. +This plugin gathers statistics for the [block layer cache][bcache] +from the `stats_total` directory and `dirty_data` file. -## Metrics - -Meta: - -- tags: `backing_dev=dev bcache_dev=dev` - -Measurement names: - -- dirty_data -- bypassed -- cache_bypass_hits -- cache_bypass_misses -- cache_hit_ratio -- cache_hits -- cache_miss_collisions -- cache_misses -- cache_readaheads +⭐ Telegraf v0.2.0 +🏷️ system +💻 linux -## Description +[bcache]: https://docs.kernel.org/admin-guide/bcache.html -```text -dirty_data - Amount of dirty data for this backing device in the cache. Continuously - updated unlike the cache set's version, but may be slightly off. - -bypassed - Amount of IO (both reads and writes) that has bypassed the cache,cache_bypass_hits -cache_bypass_misses - Hits and misses for IO that is intended to skip the cache are still counted, - but broken out here. - -cache_hits -cache_misses -cache_hit_ratio - Hits and misses are counted per individual IO as bcache sees them; a - partial hit is counted as a miss. +## Global configuration options -cache_miss_collisions - Counts instances where data was going to be inserted into the cache from a - cache miss, but raced with a write and data was already present (usually 0 - since the synchronization for cache misses was rewritten) +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -cache_readaheads - Count of times readahead occurred. -``` +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read metrics of bcache from stats_total and dirty_data +# This plugin ONLY supports Linux [[inputs.bcache]] ## Bcache sets path ## If not specified, then default is: @@ -63,21 +34,32 @@ cache_readaheads bcacheDevs = ["bcache0"] ``` -## Example Output +## Metrics -```shell -./telegraf --config telegraf.conf --input-filter bcache --test -``` +Tags: + +- `backing_dev` device backed by the cache +- `bcache_dev` device used for caching + +Fields: -```shell -* Plugin: bcache, Collection 1 -> [backing_dev="md10" bcache_dev="bcache0"] bcache_dirty_data value=11639194 -> [backing_dev="md10" bcache_dev="bcache0"] bcache_bypassed value=5167704440832 -> [backing_dev="md10" bcache_dev="bcache0"] bcache_cache_bypass_hits value=146270986 -> [backing_dev="md10" bcache_dev="bcache0"] bcache_cache_bypass_misses value=0 -> [backing_dev="md10" bcache_dev="bcache0"] bcache_cache_hit_ratio value=90 -> [backing_dev="md10" bcache_dev="bcache0"] bcache_cache_hits value=511941651 -> [backing_dev="md10" bcache_dev="bcache0"] bcache_cache_miss_collisions value=157678 -> [backing_dev="md10" bcache_dev="bcache0"] bcache_cache_misses value=50647396 -> [backing_dev="md10" bcache_dev="bcache0"] bcache_cache_readaheads value=0 +- `dirty_data`: Amount of dirty data for this backing device in the cache. + Continuously updated unlike the cache set's version, but may be slightly off +- `bypassed`: Amount of IO (both reads and writes) that has bypassed the cache +- `cache_bypass_hits`: Hits for IO that is intended to skip the cache +- `cache_bypass_misses`: Misses for IO that is intended to skip the cache +- `cache_hits`: Hits per individual IO as seen by bcache sees them; a + partial hit is counted as a miss. +- `cache_misses`: Misses per individual IO as seen by bcache sees them; a + partial hit is counted as a miss. +- `cache_hit_ratio`: Hit to miss ratio +- `cache_miss_collisions`: Instances where data was going to be inserted into + cache from a miss, but raced with a write and data was already present + (usually zero since the synchronization for cache misses was rewritten) +- `cache_readaheads`: Count of times readahead occurred. + +## Example Output + +```text +bcache,backing_dev="md10",bcache_dev="bcache0" dirty_data=11639194i,bypassed=5167704440832i,cache_bypass_hits=146270986i,cache_bypass_misses=0i,cache_hit_ratio=90i,cache_hits=511941651i,cache_miss_collisions=157678i,cache_misses=50647396i,cache_readaheads=0i ``` diff --git a/src/writeData/components/telegrafPlugins/beanstalkd.md b/src/writeData/components/telegrafPlugins/beanstalkd.md index 7052444ddd..43d5bbed5b 100644 --- a/src/writeData/components/telegrafPlugins/beanstalkd.md +++ b/src/writeData/components/telegrafPlugins/beanstalkd.md @@ -1,7 +1,23 @@ # Beanstalkd Input Plugin -The `beanstalkd` plugin collects server stats as well as tube stats (reported by -`stats` and `stats-tube` commands respectively). +This plugin collects server statistics as well as tube statistics from a +[Beanstalkd work queue][beanstalkd] as reported by the `stats` and `stats-tube` +server commands. + +⭐ Telegraf v1.8.0 +🏷️ messaging +💻 all + +[beanstalkd]: https://beanstalkd.github.io/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -18,9 +34,10 @@ The `beanstalkd` plugin collects server stats as well as tube stats (reported by ## Metrics -Please see the [Beanstalk Protocol -doc](https://raw.githubusercontent.com/kr/beanstalkd/master/doc/protocol.txt) -for detailed explanation of `stats` and `stats-tube` commands output. +Please see the [Beanstalk protocol doc][protocol] for a detailed explanation of +`stats` and `stats-tube` server commands output. + +[protocol]: https://github.com/beanstalkd/beanstalkd/blob/master/doc/protocol.txt `beanstalkd_overview` – statistical information about the system as a whole @@ -98,8 +115,7 @@ for detailed explanation of `stats` and `stats-tube` commands output. ## Example Output -```shell +```text beanstalkd_overview,host=server.local,hostname=a2ab22ed12e0,id=232485800aa11b24,server=localhost:11300,version=1.10 cmd_stats_tube=29482i,current_jobs_delayed=0i,current_jobs_urgent=6i,cmd_kick=0i,cmd_stats=7378i,cmd_stats_job=0i,current_waiting=0i,max_job_size=65535i,pid=6i,cmd_bury=0i,cmd_reserve_with_timeout=0i,cmd_touch=0i,current_connections=1i,current_jobs_ready=6i,current_producers=0i,cmd_delete=0i,cmd_list_tubes=7369i,cmd_peek_ready=0i,cmd_put=6i,cmd_use=3i,cmd_watch=0i,current_jobs_reserved=0i,rusage_stime=6.07,cmd_list_tubes_watched=0i,cmd_pause_tube=0i,total_jobs=6i,binlog_records_migrated=0i,cmd_list_tube_used=0i,cmd_peek_delayed=0i,cmd_release=0i,current_jobs_buried=0i,job_timeouts=0i,binlog_current_index=0i,binlog_max_size=10485760i,total_connections=7378i,cmd_peek_buried=0i,cmd_reserve=0i,current_tubes=4i,binlog_records_written=0i,cmd_peek=0i,rusage_utime=1.13,uptime=7099i,binlog_oldest_index=0i,current_workers=0i,cmd_ignore=0i 1528801650000000000 - beanstalkd_tube,host=server.local,name=notifications,server=localhost:11300 pause_time_left=0i,current_jobs_buried=0i,current_jobs_delayed=0i,current_jobs_reserved=0i,current_using=0i,current_waiting=0i,pause=0i,total_jobs=3i,cmd_delete=0i,cmd_pause_tube=0i,current_jobs_ready=3i,current_jobs_urgent=3i,current_watching=0i 1528801650000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/beat.md b/src/writeData/components/telegrafPlugins/beat.md index 3312b93ced..cd90c1663b 100644 --- a/src/writeData/components/telegrafPlugins/beat.md +++ b/src/writeData/components/telegrafPlugins/beat.md @@ -1,7 +1,22 @@ # Beat Input Plugin -The Beat plugin will collect metrics from the given Beat instances. It is -known to work with Filebeat and Kafkabeat. +This plugin will collect metrics from a [Beats][beats] instances. It is known +to work with Filebeat and Kafkabeat. + +⭐ Telegraf v1.18.0 +🏷️ applications +💻 all + +[beats]: https://www.elastic.co/beats + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -137,15 +152,9 @@ known to work with Filebeat and Kafkabeat. ## Example Output -```shell -$ telegraf --input-filter beat --test - -> beat,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 - cpu_system_ticks=656750,cpu_system_time_ms=656750,cpu_total_ticks=5461190,cpu_total_time_ms=5461198,cpu_total_value=5461190,cpu_user_ticks=4804440,cpu_user_time_ms=4804448,info_uptime_ms=342634196,memstats_gc_next=20199584,memstats_memory_alloc=12547424,memstats_memory_total=486296424792,memstats_rss=72552448 1540316047000000000 -> beat_libbeat,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 - config_module_running=0,config_module_starts=0,config_module_stops=0,config_reloads=0,output_events_acked=192404,output_events_active=0,output_events_batches=1607,output_events_dropped=0,output_events_duplicates=0,output_events_failed=0,output_events_total=192404,output_read_bytes=0,output_read_errors=0,output_write_bytes=0,output_write_errors=0,outputs_kafka_bytes_read=1118528,outputs_kafka_bytes_write=48002014,pipeline_clients=1,pipeline_events_active=0,pipeline_events_dropped=0,pipeline_events_failed=0,pipeline_events_filtered=11496,pipeline_events_published=192404,pipeline_events_retry=14,pipeline_events_total=203900,pipeline_queue_acked=192404 1540316047000000000 -> beat_system,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 - cpu_cores=32,load_1=46.08,load_15=49.82,load_5=47.88,load_norm_1=1.44,load_norm_15=1.5569,load_norm_5=1.4963 1540316047000000000 -> beat_filebeat,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 - events_active=0,events_added=3223,events_done=3223,harvester_closed=0,harvester_open_files=0,harvester_running=0,harvester_skipped=0,harvester_started=0,input_log_files_renamed=0,input_log_files_truncated=0 1540320286000000000 +```text +beat,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 cpu_system_ticks=656750,cpu_system_time_ms=656750,cpu_total_ticks=5461190,cpu_total_time_ms=5461198,cpu_total_value=5461190,cpu_user_ticks=4804440,cpu_user_time_ms=4804448,info_uptime_ms=342634196,memstats_gc_next=20199584,memstats_memory_alloc=12547424,memstats_memory_total=486296424792,memstats_rss=72552448 1540316047000000000 +beat_libbeat,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 config_module_running=0,config_module_starts=0,config_module_stops=0,config_reloads=0,output_events_acked=192404,output_events_active=0,output_events_batches=1607,output_events_dropped=0,output_events_duplicates=0,output_events_failed=0,output_events_total=192404,output_read_bytes=0,output_read_errors=0,output_write_bytes=0,output_write_errors=0,outputs_kafka_bytes_read=1118528,outputs_kafka_bytes_write=48002014,pipeline_clients=1,pipeline_events_active=0,pipeline_events_dropped=0,pipeline_events_failed=0,pipeline_events_filtered=11496,pipeline_events_published=192404,pipeline_events_retry=14,pipeline_events_total=203900,pipeline_queue_acked=192404 1540316047000000000 +beat_system,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 cpu_cores=32,load_1=46.08,load_15=49.82,load_5=47.88,load_norm_1=1.44,load_norm_15=1.5569,load_norm_5=1.4963 1540316047000000000 +beat_filebeat,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 events_active=0,events_added=3223,events_done=3223,harvester_closed=0,harvester_open_files=0,harvester_running=0,harvester_skipped=0,harvester_started=0,input_log_files_renamed=0,input_log_files_truncated=0 1540320286000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/bind.md b/src/writeData/components/telegrafPlugins/bind.md index e74c84abe3..3ac1689fe7 100644 --- a/src/writeData/components/telegrafPlugins/bind.md +++ b/src/writeData/components/telegrafPlugins/bind.md @@ -1,20 +1,35 @@ -# BIND 9 Nameserver Statistics Input Plugin +# BIND 9 Nameserver Input Plugin -This plugin decodes the JSON or XML statistics provided by BIND 9 nameservers. +This plugin collects metrics from [BIND 9 nameservers][bind] using the XML or +JSON endpoint. -## XML Statistics Channel +For _XML_, version 2 statistics (BIND 9.6 to 9.9) and version 3 statistics +(BIND 9.9+) are supported. Version 3 statistics are the default and only XML +format in BIND 9.10+. -Version 2 statistics (BIND 9.6 - 9.9) and version 3 statistics (BIND 9.9+) are -supported. Note that for BIND 9.9 to support version 3 statistics, it must be -built with the `--enable-newstats` compile flag, and it must be specifically -requested via the correct URL. Version 3 statistics are the default (and only) -XML format in BIND 9.10+. +> [!NOTE] +> For BIND 9.9 to support version 3 statistics, it must be built with the +> `--enable-newstats` compile flag, and the statistics must be specifically +> requested via the correct URL. -## JSON Statistics Channel - -JSON statistics schema version 1 (BIND 9.10+) is supported. As of writing, some +For _JSON_, version 1 statistics (BIND 9.10+) are supported. As of writing, some distros still do not enable support for JSON statistics in their BIND packages. +⭐ Telegraf v1.11.0 +🏷️ server +💻 all + +[bind]: https://www.isc.org/bind + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -26,13 +41,18 @@ distros still do not enable support for JSON statistics in their BIND packages. # gather_memory_contexts = false # gather_views = false + ## Report xml v3 counters as integers instead of unsigned for backward + ## compatibility. Set this to false as soon as possible! + ## Values are clipped if exceeding the integer range. + # report_counters_as_int = true + ## Timeout for http requests made by bind nameserver # timeout = "4s" ``` - **urls** []string: List of BIND statistics channel URLs to collect from. Do not include a trailing slash in the URL. - Default is "http://localhost:8053/xml/v3". + Default is `http://localhost:8053/xml/v3`. - **gather_memory_contexts** bool: Report per-context memory statistics. - **gather_views** bool: Report per-view query statistics. - **timeout** Timeout for http requests made by bind (example: "4s"). @@ -126,7 +146,7 @@ time non_negative_derivative_A non_negative_derivative_PTR Here is example output of this plugin: -```shell +```text bind_memory,host=LAP,port=8053,source=localhost,url=localhost:8053 block_size=12058624i,context_size=4575056i,in_use=4113717i,lost=0i,total_use=16663252i 1554276619000000000 bind_counter,host=LAP,port=8053,source=localhost,type=opcode,url=localhost:8053 IQUERY=0i,NOTIFY=0i,QUERY=9i,STATUS=0i,UPDATE=0i 1554276619000000000 bind_counter,host=LAP,port=8053,source=localhost,type=rcode,url=localhost:8053 17=0i,18=0i,19=0i,20=0i,21=0i,22=0i,BADCOOKIE=0i,BADVERS=0i,FORMERR=0i,NOERROR=7i,NOTAUTH=0i,NOTIMP=0i,NOTZONE=0i,NXDOMAIN=0i,NXRRSET=0i,REFUSED=0i,RESERVED11=0i,RESERVED12=0i,RESERVED13=0i,RESERVED14=0i,RESERVED15=0i,SERVFAIL=2i,YXDOMAIN=0i,YXRRSET=0i 1554276619000000000 diff --git a/src/writeData/components/telegrafPlugins/bond.md b/src/writeData/components/telegrafPlugins/bond.md index e59664ae62..d9a015fd1e 100644 --- a/src/writeData/components/telegrafPlugins/bond.md +++ b/src/writeData/components/telegrafPlugins/bond.md @@ -1,8 +1,20 @@ # Bond Input Plugin -The Bond input plugin collects network bond interface status for both the -network bond interface as well as slave interfaces. -The plugin collects these metrics from `/proc/net/bonding/*` files. +This plugin collects metrics for both the network bond interface as well as its +slave interfaces using `/proc/net/bonding/*` files. + +⭐ Telegraf v1.5.0 +🏷️ system +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -30,50 +42,31 @@ The plugin collects these metrics from `/proc/net/bonding/*` files. ## Metrics - bond - - active_slave (for active-backup mode) - - status + - tags: + - `bond`: name of the bond + - fields: + - `active_slave`: currently active slave interface for active-backup mode + - `status`: status of the interface (0: down , 1: up) - bond_slave - - failures - - status - - count - - actor_churned (for LACP bonds) - - partner_churned (for LACP bonds) - - total_churned (for LACP bonds) + - tags: + - `bond`: name of the bond + - `interface`: name of the network interface + - fields: + - `failures`: amount of failures for bond's slave interface + - `status`: status of the interface (0: down , 1: up) + - `count`: number of slaves attached to bond + - `actor_churned (for LACP bonds)`: count for local end of LACP bond flapped + - `partner_churned (for LACP bonds)`: count for remote end of LACP bond flapped + - `total_churned (for LACP bonds)`: full count of all churn events - bond_sys - - slave_count - - ad_port_count - -## Description - -- active_slave - - Currently active slave interface for active-backup mode. -- status - - Status of bond interface or bonds's slave interface (down = 0, up = 1). -- failures - - Amount of failures for bond's slave interface. -- count - - Number of slaves attached to bond -- actor_churned - - number of times local end of LACP bond flapped -- partner_churned - - number of times remote end of LACP bond flapped -- total_churned - - full count of all churn events - -## Tags - -- bond - - bond - -- bond_slave - - bond - - interface - -- bond_sys - - bond - - mode + - tags: + - `bond`: name of the bond + - `mode`: name of the bonding mode + - fields: + - `slave_count`: number of slaves + - `ad_port_count`: number of ports ## Example Output @@ -94,21 +87,18 @@ Configuration: Run: ```bash -```shell telegraf --config telegraf.conf --input-filter bond --test ``` Output: -```bash -```shell -* Plugin: inputs.bond, Collection 1 -> bond,bond=bond1,host=local active_slave="eth0",status=1i 1509704525000000000 -> bond_slave,bond=bond1,interface=eth0,host=local status=1i,failures=0i 1509704525000000000 -> bond_slave,host=local,bond=bond1,interface=eth1 status=1i,failures=0i 1509704525000000000 -> bond_slave,host=local,bond=bond1 count=2i 1509704525000000000 -> bond,bond=bond0,host=isvetlov-mac.local status=1i 1509704525000000000 -> bond_slave,bond=bond0,interface=eth1,host=local status=1i,failures=0i 1509704525000000000 -> bond_slave,bond=bond0,interface=eth2,host=local status=1i,failures=0i 1509704525000000000 -> bond_slave,bond=bond0,host=local count=2i 1509704525000000000 +```text +bond,bond=bond1,host=local active_slave="eth0",status=1i 1509704525000000000 +bond_slave,bond=bond1,interface=eth0,host=local status=1i,failures=0i 1509704525000000000 +bond_slave,host=local,bond=bond1,interface=eth1 status=1i,failures=0i 1509704525000000000 +bond_slave,host=local,bond=bond1 count=2i 1509704525000000000 +bond,bond=bond0,host=isvetlov-mac.local status=1i 1509704525000000000 +bond_slave,bond=bond0,interface=eth1,host=local status=1i,failures=0i 1509704525000000000 +bond_slave,bond=bond0,interface=eth2,host=local status=1i,failures=0i 1509704525000000000 +bond_slave,bond=bond0,host=local count=2i 1509704525000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/burrow.md b/src/writeData/components/telegrafPlugins/burrow.md index c6e8a8b4e8..4998ed3e78 100644 --- a/src/writeData/components/telegrafPlugins/burrow.md +++ b/src/writeData/components/telegrafPlugins/burrow.md @@ -1,10 +1,24 @@ -# Burrow Kafka Consumer Lag Checking Input Plugin +# Burrow Input Plugin -Collect Kafka topic, consumer and partition status via -[Burrow](https://github.com/linkedin/Burrow) HTTP -[API](https://github.com/linkedin/Burrow/wiki/HTTP-Endpoint). +This plugin collect Kafka topic, consumer and partition status from the +[Burrow - Kafka Consumer Lag Checking][burrow] companion via [HTTP API][api]. +Burrow v1.x versions are supported. -Supported Burrow version: `1.x` +⭐ Telegraf v1.7.0 +🏷️ messaging +💻 all + +[burrow]: https://github.com/linkedin/Burrow +[api]: https://github.com/linkedin/Burrow/wiki/HTTP-Endpoint + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -103,3 +117,5 @@ Supported Burrow version: `1.x` * cluster (string) * topic (string) * partition (int) + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/ceph.md b/src/writeData/components/telegrafPlugins/ceph.md index 9e3adb07ca..2f4c06db50 100644 --- a/src/writeData/components/telegrafPlugins/ceph.md +++ b/src/writeData/components/telegrafPlugins/ceph.md @@ -1,61 +1,25 @@ # Ceph Storage Input Plugin -Collects performance metrics from the MON and OSD nodes in a Ceph storage -cluster. +This plugin collects performance metrics from MON and OSD nodes in a +[Ceph storage cluster][ceph]. Support for Telegraf has been introduced in the +v13.x Mimic release where data is sent to a socket (see +[their documnetation][docs]). -Ceph has introduced a Telegraf and Influx plugin in the 13.x Mimic release. -The Telegraf module sends to a Telegraf configured with a socket_listener. -[Learn more in their docs](https://docs.ceph.com/en/latest/mgr/telegraf/) +⭐ Telegraf v0.13.1 +🏷️ system +💻 all -## Admin Socket Stats +[ceph]: https://ceph.com +[docs]: https://docs.ceph.com/en/latest/mgr/telegraf -This gatherer works by scanning the configured SocketDir for OSD, MON, MDS -and RGW socket files. When it finds a MON socket, it runs +## Global configuration options -```shell -ceph --admin-daemon $file perfcounters_dump -``` +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -For OSDs it runs - -```shell -ceph --admin-daemon $file perf dump -``` - -The resulting JSON is parsed and grouped into collections, based on -top-level key. Top-level keys are used as collection tags, and all -sub-keys are flattened. For example: - -```json - { - "paxos": { - "refresh": 9363435, - "refresh_latency": { - "avgcount": 9363435, - "sum": 5378.794002000 - } - } - } -``` - -Would be parsed into the following metrics, all of which would be tagged -with `collection=paxos`: - -- refresh = 9363435 -- refresh_latency.avgcount: 9363435 -- refresh_latency.sum: 5378.794002000 - -## Cluster Stats - -This gatherer works by invoking ceph commands against the cluster thus only -requires the ceph client, valid ceph configuration and an access key to -function (the ceph_config and ceph_user configuration variables work in -conjunction to specify these prerequisites). It may be run on any server you -wish which has access to the cluster. The currently supported commands are: - -- ceph status -- ceph df -- ceph osd pool stats +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -105,6 +69,56 @@ wish which has access to the cluster. The currently supported commands are: gather_cluster_stats = false ``` +## Admin Socket Stats + +This gatherer works by scanning the configured SocketDir for OSD, MON, MDS +and RGW socket files. When it finds a MON socket, it runs + +```shell +ceph --admin-daemon $file perfcounters_dump +``` + +For OSDs it runs + +```shell +ceph --admin-daemon $file perf dump +``` + +The resulting JSON is parsed and grouped into collections, based on +top-level key. Top-level keys are used as collection tags, and all +sub-keys are flattened. For example: + +```json + { + "paxos": { + "refresh": 9363435, + "refresh_latency": { + "avgcount": 9363435, + "sum": 5378.794002000 + } + } + } +``` + +Would be parsed into the following metrics, all of which would be tagged +with `collection=paxos`: + +- refresh = 9363435 +- refresh_latency.avgcount: 9363435 +- refresh_latency.sum: 5378.794002000 + +## Cluster Stats + +This gatherer works by invoking ceph commands against the cluster thus only +requires the ceph client, valid ceph configuration and an access key to +function (the ceph_config and ceph_user configuration variables work in +conjunction to specify these prerequisites). It may be run on any server you +wish which has access to the cluster. The currently supported commands are: + +- ceph status +- ceph df +- ceph osd pool stats + ## Metrics ### Admin Socket @@ -187,33 +201,57 @@ All admin measurements will have the following tags: ## Cluster +- ceph_fsmap + - fields: + - up (float) + - in (float) + - max (float) + - up_standby (float) + - ceph_health - fields: - - status - - overall_status + - status (string) + - status_code (int) + - overall_status (string, exists only in ceph <15) + +- ceph_monmap + - fields: + - num_mons (float) - ceph_osdmap - fields: - epoch (float) - - num_osds (float) - - num_up_osds (float) + - full (bool, exists only in ceph <15) + - nearfull (bool, exists only in ceph <15) - num_in_osds (float) - - full (bool) - - nearfull (bool) + - num_osds (float) - num_remapped_pgs (float) + - num_up_osds (float) - ceph_pgmap - fields: - - version (float) - - num_pgs (float) - - data_bytes (float) - - bytes_used (float) - bytes_avail (float) - bytes_total (float) - - read_bytes_sec (float) - - write_bytes_sec (float) + - bytes_used (float) + - data_bytes (float) + - degraded_objects (float) + - degraded_ratio (float) + - degraded_total (float) + - inactive_pgs_ratio (float) + - num_bytes_recovered (float) + - num_keys_recovered (float) + - num_objects (float) + - num_objects_recovered (float) + - num_pgs (float) + - num_pools (float) - op_per_sec (float, exists only in ceph <10) + - read_bytes_sec (float) - read_op_per_sec (float) + - recovering_bytes_per_sec (float) + - recovering_keys_per_sec (float) + - recovering_objects_per_sec (float) + - version (float) + - write_bytes_sec (float) - write_op_per_sec (float) - ceph_pgmap_state @@ -224,180 +262,216 @@ All admin measurements will have the following tags: - ceph_usage - fields: - - total_bytes (float) - - total_used_bytes (float) + - num_osd (float) + - num_per_pool_omap_osds (float) + - num_per_pool_osds (float) + - total_avail (float, exists only in ceph <0.84) - total_avail_bytes (float) + - total_bytes (float) - total_space (float, exists only in ceph <0.84) - total_used (float, exists only in ceph <0.84) - - total_avail (float, exists only in ceph <0.84) + - total_used_bytes (float) + - total_used_raw_bytes (float) + - total_used_raw_ratio (float) + +- ceph_deviceclass_usage + - tags: + - class + - fields: + - total_avail_bytes (float) + - total_bytes (float) + - total_used_bytes (float) + - total_used_raw_bytes (float) + - total_used_raw_ratio (float) - ceph_pool_usage - tags: - name - fields: - - kb_used (float) - bytes_used (float) + - kb_used (float) + - max_avail (float) - objects (float) - percent_used (float) - - max_avail (float) + - stored (float) - ceph_pool_stats - tags: - name - fields: - - read_bytes_sec (float) - - write_bytes_sec (float) + - degraded_objects (float) + - degraded_ratio (float) + - degraded_total (float) + - num_bytes_recovered (float) + - num_keys_recovered (float) + - num_objects_recovered (float) - op_per_sec (float, exists only in ceph <10) + - read_bytes_sec (float) - read_op_per_sec (float) - - write_op_per_sec (float) - - recovering_objects_per_sec (float) - recovering_bytes_per_sec (float) - recovering_keys_per_sec (float) + - recovering_objects_per_sec (float) + - write_bytes_sec (float) + - write_op_per_sec (float) ## Example Output -Below is an example of a custer stats: - -```shell -ceph_health,host=stefanmon1 overall_status="",status="HEALTH_WARN" 1587118504000000000 -ceph_osdmap,host=stefanmon1 epoch=203,full=false,nearfull=false,num_in_osds=8,num_osds=9,num_remapped_pgs=0,num_up_osds=8 1587118504000000000 -ceph_pgmap,host=stefanmon1 bytes_avail=849879302144,bytes_total=858959904768,bytes_used=9080602624,data_bytes=5055,num_pgs=504,read_bytes_sec=0,read_op_per_sec=0,version=0,write_bytes_sec=0,write_op_per_sec=0 1587118504000000000 -ceph_pgmap_state,host=stefanmon1,state=active+clean count=504 1587118504000000000 -ceph_usage,host=stefanmon1 total_avail_bytes=849879302144,total_bytes=858959904768,total_used_bytes=196018176 1587118505000000000 -ceph_pool_usage,host=stefanmon1,name=cephfs_data bytes_used=0,kb_used=0,max_avail=285804986368,objects=0,percent_used=0 1587118505000000000 -ceph_pool_stats,host=stefanmon1,name=cephfs_data read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=0,write_op_per_sec=0 1587118506000000000 +Below is an example of a cluster stats: + +```text +ceph_fsmap,host=ceph in=1,max=1,up=1,up_standby=2 1646782035000000000 +ceph_health,host=ceph status="HEALTH_OK",status_code=2 1646782035000000000 +ceph_monmap,host=ceph num_mons=3 1646782035000000000 +ceph_osdmap,host=ceph epoch=10560,num_in_osds=6,num_osds=6,num_remapped_pgs=0,num_up_osds=6 1646782035000000000 +ceph_pgmap,host=ceph bytes_avail=7863124942848,bytes_total=14882929901568,bytes_used=7019804958720,data_bytes=2411111520818,degraded_objects=0,degraded_ratio=0,degraded_total=0,inactive_pgs_ratio=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects=973030,num_objects_recovered=0,num_pgs=233,num_pools=6,read_bytes_sec=7334,read_op_per_sec=2,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,version=0,write_bytes_sec=13113085,write_op_per_sec=355 1646782035000000000 +ceph_pgmap_state,host=ceph,state=active+clean count=233 1646782035000000000 +ceph_usage,host=ceph num_osds=6,num_per_pool_omap_osds=6,num_per_pool_osds=6,total_avail_bytes=7863124942848,total_bytes=14882929901568,total_used_bytes=7019804958720,total_used_raw_bytes=7019804958720,total_used_raw_ratio=0.47166821360588074 1646782035000000000 +ceph_deviceclass_usage,class=hdd,host=ceph total_avail_bytes=6078650843136,total_bytes=12002349023232,total_used_bytes=5923698180096,total_used_raw_bytes=5923698180096,total_used_raw_ratio=0.49354490637779236 1646782035000000000 +ceph_deviceclass_usage,class=ssd,host=ceph total_avail_bytes=1784474099712,total_bytes=2880580878336,total_used_bytes=1096106778624,total_used_raw_bytes=1096106778624,total_used_raw_ratio=0.3805158734321594 1646782035000000000 +ceph_pool_usage,host=ceph,name=Foo bytes_used=2019483848658,kb_used=1972152196,max_avail=1826022621184,objects=161029,percent_used=0.26935243606567383,stored=672915064134 1646782035000000000 +ceph_pool_usage,host=ceph,name=Bar_metadata bytes_used=4370899787,kb_used=4268457,max_avail=546501918720,objects=89702,percent_used=0.002658897778019309,stored=1456936576 1646782035000000000 +ceph_pool_usage,host=ceph,name=Bar_data bytes_used=3893328740352,kb_used=3802078848,max_avail=1826022621184,objects=518396,percent_used=0.41544806957244873,stored=1292214337536 1646782035000000000 +ceph_pool_usage,host=ceph,name=device_health_metrics bytes_used=85289044,kb_used=83291,max_avail=3396406870016,objects=9,percent_used=0.000012555617104226258,stored=42644520 1646782035000000000 +ceph_pool_usage,host=ceph,name=Foo_Fast bytes_used=597511814461,kb_used=583507632,max_avail=546501918720,objects=67014,percent_used=0.2671019732952118,stored=199093853972 1646782035000000000 +ceph_pool_usage,host=ceph,name=Bar_data_fast bytes_used=490009280512,kb_used=478524688,max_avail=546501918720,objects=136880,percent_used=0.23010368645191193,stored=163047325696 1646782035000000000 +ceph_pool_stats,host=ceph,name=Foo degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=27720,write_op_per_sec=4 1646782036000000000 +ceph_pool_stats,host=ceph,name=Bar_metadata degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=9638,read_op_per_sec=3,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=11802778,write_op_per_sec=60 1646782036000000000 +ceph_pool_stats,host=ceph,name=Bar_data degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=0,write_op_per_sec=104 1646782036000000000 +ceph_pool_stats,host=ceph,name=device_health_metrics degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=0,write_op_per_sec=0 1646782036000000000 +ceph_pool_stats,host=ceph,name=Foo_Fast degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=11173,write_op_per_sec=1 1646782036000000000 +ceph_pool_stats,host=ceph,name=Bar_data_fast degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=2155404,write_op_per_sec=262 1646782036000000000 ``` Below is an example of admin socket stats: -```shell -> ceph,collection=cct,host=stefanmon1,id=stefanmon1,type=monitor total_workers=0,unhealthy_workers=0 1587117563000000000 -> ceph,collection=mempool,host=stefanmon1,id=stefanmon1,type=monitor bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=0,bluefs_items=0,bluestore_alloc_bytes=0,bluestore_alloc_items=0,bluestore_cache_data_bytes=0,bluestore_cache_data_items=0,bluestore_cache_onode_bytes=0,bluestore_cache_onode_items=0,bluestore_cache_other_bytes=0,bluestore_cache_other_items=0,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=0,bluestore_txc_items=0,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=0,bluestore_writing_deferred_items=0,bluestore_writing_items=0,buffer_anon_bytes=719152,buffer_anon_items=192,buffer_meta_bytes=352,buffer_meta_items=4,mds_co_bytes=0,mds_co_items=0,osd_bytes=0,osd_items=0,osd_mapbl_bytes=0,osd_mapbl_items=0,osd_pglog_bytes=0,osd_pglog_items=0,osdmap_bytes=15872,osdmap_items=138,osdmap_mapping_bytes=63112,osdmap_mapping_items=7626,pgmap_bytes=38680,pgmap_items=477,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117563000000000 -> ceph,collection=throttle-mon_client_bytes,host=stefanmon1,id=stefanmon1,type=monitor get=1041157,get_or_fail_fail=0,get_or_fail_success=1041157,get_started=0,get_sum=64928901,max=104857600,put=1041157,put_sum=64928901,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-mon,host=stefanmon1,id=stefanmon1,type=monitor get=12695426,get_or_fail_fail=0,get_or_fail_success=12695426,get_started=0,get_sum=42542216884,max=104857600,put=12695426,put_sum=42542216884,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000 -> ceph,collection=finisher-mon_finisher,host=stefanmon1,id=stefanmon1,type=monitor complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117563000000000 -> ceph,collection=finisher-monstore,host=stefanmon1,id=stefanmon1,type=monitor complete_latency.avgcount=1609831,complete_latency.avgtime=0.015857621,complete_latency.sum=25528.09131035,queue_len=0 1587117563000000000 -> ceph,collection=mon,host=stefanmon1,id=stefanmon1,type=monitor election_call=25,election_lose=0,election_win=22,num_elections=94,num_sessions=3,session_add=174679,session_rm=439316,session_trim=137 1587117563000000000 -> ceph,collection=throttle-mon_daemon_bytes,host=stefanmon1,id=stefanmon1,type=monitor get=72697,get_or_fail_fail=0,get_or_fail_success=72697,get_started=0,get_sum=32261199,max=419430400,put=72697,put_sum=32261199,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000 -> ceph,collection=rocksdb,host=stefanmon1,id=stefanmon1,type=monitor compact=1,compact_queue_len=0,compact_queue_merge=1,compact_range=19126,get=62449211,get_latency.avgcount=62449211,get_latency.avgtime=0.000022216,get_latency.sum=1387.371811726,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=0,submit_latency.avgtime=0,submit_latency.sum=0,submit_sync_latency.avgcount=3219961,submit_sync_latency.avgtime=0.007532173,submit_sync_latency.sum=24253.303584224,submit_transaction=0,submit_transaction_sync=3219961 1587117563000000000 -> ceph,collection=AsyncMessenger::Worker-0,host=stefanmon1,id=stefanmon1,type=monitor msgr_active_connections=148317,msgr_created_connections=162806,msgr_recv_bytes=11557888328,msgr_recv_messages=5113369,msgr_running_fast_dispatch_time=0,msgr_running_recv_time=868.377161686,msgr_running_send_time=1626.525392721,msgr_running_total_time=4222.235694322,msgr_send_bytes=91516226816,msgr_send_messages=6973706 1587117563000000000 -> ceph,collection=AsyncMessenger::Worker-2,host=stefanmon1,id=stefanmon1,type=monitor msgr_active_connections=146396,msgr_created_connections=159788,msgr_recv_bytes=2162802496,msgr_recv_messages=689168,msgr_running_fast_dispatch_time=0,msgr_running_recv_time=164.148550562,msgr_running_send_time=153.462890368,msgr_running_total_time=644.188791379,msgr_send_bytes=7422484152,msgr_send_messages=749381 1587117563000000000 -> ceph,collection=cluster,host=stefanmon1,id=stefanmon1,type=monitor num_bytes=5055,num_mon=3,num_mon_quorum=3,num_object=245,num_object_degraded=0,num_object_misplaced=0,num_object_unfound=0,num_osd=9,num_osd_in=8,num_osd_up=8,num_pg=504,num_pg_active=504,num_pg_active_clean=504,num_pg_peering=0,num_pool=17,osd_bytes=858959904768,osd_bytes_avail=849889787904,osd_bytes_used=9070116864,osd_epoch=203 1587117563000000000 -> ceph,collection=paxos,host=stefanmon1,id=stefanmon1,type=monitor accept_timeout=1,begin=1609847,begin_bytes.avgcount=1609847,begin_bytes.sum=41408662074,begin_keys.avgcount=1609847,begin_keys.sum=4829541,begin_latency.avgcount=1609847,begin_latency.avgtime=0.007213392,begin_latency.sum=11612.457661116,collect=0,collect_bytes.avgcount=0,collect_bytes.sum=0,collect_keys.avgcount=0,collect_keys.sum=0,collect_latency.avgcount=0,collect_latency.avgtime=0,collect_latency.sum=0,collect_timeout=1,collect_uncommitted=17,commit=1609831,commit_bytes.avgcount=1609831,commit_bytes.sum=41087428442,commit_keys.avgcount=1609831,commit_keys.sum=11637931,commit_latency.avgcount=1609831,commit_latency.avgtime=0.006236333,commit_latency.sum=10039.442388355,lease_ack_timeout=0,lease_timeout=0,new_pn=33,new_pn_latency.avgcount=33,new_pn_latency.avgtime=3.844272773,new_pn_latency.sum=126.86100151,refresh=1609856,refresh_latency.avgcount=1609856,refresh_latency.avgtime=0.005900486,refresh_latency.sum=9498.932866761,restart=109,share_state=2,share_state_bytes.avgcount=2,share_state_bytes.sum=39612,share_state_keys.avgcount=2,share_state_keys.sum=2,start_leader=22,start_peon=0,store_state=14,store_state_bytes.avgcount=14,store_state_bytes.sum=51908281,store_state_keys.avgcount=14,store_state_keys.sum=7016,store_state_latency.avgcount=14,store_state_latency.avgtime=11.668377665,store_state_latency.sum=163.357287311 1587117563000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-mon-mgrc,host=stefanmon1,id=stefanmon1,type=monitor get=13225,get_or_fail_fail=0,get_or_fail_success=13225,get_started=0,get_sum=158700,max=104857600,put=13225,put_sum=158700,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000 -> ceph,collection=AsyncMessenger::Worker-1,host=stefanmon1,id=stefanmon1,type=monitor msgr_active_connections=147680,msgr_created_connections=162374,msgr_recv_bytes=29781706740,msgr_recv_messages=7170733,msgr_running_fast_dispatch_time=0,msgr_running_recv_time=1728.559151358,msgr_running_send_time=2086.681244508,msgr_running_total_time=6084.532916585,msgr_send_bytes=94062125718,msgr_send_messages=9161564 1587117563000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-cluster,host=stefanosd1,id=0,type=osd get=281745,get_or_fail_fail=0,get_or_fail_success=281745,get_started=0,get_sum=446024457,max=104857600,put=281745,put_sum=446024457,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-bluestore_throttle_bytes,host=stefanosd1,id=0,type=osd get=275707,get_or_fail_fail=0,get_or_fail_success=0,get_started=275707,get_sum=185073179842,max=67108864,put=268870,put_sum=185073179842,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_front_server,host=stefanosd1,id=0,type=osd get=2606982,get_or_fail_fail=0,get_or_fail_success=2606982,get_started=0,get_sum=5224391928,max=104857600,put=2606982,put_sum=5224391928,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=rocksdb,host=stefanosd1,id=0,type=osd compact=0,compact_queue_len=0,compact_queue_merge=0,compact_range=0,get=1570,get_latency.avgcount=1570,get_latency.avgtime=0.000051233,get_latency.sum=0.080436788,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=275707,submit_latency.avgtime=0.000174936,submit_latency.sum=48.231345334,submit_sync_latency.avgcount=268870,submit_sync_latency.avgtime=0.006097313,submit_sync_latency.sum=1639.384555624,submit_transaction=275707,submit_transaction_sync=268870 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_back_server,host=stefanosd1,id=0,type=osd get=2606982,get_or_fail_fail=0,get_or_fail_success=2606982,get_started=0,get_sum=5224391928,max=104857600,put=2606982,put_sum=5224391928,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-objecter_bytes,host=stefanosd1,id=0,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_back_client,host=stefanosd1,id=0,type=osd get=2610285,get_or_fail_fail=0,get_or_fail_success=2610285,get_started=0,get_sum=5231011140,max=104857600,put=2610285,put_sum=5231011140,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=AsyncMessenger::Worker-1,host=stefanosd1,id=0,type=osd msgr_active_connections=2093,msgr_created_connections=29142,msgr_recv_bytes=7214238199,msgr_recv_messages=3928206,msgr_running_fast_dispatch_time=171.289615064,msgr_running_recv_time=278.531155966,msgr_running_send_time=489.482588813,msgr_running_total_time=1134.004853662,msgr_send_bytes=9814725232,msgr_send_messages=3814927 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-client,host=stefanosd1,id=0,type=osd get=488206,get_or_fail_fail=0,get_or_fail_success=488206,get_started=0,get_sum=104085134,max=104857600,put=488206,put_sum=104085134,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=finisher-defered_finisher,host=stefanosd1,id=0,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 -> ceph,collection=recoverystate_perf,host=stefanosd1,id=0,type=osd activating_latency.avgcount=87,activating_latency.avgtime=0.114348341,activating_latency.sum=9.948305683,active_latency.avgcount=25,active_latency.avgtime=1790.961574431,active_latency.sum=44774.039360795,backfilling_latency.avgcount=0,backfilling_latency.avgtime=0,backfilling_latency.sum=0,clean_latency.avgcount=25,clean_latency.avgtime=1790.830827794,clean_latency.sum=44770.770694867,down_latency.avgcount=0,down_latency.avgtime=0,down_latency.sum=0,getinfo_latency.avgcount=141,getinfo_latency.avgtime=0.446233476,getinfo_latency.sum=62.918920183,getlog_latency.avgcount=87,getlog_latency.avgtime=0.007708069,getlog_latency.sum=0.670602073,getmissing_latency.avgcount=87,getmissing_latency.avgtime=0.000077594,getmissing_latency.sum=0.006750701,incomplete_latency.avgcount=0,incomplete_latency.avgtime=0,incomplete_latency.sum=0,initial_latency.avgcount=166,initial_latency.avgtime=0.001313715,initial_latency.sum=0.218076764,notbackfilling_latency.avgcount=0,notbackfilling_latency.avgtime=0,notbackfilling_latency.sum=0,notrecovering_latency.avgcount=0,notrecovering_latency.avgtime=0,notrecovering_latency.sum=0,peering_latency.avgcount=141,peering_latency.avgtime=0.948324273,peering_latency.sum=133.713722563,primary_latency.avgcount=79,primary_latency.avgtime=567.706192991,primary_latency.sum=44848.78924634,recovered_latency.avgcount=87,recovered_latency.avgtime=0.000378284,recovered_latency.sum=0.032910791,recovering_latency.avgcount=2,recovering_latency.avgtime=0.338242008,recovering_latency.sum=0.676484017,replicaactive_latency.avgcount=23,replicaactive_latency.avgtime=1790.893991295,replicaactive_latency.sum=41190.561799786,repnotrecovering_latency.avgcount=25,repnotrecovering_latency.avgtime=1647.627024984,repnotrecovering_latency.sum=41190.675624616,reprecovering_latency.avgcount=2,reprecovering_latency.avgtime=0.311884638,reprecovering_latency.sum=0.623769276,repwaitbackfillreserved_latency.avgcount=0,repwaitbackfillreserved_latency.avgtime=0,repwaitbackfillreserved_latency.sum=0,repwaitrecoveryreserved_latency.avgcount=2,repwaitrecoveryreserved_latency.avgtime=0.000462873,repwaitrecoveryreserved_latency.sum=0.000925746,reset_latency.avgcount=372,reset_latency.avgtime=0.125056393,reset_latency.sum=46.520978537,start_latency.avgcount=372,start_latency.avgtime=0.000109397,start_latency.sum=0.040695881,started_latency.avgcount=206,started_latency.avgtime=418.299777245,started_latency.sum=86169.754112641,stray_latency.avgcount=231,stray_latency.avgtime=0.98203205,stray_latency.sum=226.849403565,waitactingchange_latency.avgcount=0,waitactingchange_latency.avgtime=0,waitactingchange_latency.sum=0,waitlocalbackfillreserved_latency.avgcount=0,waitlocalbackfillreserved_latency.avgtime=0,waitlocalbackfillreserved_latency.sum=0,waitlocalrecoveryreserved_latency.avgcount=2,waitlocalrecoveryreserved_latency.avgtime=0.002802377,waitlocalrecoveryreserved_latency.sum=0.005604755,waitremotebackfillreserved_latency.avgcount=0,waitremotebackfillreserved_latency.avgtime=0,waitremotebackfillreserved_latency.sum=0,waitremoterecoveryreserved_latency.avgcount=2,waitremoterecoveryreserved_latency.avgtime=0.012855439,waitremoterecoveryreserved_latency.sum=0.025710878,waitupthru_latency.avgcount=87,waitupthru_latency.avgtime=0.805727895,waitupthru_latency.sum=70.09832695 1587117698000000000 -> ceph,collection=cct,host=stefanosd1,id=0,type=osd total_workers=6,unhealthy_workers=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_front_client,host=stefanosd1,id=0,type=osd get=2610285,get_or_fail_fail=0,get_or_fail_success=2610285,get_started=0,get_sum=5231011140,max=104857600,put=2610285,put_sum=5231011140,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=bluefs,host=stefanosd1,id=0,type=osd bytes_written_slow=0,bytes_written_sst=9018781,bytes_written_wal=831081573,db_total_bytes=4294967296,db_used_bytes=434110464,files_written_sst=3,files_written_wal=2,gift_bytes=0,log_bytes=134291456,log_compactions=1,logged_bytes=1101668352,max_bytes_db=1234173952,max_bytes_slow=0,max_bytes_wal=0,num_files=11,reclaim_bytes=0,slow_total_bytes=0,slow_used_bytes=0,wal_total_bytes=0,wal_used_bytes=0 1587117698000000000 -> ceph,collection=mempool,host=stefanosd1,id=0,type=osd bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=10600,bluefs_items=458,bluestore_alloc_bytes=230288,bluestore_alloc_items=28786,bluestore_cache_data_bytes=622592,bluestore_cache_data_items=43,bluestore_cache_onode_bytes=249280,bluestore_cache_onode_items=380,bluestore_cache_other_bytes=192678,bluestore_cache_other_items=20199,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=8272,bluestore_txc_items=11,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=670130,bluestore_writing_deferred_items=176,bluestore_writing_items=0,buffer_anon_bytes=2412465,buffer_anon_items=297,buffer_meta_bytes=5896,buffer_meta_items=67,mds_co_bytes=0,mds_co_items=0,osd_bytes=2124800,osd_items=166,osd_mapbl_bytes=155152,osd_mapbl_items=10,osd_pglog_bytes=3214704,osd_pglog_items=6288,osdmap_bytes=710892,osdmap_items=4426,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117698000000000 -> ceph,collection=osd,host=stefanosd1,id=0,type=osd agent_evict=0,agent_flush=0,agent_skip=0,agent_wake=0,cached_crc=0,cached_crc_adjusted=0,copyfrom=0,heartbeat_to_peers=7,loadavg=11,map_message_epoch_dups=21,map_message_epochs=40,map_messages=31,messages_delayed_for_map=0,missed_crc=0,numpg=166,numpg_primary=62,numpg_removing=0,numpg_replica=104,numpg_stray=0,object_ctx_cache_hit=476529,object_ctx_cache_total=476536,op=476525,op_before_dequeue_op_lat.avgcount=755708,op_before_dequeue_op_lat.avgtime=0.000205759,op_before_dequeue_op_lat.sum=155.493843473,op_before_queue_op_lat.avgcount=755702,op_before_queue_op_lat.avgtime=0.000047877,op_before_queue_op_lat.sum=36.181069552,op_cache_hit=0,op_in_bytes=0,op_latency.avgcount=476525,op_latency.avgtime=0.000365956,op_latency.sum=174.387387878,op_out_bytes=10882,op_prepare_latency.avgcount=476527,op_prepare_latency.avgtime=0.000205307,op_prepare_latency.sum=97.834380034,op_process_latency.avgcount=476525,op_process_latency.avgtime=0.000139616,op_process_latency.sum=66.530847665,op_r=476521,op_r_latency.avgcount=476521,op_r_latency.avgtime=0.00036559,op_r_latency.sum=174.21148267,op_r_out_bytes=10882,op_r_prepare_latency.avgcount=476523,op_r_prepare_latency.avgtime=0.000205302,op_r_prepare_latency.sum=97.831473175,op_r_process_latency.avgcount=476521,op_r_process_latency.avgtime=0.000139396,op_r_process_latency.sum=66.425498624,op_rw=2,op_rw_in_bytes=0,op_rw_latency.avgcount=2,op_rw_latency.avgtime=0.048818975,op_rw_latency.sum=0.097637951,op_rw_out_bytes=0,op_rw_prepare_latency.avgcount=2,op_rw_prepare_latency.avgtime=0.000467887,op_rw_prepare_latency.sum=0.000935775,op_rw_process_latency.avgcount=2,op_rw_process_latency.avgtime=0.013741256,op_rw_process_latency.sum=0.027482512,op_w=2,op_w_in_bytes=0,op_w_latency.avgcount=2,op_w_latency.avgtime=0.039133628,op_w_latency.sum=0.078267257,op_w_prepare_latency.avgcount=2,op_w_prepare_latency.avgtime=0.000985542,op_w_prepare_latency.sum=0.001971084,op_w_process_latency.avgcount=2,op_w_process_latency.avgtime=0.038933264,op_w_process_latency.sum=0.077866529,op_wip=0,osd_map_bl_cache_hit=22,osd_map_bl_cache_miss=40,osd_map_cache_hit=4570,osd_map_cache_miss=15,osd_map_cache_miss_low=0,osd_map_cache_miss_low_avg.avgcount=0,osd_map_cache_miss_low_avg.sum=0,osd_pg_biginfo=2050,osd_pg_fastinfo=265780,osd_pg_info=274542,osd_tier_flush_lat.avgcount=0,osd_tier_flush_lat.avgtime=0,osd_tier_flush_lat.sum=0,osd_tier_promote_lat.avgcount=0,osd_tier_promote_lat.avgtime=0,osd_tier_promote_lat.sum=0,osd_tier_r_lat.avgcount=0,osd_tier_r_lat.avgtime=0,osd_tier_r_lat.sum=0,pull=0,push=2,push_out_bytes=10,recovery_bytes=10,recovery_ops=2,stat_bytes=107369988096,stat_bytes_avail=106271539200,stat_bytes_used=1098448896,subop=253554,subop_in_bytes=168644225,subop_latency.avgcount=253554,subop_latency.avgtime=0.0073036,subop_latency.sum=1851.857230388,subop_pull=0,subop_pull_latency.avgcount=0,subop_pull_latency.avgtime=0,subop_pull_latency.sum=0,subop_push=0,subop_push_in_bytes=0,subop_push_latency.avgcount=0,subop_push_latency.avgtime=0,subop_push_latency.sum=0,subop_w=253554,subop_w_in_bytes=168644225,subop_w_latency.avgcount=253554,subop_w_latency.avgtime=0.0073036,subop_w_latency.sum=1851.857230388,tier_clean=0,tier_delay=0,tier_dirty=0,tier_evict=0,tier_flush=0,tier_flush_fail=0,tier_promote=0,tier_proxy_read=0,tier_proxy_write=0,tier_try_flush=0,tier_try_flush_fail=0,tier_whiteout=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-ms_objecter,host=stefanosd1,id=0,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=AsyncMessenger::Worker-2,host=stefanosd1,id=0,type=osd msgr_active_connections=2055,msgr_created_connections=27411,msgr_recv_bytes=6431950009,msgr_recv_messages=3552443,msgr_running_fast_dispatch_time=162.271664213,msgr_running_recv_time=254.307853033,msgr_running_send_time=503.037285799,msgr_running_total_time=1130.21070681,msgr_send_bytes=10865436237,msgr_send_messages=3523374 1587117698000000000 -> ceph,collection=bluestore,host=stefanosd1,id=0,type=osd bluestore_allocated=24641536,bluestore_blob_split=0,bluestore_blobs=88,bluestore_buffer_bytes=622592,bluestore_buffer_hit_bytes=160578,bluestore_buffer_miss_bytes=540236,bluestore_buffers=43,bluestore_compressed=0,bluestore_compressed_allocated=0,bluestore_compressed_original=0,bluestore_extent_compress=0,bluestore_extents=88,bluestore_fragmentation_micros=1,bluestore_gc_merged=0,bluestore_onode_hits=532102,bluestore_onode_misses=388,bluestore_onode_reshard=0,bluestore_onode_shard_hits=0,bluestore_onode_shard_misses=0,bluestore_onodes=380,bluestore_read_eio=0,bluestore_reads_with_retries=0,bluestore_stored=1987856,bluestore_txc=275707,bluestore_write_big=0,bluestore_write_big_blobs=0,bluestore_write_big_bytes=0,bluestore_write_small=60,bluestore_write_small_bytes=343843,bluestore_write_small_deferred=22,bluestore_write_small_new=38,bluestore_write_small_pre_read=22,bluestore_write_small_unused=0,commit_lat.avgcount=275707,commit_lat.avgtime=0.00699778,commit_lat.sum=1929.337103334,compress_lat.avgcount=0,compress_lat.avgtime=0,compress_lat.sum=0,compress_rejected_count=0,compress_success_count=0,csum_lat.avgcount=67,csum_lat.avgtime=0.000032601,csum_lat.sum=0.002184323,decompress_lat.avgcount=0,decompress_lat.avgtime=0,decompress_lat.sum=0,deferred_write_bytes=0,deferred_write_ops=0,kv_commit_lat.avgcount=268870,kv_commit_lat.avgtime=0.006365428,kv_commit_lat.sum=1711.472749866,kv_final_lat.avgcount=268867,kv_final_lat.avgtime=0.000043227,kv_final_lat.sum=11.622427109,kv_flush_lat.avgcount=268870,kv_flush_lat.avgtime=0.000000223,kv_flush_lat.sum=0.060141588,kv_sync_lat.avgcount=268870,kv_sync_lat.avgtime=0.006365652,kv_sync_lat.sum=1711.532891454,omap_lower_bound_lat.avgcount=2,omap_lower_bound_lat.avgtime=0.000006524,omap_lower_bound_lat.sum=0.000013048,omap_next_lat.avgcount=6704,omap_next_lat.avgtime=0.000004721,omap_next_lat.sum=0.031654097,omap_seek_to_first_lat.avgcount=323,omap_seek_to_first_lat.avgtime=0.00000522,omap_seek_to_first_lat.sum=0.00168614,omap_upper_bound_lat.avgcount=4,omap_upper_bound_lat.avgtime=0.000013086,omap_upper_bound_lat.sum=0.000052344,read_lat.avgcount=227,read_lat.avgtime=0.000699457,read_lat.sum=0.158776879,read_onode_meta_lat.avgcount=311,read_onode_meta_lat.avgtime=0.000072207,read_onode_meta_lat.sum=0.022456667,read_wait_aio_lat.avgcount=84,read_wait_aio_lat.avgtime=0.001556141,read_wait_aio_lat.sum=0.130715885,state_aio_wait_lat.avgcount=275707,state_aio_wait_lat.avgtime=0.000000345,state_aio_wait_lat.sum=0.095246457,state_deferred_aio_wait_lat.avgcount=0,state_deferred_aio_wait_lat.avgtime=0,state_deferred_aio_wait_lat.sum=0,state_deferred_cleanup_lat.avgcount=0,state_deferred_cleanup_lat.avgtime=0,state_deferred_cleanup_lat.sum=0,state_deferred_queued_lat.avgcount=0,state_deferred_queued_lat.avgtime=0,state_deferred_queued_lat.sum=0,state_done_lat.avgcount=275696,state_done_lat.avgtime=0.00000286,state_done_lat.sum=0.788700007,state_finishing_lat.avgcount=275696,state_finishing_lat.avgtime=0.000000302,state_finishing_lat.sum=0.083437168,state_io_done_lat.avgcount=275707,state_io_done_lat.avgtime=0.000001041,state_io_done_lat.sum=0.287025147,state_kv_commiting_lat.avgcount=275707,state_kv_commiting_lat.avgtime=0.006424459,state_kv_commiting_lat.sum=1771.268407864,state_kv_done_lat.avgcount=275707,state_kv_done_lat.avgtime=0.000001627,state_kv_done_lat.sum=0.448805853,state_kv_queued_lat.avgcount=275707,state_kv_queued_lat.avgtime=0.000488565,state_kv_queued_lat.sum=134.7009424,state_prepare_lat.avgcount=275707,state_prepare_lat.avgtime=0.000082464,state_prepare_lat.sum=22.736065534,submit_lat.avgcount=275707,submit_lat.avgtime=0.000120236,submit_lat.sum=33.149934412,throttle_lat.avgcount=275707,throttle_lat.avgtime=0.000001571,throttle_lat.sum=0.433185935,write_pad_bytes=151773,write_penalty_read_ops=0 1587117698000000000 -> ceph,collection=finisher-objecter-finisher-0,host=stefanosd1,id=0,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 -> ceph,collection=objecter,host=stefanosd1,id=0,type=osd command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=19,omap_del=0,omap_rd=0,omap_wr=0,op=0,op_active=0,op_laggy=0,op_pg=0,op_r=0,op_reply=0,op_resend=0,op_rmw=0,op_send=0,op_send_bytes=0,op_w=0,osd_laggy=0,osd_session_close=0,osd_session_open=0,osd_sessions=0,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117698000000000 -> ceph,collection=finisher-commit_finisher,host=stefanosd1,id=0,type=osd complete_latency.avgcount=11,complete_latency.avgtime=0.003447516,complete_latency.sum=0.037922681,queue_len=0 1587117698000000000 -> ceph,collection=throttle-objecter_ops,host=stefanosd1,id=0,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=AsyncMessenger::Worker-0,host=stefanosd1,id=0,type=osd msgr_active_connections=2128,msgr_created_connections=33685,msgr_recv_bytes=8679123051,msgr_recv_messages=4200356,msgr_running_fast_dispatch_time=151.889337454,msgr_running_recv_time=297.632294886,msgr_running_send_time=599.20020523,msgr_running_total_time=1321.361931202,msgr_send_bytes=11716202897,msgr_send_messages=4347418 1587117698000000000 -> ceph,collection=throttle-osd_client_bytes,host=stefanosd1,id=0,type=osd get=476554,get_or_fail_fail=0,get_or_fail_success=476554,get_started=0,get_sum=103413728,max=524288000,put=476587,put_sum=103413728,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-bluestore_throttle_deferred_bytes,host=stefanosd1,id=0,type=osd get=11,get_or_fail_fail=0,get_or_fail_success=11,get_started=0,get_sum=7723117,max=201326592,put=0,put_sum=0,take=0,take_sum=0,val=7723117,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-cluster,host=stefanosd1,id=1,type=osd get=860895,get_or_fail_fail=0,get_or_fail_success=860895,get_started=0,get_sum=596482256,max=104857600,put=860895,put_sum=596482256,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-objecter_ops,host=stefanosd1,id=1,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-objecter_bytes,host=stefanosd1,id=1,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=finisher-defered_finisher,host=stefanosd1,id=1,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 -> ceph,collection=osd,host=stefanosd1,id=1,type=osd agent_evict=0,agent_flush=0,agent_skip=0,agent_wake=0,cached_crc=0,cached_crc_adjusted=0,copyfrom=0,heartbeat_to_peers=7,loadavg=11,map_message_epoch_dups=29,map_message_epochs=50,map_messages=39,messages_delayed_for_map=0,missed_crc=0,numpg=188,numpg_primary=71,numpg_removing=0,numpg_replica=117,numpg_stray=0,object_ctx_cache_hit=1349777,object_ctx_cache_total=2934118,op=1319230,op_before_dequeue_op_lat.avgcount=3792053,op_before_dequeue_op_lat.avgtime=0.000405802,op_before_dequeue_op_lat.sum=1538.826381623,op_before_queue_op_lat.avgcount=3778690,op_before_queue_op_lat.avgtime=0.000033273,op_before_queue_op_lat.sum=125.731131596,op_cache_hit=0,op_in_bytes=0,op_latency.avgcount=1319230,op_latency.avgtime=0.002858138,op_latency.sum=3770.541581676,op_out_bytes=1789210,op_prepare_latency.avgcount=1336472,op_prepare_latency.avgtime=0.000279458,op_prepare_latency.sum=373.488913339,op_process_latency.avgcount=1319230,op_process_latency.avgtime=0.002666408,op_process_latency.sum=3517.606407526,op_r=1075394,op_r_latency.avgcount=1075394,op_r_latency.avgtime=0.000303779,op_r_latency.sum=326.682443032,op_r_out_bytes=1789210,op_r_prepare_latency.avgcount=1075394,op_r_prepare_latency.avgtime=0.000171228,op_r_prepare_latency.sum=184.138580631,op_r_process_latency.avgcount=1075394,op_r_process_latency.avgtime=0.00011609,op_r_process_latency.sum=124.842894319,op_rw=243832,op_rw_in_bytes=0,op_rw_latency.avgcount=243832,op_rw_latency.avgtime=0.014123636,op_rw_latency.sum=3443.79445124,op_rw_out_bytes=0,op_rw_prepare_latency.avgcount=261072,op_rw_prepare_latency.avgtime=0.000725265,op_rw_prepare_latency.sum=189.346543463,op_rw_process_latency.avgcount=243832,op_rw_process_latency.avgtime=0.013914089,op_rw_process_latency.sum=3392.700241086,op_w=4,op_w_in_bytes=0,op_w_latency.avgcount=4,op_w_latency.avgtime=0.016171851,op_w_latency.sum=0.064687404,op_w_prepare_latency.avgcount=6,op_w_prepare_latency.avgtime=0.00063154,op_w_prepare_latency.sum=0.003789245,op_w_process_latency.avgcount=4,op_w_process_latency.avgtime=0.01581803,op_w_process_latency.sum=0.063272121,op_wip=0,osd_map_bl_cache_hit=36,osd_map_bl_cache_miss=40,osd_map_cache_hit=5404,osd_map_cache_miss=14,osd_map_cache_miss_low=0,osd_map_cache_miss_low_avg.avgcount=0,osd_map_cache_miss_low_avg.sum=0,osd_pg_biginfo=2333,osd_pg_fastinfo=576157,osd_pg_info=591751,osd_tier_flush_lat.avgcount=0,osd_tier_flush_lat.avgtime=0,osd_tier_flush_lat.sum=0,osd_tier_promote_lat.avgcount=0,osd_tier_promote_lat.avgtime=0,osd_tier_promote_lat.sum=0,osd_tier_r_lat.avgcount=0,osd_tier_r_lat.avgtime=0,osd_tier_r_lat.sum=0,pull=0,push=22,push_out_bytes=0,recovery_bytes=0,recovery_ops=21,stat_bytes=107369988096,stat_bytes_avail=106271997952,stat_bytes_used=1097990144,subop=306946,subop_in_bytes=204236742,subop_latency.avgcount=306946,subop_latency.avgtime=0.006744881,subop_latency.sum=2070.314452989,subop_pull=0,subop_pull_latency.avgcount=0,subop_pull_latency.avgtime=0,subop_pull_latency.sum=0,subop_push=0,subop_push_in_bytes=0,subop_push_latency.avgcount=0,subop_push_latency.avgtime=0,subop_push_latency.sum=0,subop_w=306946,subop_w_in_bytes=204236742,subop_w_latency.avgcount=306946,subop_w_latency.avgtime=0.006744881,subop_w_latency.sum=2070.314452989,tier_clean=0,tier_delay=0,tier_dirty=8,tier_evict=0,tier_flush=0,tier_flush_fail=0,tier_promote=0,tier_proxy_read=0,tier_proxy_write=0,tier_try_flush=0,tier_try_flush_fail=0,tier_whiteout=0 1587117698000000000 -> ceph,collection=objecter,host=stefanosd1,id=1,type=osd command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=19,omap_del=0,omap_rd=0,omap_wr=0,op=0,op_active=0,op_laggy=0,op_pg=0,op_r=0,op_reply=0,op_resend=0,op_rmw=0,op_send=0,op_send_bytes=0,op_w=0,osd_laggy=0,osd_session_close=0,osd_session_open=0,osd_sessions=0,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117698000000000 -> ceph,collection=AsyncMessenger::Worker-0,host=stefanosd1,id=1,type=osd msgr_active_connections=1356,msgr_created_connections=12290,msgr_recv_bytes=8577187219,msgr_recv_messages=6387040,msgr_running_fast_dispatch_time=475.903632306,msgr_running_recv_time=425.937196699,msgr_running_send_time=783.676217521,msgr_running_total_time=1989.242459076,msgr_send_bytes=12583034449,msgr_send_messages=6074344 1587117698000000000 -> ceph,collection=bluestore,host=stefanosd1,id=1,type=osd bluestore_allocated=24182784,bluestore_blob_split=0,bluestore_blobs=88,bluestore_buffer_bytes=614400,bluestore_buffer_hit_bytes=142047,bluestore_buffer_miss_bytes=541480,bluestore_buffers=41,bluestore_compressed=0,bluestore_compressed_allocated=0,bluestore_compressed_original=0,bluestore_extent_compress=0,bluestore_extents=88,bluestore_fragmentation_micros=1,bluestore_gc_merged=0,bluestore_onode_hits=1403948,bluestore_onode_misses=1584732,bluestore_onode_reshard=0,bluestore_onode_shard_hits=0,bluestore_onode_shard_misses=0,bluestore_onodes=459,bluestore_read_eio=0,bluestore_reads_with_retries=0,bluestore_stored=1985647,bluestore_txc=593150,bluestore_write_big=0,bluestore_write_big_blobs=0,bluestore_write_big_bytes=0,bluestore_write_small=58,bluestore_write_small_bytes=343091,bluestore_write_small_deferred=20,bluestore_write_small_new=38,bluestore_write_small_pre_read=20,bluestore_write_small_unused=0,commit_lat.avgcount=593150,commit_lat.avgtime=0.006514834,commit_lat.sum=3864.274280733,compress_lat.avgcount=0,compress_lat.avgtime=0,compress_lat.sum=0,compress_rejected_count=0,compress_success_count=0,csum_lat.avgcount=60,csum_lat.avgtime=0.000028258,csum_lat.sum=0.001695512,decompress_lat.avgcount=0,decompress_lat.avgtime=0,decompress_lat.sum=0,deferred_write_bytes=0,deferred_write_ops=0,kv_commit_lat.avgcount=578129,kv_commit_lat.avgtime=0.00570707,kv_commit_lat.sum=3299.423186928,kv_final_lat.avgcount=578124,kv_final_lat.avgtime=0.000042752,kv_final_lat.sum=24.716171934,kv_flush_lat.avgcount=578129,kv_flush_lat.avgtime=0.000000209,kv_flush_lat.sum=0.121169044,kv_sync_lat.avgcount=578129,kv_sync_lat.avgtime=0.00570728,kv_sync_lat.sum=3299.544355972,omap_lower_bound_lat.avgcount=22,omap_lower_bound_lat.avgtime=0.000005979,omap_lower_bound_lat.sum=0.000131539,omap_next_lat.avgcount=13248,omap_next_lat.avgtime=0.000004836,omap_next_lat.sum=0.064077797,omap_seek_to_first_lat.avgcount=525,omap_seek_to_first_lat.avgtime=0.000004906,omap_seek_to_first_lat.sum=0.002575786,omap_upper_bound_lat.avgcount=0,omap_upper_bound_lat.avgtime=0,omap_upper_bound_lat.sum=0,read_lat.avgcount=406,read_lat.avgtime=0.000383254,read_lat.sum=0.155601529,read_onode_meta_lat.avgcount=483,read_onode_meta_lat.avgtime=0.000008805,read_onode_meta_lat.sum=0.004252832,read_wait_aio_lat.avgcount=77,read_wait_aio_lat.avgtime=0.001907361,read_wait_aio_lat.sum=0.146866799,state_aio_wait_lat.avgcount=593150,state_aio_wait_lat.avgtime=0.000000388,state_aio_wait_lat.sum=0.230498048,state_deferred_aio_wait_lat.avgcount=0,state_deferred_aio_wait_lat.avgtime=0,state_deferred_aio_wait_lat.sum=0,state_deferred_cleanup_lat.avgcount=0,state_deferred_cleanup_lat.avgtime=0,state_deferred_cleanup_lat.sum=0,state_deferred_queued_lat.avgcount=0,state_deferred_queued_lat.avgtime=0,state_deferred_queued_lat.sum=0,state_done_lat.avgcount=593140,state_done_lat.avgtime=0.000003048,state_done_lat.sum=1.80789161,state_finishing_lat.avgcount=593140,state_finishing_lat.avgtime=0.000000325,state_finishing_lat.sum=0.192952339,state_io_done_lat.avgcount=593150,state_io_done_lat.avgtime=0.000001202,state_io_done_lat.sum=0.713333116,state_kv_commiting_lat.avgcount=593150,state_kv_commiting_lat.avgtime=0.005788541,state_kv_commiting_lat.sum=3433.473378536,state_kv_done_lat.avgcount=593150,state_kv_done_lat.avgtime=0.000001472,state_kv_done_lat.sum=0.873559611,state_kv_queued_lat.avgcount=593150,state_kv_queued_lat.avgtime=0.000634215,state_kv_queued_lat.sum=376.18491577,state_prepare_lat.avgcount=593150,state_prepare_lat.avgtime=0.000089694,state_prepare_lat.sum=53.202464675,submit_lat.avgcount=593150,submit_lat.avgtime=0.000127856,submit_lat.sum=75.83816759,throttle_lat.avgcount=593150,throttle_lat.avgtime=0.000001726,throttle_lat.sum=1.023832181,write_pad_bytes=144333,write_penalty_read_ops=0 1587117698000000000 -> ceph,collection=throttle-osd_client_bytes,host=stefanosd1,id=1,type=osd get=2920772,get_or_fail_fail=0,get_or_fail_success=2920772,get_started=0,get_sum=739935873,max=524288000,put=4888498,put_sum=739935873,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_front_client,host=stefanosd1,id=1,type=osd get=2605442,get_or_fail_fail=0,get_or_fail_success=2605442,get_started=0,get_sum=5221305768,max=104857600,put=2605442,put_sum=5221305768,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=AsyncMessenger::Worker-2,host=stefanosd1,id=1,type=osd msgr_active_connections=1375,msgr_created_connections=12689,msgr_recv_bytes=6393440855,msgr_recv_messages=3260458,msgr_running_fast_dispatch_time=120.622437418,msgr_running_recv_time=225.24709441,msgr_running_send_time=499.150587343,msgr_running_total_time=1043.340296846,msgr_send_bytes=11134862571,msgr_send_messages=3450760 1587117698000000000 -> ceph,collection=bluefs,host=stefanosd1,id=1,type=osd bytes_written_slow=0,bytes_written_sst=19824993,bytes_written_wal=1788507023,db_total_bytes=4294967296,db_used_bytes=522190848,files_written_sst=4,files_written_wal=2,gift_bytes=0,log_bytes=1056768,log_compactions=2,logged_bytes=1933271040,max_bytes_db=1483735040,max_bytes_slow=0,max_bytes_wal=0,num_files=12,reclaim_bytes=0,slow_total_bytes=0,slow_used_bytes=0,wal_total_bytes=0,wal_used_bytes=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_back_client,host=stefanosd1,id=1,type=osd get=2605442,get_or_fail_fail=0,get_or_fail_success=2605442,get_started=0,get_sum=5221305768,max=104857600,put=2605442,put_sum=5221305768,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-bluestore_throttle_deferred_bytes,host=stefanosd1,id=1,type=osd get=10,get_or_fail_fail=0,get_or_fail_success=10,get_started=0,get_sum=7052009,max=201326592,put=0,put_sum=0,take=0,take_sum=0,val=7052009,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=rocksdb,host=stefanosd1,id=1,type=osd compact=0,compact_queue_len=0,compact_queue_merge=0,compact_range=0,get=1586061,get_latency.avgcount=1586061,get_latency.avgtime=0.000083009,get_latency.sum=131.658296684,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=593150,submit_latency.avgtime=0.000172072,submit_latency.sum=102.064900673,submit_sync_latency.avgcount=578129,submit_sync_latency.avgtime=0.005447017,submit_sync_latency.sum=3149.078822012,submit_transaction=593150,submit_transaction_sync=578129 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_back_server,host=stefanosd1,id=1,type=osd get=2607669,get_or_fail_fail=0,get_or_fail_success=2607669,get_started=0,get_sum=5225768676,max=104857600,put=2607669,put_sum=5225768676,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=recoverystate_perf,host=stefanosd1,id=1,type=osd activating_latency.avgcount=104,activating_latency.avgtime=0.071646485,activating_latency.sum=7.451234493,active_latency.avgcount=33,active_latency.avgtime=1734.369034268,active_latency.sum=57234.178130859,backfilling_latency.avgcount=1,backfilling_latency.avgtime=2.598401698,backfilling_latency.sum=2.598401698,clean_latency.avgcount=33,clean_latency.avgtime=1734.213467342,clean_latency.sum=57229.044422292,down_latency.avgcount=0,down_latency.avgtime=0,down_latency.sum=0,getinfo_latency.avgcount=167,getinfo_latency.avgtime=0.373444627,getinfo_latency.sum=62.365252849,getlog_latency.avgcount=105,getlog_latency.avgtime=0.003575062,getlog_latency.sum=0.375381569,getmissing_latency.avgcount=104,getmissing_latency.avgtime=0.000157091,getmissing_latency.sum=0.016337565,incomplete_latency.avgcount=0,incomplete_latency.avgtime=0,incomplete_latency.sum=0,initial_latency.avgcount=188,initial_latency.avgtime=0.001833512,initial_latency.sum=0.344700343,notbackfilling_latency.avgcount=0,notbackfilling_latency.avgtime=0,notbackfilling_latency.sum=0,notrecovering_latency.avgcount=0,notrecovering_latency.avgtime=0,notrecovering_latency.sum=0,peering_latency.avgcount=167,peering_latency.avgtime=1.501818082,peering_latency.sum=250.803619796,primary_latency.avgcount=97,primary_latency.avgtime=591.344286378,primary_latency.sum=57360.395778762,recovered_latency.avgcount=104,recovered_latency.avgtime=0.000291138,recovered_latency.sum=0.030278433,recovering_latency.avgcount=2,recovering_latency.avgtime=0.142378096,recovering_latency.sum=0.284756192,replicaactive_latency.avgcount=32,replicaactive_latency.avgtime=1788.474901442,replicaactive_latency.sum=57231.196846165,repnotrecovering_latency.avgcount=34,repnotrecovering_latency.avgtime=1683.273587087,repnotrecovering_latency.sum=57231.301960987,reprecovering_latency.avgcount=2,reprecovering_latency.avgtime=0.418094818,reprecovering_latency.sum=0.836189637,repwaitbackfillreserved_latency.avgcount=0,repwaitbackfillreserved_latency.avgtime=0,repwaitbackfillreserved_latency.sum=0,repwaitrecoveryreserved_latency.avgcount=2,repwaitrecoveryreserved_latency.avgtime=0.000588413,repwaitrecoveryreserved_latency.sum=0.001176827,reset_latency.avgcount=433,reset_latency.avgtime=0.15669689,reset_latency.sum=67.849753631,start_latency.avgcount=433,start_latency.avgtime=0.000412707,start_latency.sum=0.178702508,started_latency.avgcount=245,started_latency.avgtime=468.419544137,started_latency.sum=114762.788313581,stray_latency.avgcount=266,stray_latency.avgtime=1.489291271,stray_latency.sum=396.151478238,waitactingchange_latency.avgcount=1,waitactingchange_latency.avgtime=0.982689906,waitactingchange_latency.sum=0.982689906,waitlocalbackfillreserved_latency.avgcount=1,waitlocalbackfillreserved_latency.avgtime=0.000542092,waitlocalbackfillreserved_latency.sum=0.000542092,waitlocalrecoveryreserved_latency.avgcount=2,waitlocalrecoveryreserved_latency.avgtime=0.00391669,waitlocalrecoveryreserved_latency.sum=0.007833381,waitremotebackfillreserved_latency.avgcount=1,waitremotebackfillreserved_latency.avgtime=0.003110409,waitremotebackfillreserved_latency.sum=0.003110409,waitremoterecoveryreserved_latency.avgcount=2,waitremoterecoveryreserved_latency.avgtime=0.012229338,waitremoterecoveryreserved_latency.sum=0.024458677,waitupthru_latency.avgcount=104,waitupthru_latency.avgtime=1.807608905,waitupthru_latency.sum=187.991326197 1587117698000000000 -> ceph,collection=AsyncMessenger::Worker-1,host=stefanosd1,id=1,type=osd msgr_active_connections=1289,msgr_created_connections=9469,msgr_recv_bytes=8348149800,msgr_recv_messages=5048791,msgr_running_fast_dispatch_time=313.754567889,msgr_running_recv_time=372.054833029,msgr_running_send_time=694.900405016,msgr_running_total_time=1656.294769387,msgr_send_bytes=11550148208,msgr_send_messages=5175962 1587117698000000000 -> ceph,collection=throttle-bluestore_throttle_bytes,host=stefanosd1,id=1,type=osd get=593150,get_or_fail_fail=0,get_or_fail_success=0,get_started=593150,get_sum=398147414260,max=67108864,put=578129,put_sum=398147414260,take=0,take_sum=0,val=0,wait.avgcount=29,wait.avgtime=0.000972655,wait.sum=0.028207005 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-ms_objecter,host=stefanosd1,id=1,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=cct,host=stefanosd1,id=1,type=osd total_workers=6,unhealthy_workers=0 1587117698000000000 -> ceph,collection=mempool,host=stefanosd1,id=1,type=osd bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=13064,bluefs_items=593,bluestore_alloc_bytes=230288,bluestore_alloc_items=28786,bluestore_cache_data_bytes=614400,bluestore_cache_data_items=41,bluestore_cache_onode_bytes=301104,bluestore_cache_onode_items=459,bluestore_cache_other_bytes=230945,bluestore_cache_other_items=26119,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=7520,bluestore_txc_items=10,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=657768,bluestore_writing_deferred_items=172,bluestore_writing_items=0,buffer_anon_bytes=2328515,buffer_anon_items=271,buffer_meta_bytes=5808,buffer_meta_items=66,mds_co_bytes=0,mds_co_items=0,osd_bytes=2406400,osd_items=188,osd_mapbl_bytes=139623,osd_mapbl_items=9,osd_pglog_bytes=6768784,osd_pglog_items=18179,osdmap_bytes=710892,osdmap_items=4426,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-client,host=stefanosd1,id=1,type=osd get=2932513,get_or_fail_fail=0,get_or_fail_success=2932513,get_started=0,get_sum=740620215,max=104857600,put=2932513,put_sum=740620215,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_front_server,host=stefanosd1,id=1,type=osd get=2607669,get_or_fail_fail=0,get_or_fail_success=2607669,get_started=0,get_sum=5225768676,max=104857600,put=2607669,put_sum=5225768676,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=finisher-commit_finisher,host=stefanosd1,id=1,type=osd complete_latency.avgcount=10,complete_latency.avgtime=0.002884646,complete_latency.sum=0.028846469,queue_len=0 1587117698000000000 -> ceph,collection=finisher-objecter-finisher-0,host=stefanosd1,id=1,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 -> ceph,collection=throttle-objecter_bytes,host=stefanosd1,id=2,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=finisher-commit_finisher,host=stefanosd1,id=2,type=osd complete_latency.avgcount=11,complete_latency.avgtime=0.002714416,complete_latency.sum=0.029858583,queue_len=0 1587117698000000000 -> ceph,collection=finisher-defered_finisher,host=stefanosd1,id=2,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 -> ceph,collection=objecter,host=stefanosd1,id=2,type=osd command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=19,omap_del=0,omap_rd=0,omap_wr=0,op=0,op_active=0,op_laggy=0,op_pg=0,op_r=0,op_reply=0,op_resend=0,op_rmw=0,op_send=0,op_send_bytes=0,op_w=0,osd_laggy=0,osd_session_close=0,osd_session_open=0,osd_sessions=0,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_back_client,host=stefanosd1,id=2,type=osd get=2607136,get_or_fail_fail=0,get_or_fail_success=2607136,get_started=0,get_sum=5224700544,max=104857600,put=2607136,put_sum=5224700544,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=mempool,host=stefanosd1,id=2,type=osd bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=11624,bluefs_items=522,bluestore_alloc_bytes=230288,bluestore_alloc_items=28786,bluestore_cache_data_bytes=614400,bluestore_cache_data_items=41,bluestore_cache_onode_bytes=228288,bluestore_cache_onode_items=348,bluestore_cache_other_bytes=174158,bluestore_cache_other_items=18527,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=8272,bluestore_txc_items=11,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=670130,bluestore_writing_deferred_items=176,bluestore_writing_items=0,buffer_anon_bytes=2311664,buffer_anon_items=244,buffer_meta_bytes=5456,buffer_meta_items=62,mds_co_bytes=0,mds_co_items=0,osd_bytes=1920000,osd_items=150,osd_mapbl_bytes=155152,osd_mapbl_items=10,osd_pglog_bytes=3393520,osd_pglog_items=9128,osdmap_bytes=710892,osdmap_items=4426,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117698000000000 -> ceph,collection=osd,host=stefanosd1,id=2,type=osd agent_evict=0,agent_flush=0,agent_skip=0,agent_wake=0,cached_crc=0,cached_crc_adjusted=0,copyfrom=0,heartbeat_to_peers=7,loadavg=11,map_message_epoch_dups=37,map_message_epochs=56,map_messages=37,messages_delayed_for_map=0,missed_crc=0,numpg=150,numpg_primary=59,numpg_removing=0,numpg_replica=91,numpg_stray=0,object_ctx_cache_hit=705923,object_ctx_cache_total=705951,op=690584,op_before_dequeue_op_lat.avgcount=1155697,op_before_dequeue_op_lat.avgtime=0.000217926,op_before_dequeue_op_lat.sum=251.856487141,op_before_queue_op_lat.avgcount=1148445,op_before_queue_op_lat.avgtime=0.000039696,op_before_queue_op_lat.sum=45.589516462,op_cache_hit=0,op_in_bytes=0,op_latency.avgcount=690584,op_latency.avgtime=0.002488685,op_latency.sum=1718.646504654,op_out_bytes=1026000,op_prepare_latency.avgcount=698700,op_prepare_latency.avgtime=0.000300375,op_prepare_latency.sum=209.872029659,op_process_latency.avgcount=690584,op_process_latency.avgtime=0.00230742,op_process_latency.sum=1593.46739165,op_r=548020,op_r_latency.avgcount=548020,op_r_latency.avgtime=0.000298287,op_r_latency.sum=163.467760649,op_r_out_bytes=1026000,op_r_prepare_latency.avgcount=548020,op_r_prepare_latency.avgtime=0.000186359,op_r_prepare_latency.sum=102.128629183,op_r_process_latency.avgcount=548020,op_r_process_latency.avgtime=0.00012716,op_r_process_latency.sum=69.686468884,op_rw=142562,op_rw_in_bytes=0,op_rw_latency.avgcount=142562,op_rw_latency.avgtime=0.010908597,op_rw_latency.sum=1555.151525732,op_rw_out_bytes=0,op_rw_prepare_latency.avgcount=150678,op_rw_prepare_latency.avgtime=0.000715043,op_rw_prepare_latency.sum=107.741399304,op_rw_process_latency.avgcount=142562,op_rw_process_latency.avgtime=0.01068836,op_rw_process_latency.sum=1523.754107887,op_w=2,op_w_in_bytes=0,op_w_latency.avgcount=2,op_w_latency.avgtime=0.013609136,op_w_latency.sum=0.027218273,op_w_prepare_latency.avgcount=2,op_w_prepare_latency.avgtime=0.001000586,op_w_prepare_latency.sum=0.002001172,op_w_process_latency.avgcount=2,op_w_process_latency.avgtime=0.013407439,op_w_process_latency.sum=0.026814879,op_wip=0,osd_map_bl_cache_hit=15,osd_map_bl_cache_miss=41,osd_map_cache_hit=4241,osd_map_cache_miss=14,osd_map_cache_miss_low=0,osd_map_cache_miss_low_avg.avgcount=0,osd_map_cache_miss_low_avg.sum=0,osd_pg_biginfo=1824,osd_pg_fastinfo=285998,osd_pg_info=294869,osd_tier_flush_lat.avgcount=0,osd_tier_flush_lat.avgtime=0,osd_tier_flush_lat.sum=0,osd_tier_promote_lat.avgcount=0,osd_tier_promote_lat.avgtime=0,osd_tier_promote_lat.sum=0,osd_tier_r_lat.avgcount=0,osd_tier_r_lat.avgtime=0,osd_tier_r_lat.sum=0,pull=0,push=1,push_out_bytes=0,recovery_bytes=0,recovery_ops=0,stat_bytes=107369988096,stat_bytes_avail=106271932416,stat_bytes_used=1098055680,subop=134165,subop_in_bytes=89501237,subop_latency.avgcount=134165,subop_latency.avgtime=0.007313523,subop_latency.sum=981.218888627,subop_pull=0,subop_pull_latency.avgcount=0,subop_pull_latency.avgtime=0,subop_pull_latency.sum=0,subop_push=0,subop_push_in_bytes=0,subop_push_latency.avgcount=0,subop_push_latency.avgtime=0,subop_push_latency.sum=0,subop_w=134165,subop_w_in_bytes=89501237,subop_w_latency.avgcount=134165,subop_w_latency.avgtime=0.007313523,subop_w_latency.sum=981.218888627,tier_clean=0,tier_delay=0,tier_dirty=4,tier_evict=0,tier_flush=0,tier_flush_fail=0,tier_promote=0,tier_proxy_read=0,tier_proxy_write=0,tier_try_flush=0,tier_try_flush_fail=0,tier_whiteout=0 1587117698000000000 -> ceph,collection=AsyncMessenger::Worker-1,host=stefanosd1,id=2,type=osd msgr_active_connections=746,msgr_created_connections=15212,msgr_recv_bytes=8633229006,msgr_recv_messages=4284202,msgr_running_fast_dispatch_time=153.820479102,msgr_running_recv_time=282.031655658,msgr_running_send_time=585.444749736,msgr_running_total_time=1231.431789242,msgr_send_bytes=11962769351,msgr_send_messages=4440622 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-ms_objecter,host=stefanosd1,id=2,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_front_client,host=stefanosd1,id=2,type=osd get=2607136,get_or_fail_fail=0,get_or_fail_success=2607136,get_started=0,get_sum=5224700544,max=104857600,put=2607136,put_sum=5224700544,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=bluefs,host=stefanosd1,id=2,type=osd bytes_written_slow=0,bytes_written_sst=9065815,bytes_written_wal=901884611,db_total_bytes=4294967296,db_used_bytes=546308096,files_written_sst=3,files_written_wal=2,gift_bytes=0,log_bytes=225726464,log_compactions=1,logged_bytes=1195945984,max_bytes_db=1234173952,max_bytes_slow=0,max_bytes_wal=0,num_files=11,reclaim_bytes=0,slow_total_bytes=0,slow_used_bytes=0,wal_total_bytes=0,wal_used_bytes=0 1587117698000000000 -> ceph,collection=recoverystate_perf,host=stefanosd1,id=2,type=osd activating_latency.avgcount=88,activating_latency.avgtime=0.086149065,activating_latency.sum=7.581117751,active_latency.avgcount=29,active_latency.avgtime=1790.849396082,active_latency.sum=51934.632486379,backfilling_latency.avgcount=0,backfilling_latency.avgtime=0,backfilling_latency.sum=0,clean_latency.avgcount=29,clean_latency.avgtime=1790.754765195,clean_latency.sum=51931.888190683,down_latency.avgcount=0,down_latency.avgtime=0,down_latency.sum=0,getinfo_latency.avgcount=134,getinfo_latency.avgtime=0.427567953,getinfo_latency.sum=57.294105786,getlog_latency.avgcount=88,getlog_latency.avgtime=0.011810192,getlog_latency.sum=1.03929697,getmissing_latency.avgcount=88,getmissing_latency.avgtime=0.000104598,getmissing_latency.sum=0.009204673,incomplete_latency.avgcount=0,incomplete_latency.avgtime=0,incomplete_latency.sum=0,initial_latency.avgcount=150,initial_latency.avgtime=0.001251361,initial_latency.sum=0.187704197,notbackfilling_latency.avgcount=0,notbackfilling_latency.avgtime=0,notbackfilling_latency.sum=0,notrecovering_latency.avgcount=0,notrecovering_latency.avgtime=0,notrecovering_latency.sum=0,peering_latency.avgcount=134,peering_latency.avgtime=0.998405763,peering_latency.sum=133.786372331,primary_latency.avgcount=75,primary_latency.avgtime=693.473306562,primary_latency.sum=52010.497992212,recovered_latency.avgcount=88,recovered_latency.avgtime=0.000609715,recovered_latency.sum=0.053654964,recovering_latency.avgcount=1,recovering_latency.avgtime=0.100713031,recovering_latency.sum=0.100713031,replicaactive_latency.avgcount=21,replicaactive_latency.avgtime=1790.852354921,replicaactive_latency.sum=37607.89945336,repnotrecovering_latency.avgcount=21,repnotrecovering_latency.avgtime=1790.852315529,repnotrecovering_latency.sum=37607.898626121,reprecovering_latency.avgcount=0,reprecovering_latency.avgtime=0,reprecovering_latency.sum=0,repwaitbackfillreserved_latency.avgcount=0,repwaitbackfillreserved_latency.avgtime=0,repwaitbackfillreserved_latency.sum=0,repwaitrecoveryreserved_latency.avgcount=0,repwaitrecoveryreserved_latency.avgtime=0,repwaitrecoveryreserved_latency.sum=0,reset_latency.avgcount=346,reset_latency.avgtime=0.126826803,reset_latency.sum=43.882073917,start_latency.avgcount=346,start_latency.avgtime=0.000233277,start_latency.sum=0.080713962,started_latency.avgcount=196,started_latency.avgtime=457.885378797,started_latency.sum=89745.534244237,stray_latency.avgcount=212,stray_latency.avgtime=1.013774396,stray_latency.sum=214.920172121,waitactingchange_latency.avgcount=0,waitactingchange_latency.avgtime=0,waitactingchange_latency.sum=0,waitlocalbackfillreserved_latency.avgcount=0,waitlocalbackfillreserved_latency.avgtime=0,waitlocalbackfillreserved_latency.sum=0,waitlocalrecoveryreserved_latency.avgcount=1,waitlocalrecoveryreserved_latency.avgtime=0.001572379,waitlocalrecoveryreserved_latency.sum=0.001572379,waitremotebackfillreserved_latency.avgcount=0,waitremotebackfillreserved_latency.avgtime=0,waitremotebackfillreserved_latency.sum=0,waitremoterecoveryreserved_latency.avgcount=1,waitremoterecoveryreserved_latency.avgtime=0.012729633,waitremoterecoveryreserved_latency.sum=0.012729633,waitupthru_latency.avgcount=88,waitupthru_latency.avgtime=0.857137729,waitupthru_latency.sum=75.428120205 1587117698000000000 -> ceph,collection=throttle-objecter_ops,host=stefanosd1,id=2,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=bluestore,host=stefanosd1,id=2,type=osd bluestore_allocated=24248320,bluestore_blob_split=0,bluestore_blobs=83,bluestore_buffer_bytes=614400,bluestore_buffer_hit_bytes=161362,bluestore_buffer_miss_bytes=534799,bluestore_buffers=41,bluestore_compressed=0,bluestore_compressed_allocated=0,bluestore_compressed_original=0,bluestore_extent_compress=0,bluestore_extents=83,bluestore_fragmentation_micros=1,bluestore_gc_merged=0,bluestore_onode_hits=723852,bluestore_onode_misses=364,bluestore_onode_reshard=0,bluestore_onode_shard_hits=0,bluestore_onode_shard_misses=0,bluestore_onodes=348,bluestore_read_eio=0,bluestore_reads_with_retries=0,bluestore_stored=1984402,bluestore_txc=295997,bluestore_write_big=0,bluestore_write_big_blobs=0,bluestore_write_big_bytes=0,bluestore_write_small=60,bluestore_write_small_bytes=343843,bluestore_write_small_deferred=22,bluestore_write_small_new=38,bluestore_write_small_pre_read=22,bluestore_write_small_unused=0,commit_lat.avgcount=295997,commit_lat.avgtime=0.006994931,commit_lat.sum=2070.478673619,compress_lat.avgcount=0,compress_lat.avgtime=0,compress_lat.sum=0,compress_rejected_count=0,compress_success_count=0,csum_lat.avgcount=47,csum_lat.avgtime=0.000034434,csum_lat.sum=0.001618423,decompress_lat.avgcount=0,decompress_lat.avgtime=0,decompress_lat.sum=0,deferred_write_bytes=0,deferred_write_ops=0,kv_commit_lat.avgcount=291889,kv_commit_lat.avgtime=0.006347015,kv_commit_lat.sum=1852.624108527,kv_final_lat.avgcount=291885,kv_final_lat.avgtime=0.00004358,kv_final_lat.sum=12.720529751,kv_flush_lat.avgcount=291889,kv_flush_lat.avgtime=0.000000211,kv_flush_lat.sum=0.061636079,kv_sync_lat.avgcount=291889,kv_sync_lat.avgtime=0.006347227,kv_sync_lat.sum=1852.685744606,omap_lower_bound_lat.avgcount=1,omap_lower_bound_lat.avgtime=0.000004482,omap_lower_bound_lat.sum=0.000004482,omap_next_lat.avgcount=6933,omap_next_lat.avgtime=0.000003956,omap_next_lat.sum=0.027427456,omap_seek_to_first_lat.avgcount=309,omap_seek_to_first_lat.avgtime=0.000005879,omap_seek_to_first_lat.sum=0.001816658,omap_upper_bound_lat.avgcount=0,omap_upper_bound_lat.avgtime=0,omap_upper_bound_lat.sum=0,read_lat.avgcount=229,read_lat.avgtime=0.000394981,read_lat.sum=0.090450704,read_onode_meta_lat.avgcount=295,read_onode_meta_lat.avgtime=0.000016832,read_onode_meta_lat.sum=0.004965516,read_wait_aio_lat.avgcount=66,read_wait_aio_lat.avgtime=0.001237841,read_wait_aio_lat.sum=0.081697561,state_aio_wait_lat.avgcount=295997,state_aio_wait_lat.avgtime=0.000000357,state_aio_wait_lat.sum=0.105827433,state_deferred_aio_wait_lat.avgcount=0,state_deferred_aio_wait_lat.avgtime=0,state_deferred_aio_wait_lat.sum=0,state_deferred_cleanup_lat.avgcount=0,state_deferred_cleanup_lat.avgtime=0,state_deferred_cleanup_lat.sum=0,state_deferred_queued_lat.avgcount=0,state_deferred_queued_lat.avgtime=0,state_deferred_queued_lat.sum=0,state_done_lat.avgcount=295986,state_done_lat.avgtime=0.000003017,state_done_lat.sum=0.893199127,state_finishing_lat.avgcount=295986,state_finishing_lat.avgtime=0.000000306,state_finishing_lat.sum=0.090792683,state_io_done_lat.avgcount=295997,state_io_done_lat.avgtime=0.000001066,state_io_done_lat.sum=0.315577655,state_kv_commiting_lat.avgcount=295997,state_kv_commiting_lat.avgtime=0.006423586,state_kv_commiting_lat.sum=1901.362268572,state_kv_done_lat.avgcount=295997,state_kv_done_lat.avgtime=0.00000155,state_kv_done_lat.sum=0.458963064,state_kv_queued_lat.avgcount=295997,state_kv_queued_lat.avgtime=0.000477234,state_kv_queued_lat.sum=141.260101773,state_prepare_lat.avgcount=295997,state_prepare_lat.avgtime=0.000091806,state_prepare_lat.sum=27.174436583,submit_lat.avgcount=295997,submit_lat.avgtime=0.000135729,submit_lat.sum=40.17557682,throttle_lat.avgcount=295997,throttle_lat.avgtime=0.000002734,throttle_lat.sum=0.809479837,write_pad_bytes=151773,write_penalty_read_ops=0 1587117698000000000 -> ceph,collection=throttle-bluestore_throttle_bytes,host=stefanosd1,id=2,type=osd get=295997,get_or_fail_fail=0,get_or_fail_success=0,get_started=295997,get_sum=198686579299,max=67108864,put=291889,put_sum=198686579299,take=0,take_sum=0,val=0,wait.avgcount=83,wait.avgtime=0.003670612,wait.sum=0.304660858 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-cluster,host=stefanosd1,id=2,type=osd get=452060,get_or_fail_fail=0,get_or_fail_success=452060,get_started=0,get_sum=269934345,max=104857600,put=452060,put_sum=269934345,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-bluestore_throttle_deferred_bytes,host=stefanosd1,id=2,type=osd get=11,get_or_fail_fail=0,get_or_fail_success=11,get_started=0,get_sum=7723117,max=201326592,put=0,put_sum=0,take=0,take_sum=0,val=7723117,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_front_server,host=stefanosd1,id=2,type=osd get=2607433,get_or_fail_fail=0,get_or_fail_success=2607433,get_started=0,get_sum=5225295732,max=104857600,put=2607433,put_sum=5225295732,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=finisher-objecter-finisher-0,host=stefanosd1,id=2,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 -> ceph,collection=cct,host=stefanosd1,id=2,type=osd total_workers=6,unhealthy_workers=0 1587117698000000000 -> ceph,collection=AsyncMessenger::Worker-2,host=stefanosd1,id=2,type=osd msgr_active_connections=670,msgr_created_connections=13455,msgr_recv_bytes=6334605563,msgr_recv_messages=3287843,msgr_running_fast_dispatch_time=137.016615819,msgr_running_recv_time=240.687997039,msgr_running_send_time=471.710658466,msgr_running_total_time=1034.029109337,msgr_send_bytes=9753423475,msgr_send_messages=3439611 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-client,host=stefanosd1,id=2,type=osd get=710355,get_or_fail_fail=0,get_or_fail_success=710355,get_started=0,get_sum=166306283,max=104857600,put=710355,put_sum=166306283,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-hb_back_server,host=stefanosd1,id=2,type=osd get=2607433,get_or_fail_fail=0,get_or_fail_success=2607433,get_started=0,get_sum=5225295732,max=104857600,put=2607433,put_sum=5225295732,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=AsyncMessenger::Worker-0,host=stefanosd1,id=2,type=osd msgr_active_connections=705,msgr_created_connections=17953,msgr_recv_bytes=7261438733,msgr_recv_messages=4496034,msgr_running_fast_dispatch_time=254.716476808,msgr_running_recv_time=272.196741555,msgr_running_send_time=571.102924903,msgr_running_total_time=1338.461077493,msgr_send_bytes=10772250508,msgr_send_messages=4192781 1587117698000000000 -> ceph,collection=rocksdb,host=stefanosd1,id=2,type=osd compact=0,compact_queue_len=0,compact_queue_merge=0,compact_range=0,get=1424,get_latency.avgcount=1424,get_latency.avgtime=0.000030752,get_latency.sum=0.043792142,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=295997,submit_latency.avgtime=0.000173137,submit_latency.sum=51.248072285,submit_sync_latency.avgcount=291889,submit_sync_latency.avgtime=0.006094397,submit_sync_latency.sum=1778.887521449,submit_transaction=295997,submit_transaction_sync=291889 1587117698000000000 -> ceph,collection=throttle-osd_client_bytes,host=stefanosd1,id=2,type=osd get=698701,get_or_fail_fail=0,get_or_fail_success=698701,get_started=0,get_sum=165630172,max=524288000,put=920880,put_sum=165630172,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 -> ceph,collection=mds_sessions,host=stefanmds1,id=stefanmds1,type=mds average_load=0,avg_session_uptime=0,session_add=0,session_count=0,session_remove=0,sessions_open=0,sessions_stale=0,total_load=0 1587117476000000000 -> ceph,collection=mempool,host=stefanmds1,id=stefanmds1,type=mds bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=0,bluefs_items=0,bluestore_alloc_bytes=0,bluestore_alloc_items=0,bluestore_cache_data_bytes=0,bluestore_cache_data_items=0,bluestore_cache_onode_bytes=0,bluestore_cache_onode_items=0,bluestore_cache_other_bytes=0,bluestore_cache_other_items=0,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=0,bluestore_txc_items=0,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=0,bluestore_writing_deferred_items=0,bluestore_writing_items=0,buffer_anon_bytes=132069,buffer_anon_items=82,buffer_meta_bytes=0,buffer_meta_items=0,mds_co_bytes=44208,mds_co_items=154,osd_bytes=0,osd_items=0,osd_mapbl_bytes=0,osd_mapbl_items=0,osd_pglog_bytes=0,osd_pglog_items=0,osdmap_bytes=16952,osdmap_items=139,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117476000000000 -> ceph,collection=objecter,host=stefanmds1,id=stefanmds1,type=mds command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=1,omap_del=0,omap_rd=28,omap_wr=1,op=33,op_active=0,op_laggy=0,op_pg=0,op_r=26,op_reply=33,op_resend=2,op_rmw=0,op_send=35,op_send_bytes=364,op_w=7,osd_laggy=0,osd_session_close=91462,osd_session_open=91468,osd_sessions=6,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=5,osdop_getxattr=14,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=8,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=2,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=1,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117476000000000 -> ceph,collection=cct,host=stefanmds1,id=stefanmds1,type=mds total_workers=1,unhealthy_workers=0 1587117476000000000 -> ceph,collection=mds_server,host=stefanmds1,id=stefanmds1,type=mds cap_revoke_eviction=0,dispatch_client_request=0,dispatch_server_request=0,handle_client_request=0,handle_client_session=0,handle_slave_request=0,req_create_latency.avgcount=0,req_create_latency.avgtime=0,req_create_latency.sum=0,req_getattr_latency.avgcount=0,req_getattr_latency.avgtime=0,req_getattr_latency.sum=0,req_getfilelock_latency.avgcount=0,req_getfilelock_latency.avgtime=0,req_getfilelock_latency.sum=0,req_link_latency.avgcount=0,req_link_latency.avgtime=0,req_link_latency.sum=0,req_lookup_latency.avgcount=0,req_lookup_latency.avgtime=0,req_lookup_latency.sum=0,req_lookuphash_latency.avgcount=0,req_lookuphash_latency.avgtime=0,req_lookuphash_latency.sum=0,req_lookupino_latency.avgcount=0,req_lookupino_latency.avgtime=0,req_lookupino_latency.sum=0,req_lookupname_latency.avgcount=0,req_lookupname_latency.avgtime=0,req_lookupname_latency.sum=0,req_lookupparent_latency.avgcount=0,req_lookupparent_latency.avgtime=0,req_lookupparent_latency.sum=0,req_lookupsnap_latency.avgcount=0,req_lookupsnap_latency.avgtime=0,req_lookupsnap_latency.sum=0,req_lssnap_latency.avgcount=0,req_lssnap_latency.avgtime=0,req_lssnap_latency.sum=0,req_mkdir_latency.avgcount=0,req_mkdir_latency.avgtime=0,req_mkdir_latency.sum=0,req_mknod_latency.avgcount=0,req_mknod_latency.avgtime=0,req_mknod_latency.sum=0,req_mksnap_latency.avgcount=0,req_mksnap_latency.avgtime=0,req_mksnap_latency.sum=0,req_open_latency.avgcount=0,req_open_latency.avgtime=0,req_open_latency.sum=0,req_readdir_latency.avgcount=0,req_readdir_latency.avgtime=0,req_readdir_latency.sum=0,req_rename_latency.avgcount=0,req_rename_latency.avgtime=0,req_rename_latency.sum=0,req_renamesnap_latency.avgcount=0,req_renamesnap_latency.avgtime=0,req_renamesnap_latency.sum=0,req_rmdir_latency.avgcount=0,req_rmdir_latency.avgtime=0,req_rmdir_latency.sum=0,req_rmsnap_latency.avgcount=0,req_rmsnap_latency.avgtime=0,req_rmsnap_latency.sum=0,req_rmxattr_latency.avgcount=0,req_rmxattr_latency.avgtime=0,req_rmxattr_latency.sum=0,req_setattr_latency.avgcount=0,req_setattr_latency.avgtime=0,req_setattr_latency.sum=0,req_setdirlayout_latency.avgcount=0,req_setdirlayout_latency.avgtime=0,req_setdirlayout_latency.sum=0,req_setfilelock_latency.avgcount=0,req_setfilelock_latency.avgtime=0,req_setfilelock_latency.sum=0,req_setlayout_latency.avgcount=0,req_setlayout_latency.avgtime=0,req_setlayout_latency.sum=0,req_setxattr_latency.avgcount=0,req_setxattr_latency.avgtime=0,req_setxattr_latency.sum=0,req_symlink_latency.avgcount=0,req_symlink_latency.avgtime=0,req_symlink_latency.sum=0,req_unlink_latency.avgcount=0,req_unlink_latency.avgtime=0,req_unlink_latency.sum=0 1587117476000000000 -> ceph,collection=AsyncMessenger::Worker-2,host=stefanmds1,id=stefanmds1,type=mds msgr_active_connections=84,msgr_created_connections=68511,msgr_recv_bytes=238078,msgr_recv_messages=2655,msgr_running_fast_dispatch_time=0.004247777,msgr_running_recv_time=25.369012545,msgr_running_send_time=3.743427461,msgr_running_total_time=130.277111559,msgr_send_bytes=172767043,msgr_send_messages=18172 1587117476000000000 -> ceph,collection=mds_log,host=stefanmds1,id=stefanmds1,type=mds ev=0,evadd=0,evex=0,evexd=0,evexg=0,evtrm=0,expos=4194304,jlat.avgcount=0,jlat.avgtime=0,jlat.sum=0,rdpos=4194304,replayed=1,seg=1,segadd=0,segex=0,segexd=0,segexg=0,segtrm=0,wrpos=0 1587117476000000000 -> ceph,collection=AsyncMessenger::Worker-0,host=stefanmds1,id=stefanmds1,type=mds msgr_active_connections=595,msgr_created_connections=943825,msgr_recv_bytes=78618003,msgr_recv_messages=914080,msgr_running_fast_dispatch_time=0.001544386,msgr_running_recv_time=459.627068807,msgr_running_send_time=469.337032316,msgr_running_total_time=2744.084305898,msgr_send_bytes=61684163658,msgr_send_messages=1858008 1587117476000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-mds,host=stefanmds1,id=stefanmds1,type=mds get=1216458,get_or_fail_fail=0,get_or_fail_success=1216458,get_started=0,get_sum=51976882,max=104857600,put=1216458,put_sum=51976882,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000 -> ceph,collection=AsyncMessenger::Worker-1,host=stefanmds1,id=stefanmds1,type=mds msgr_active_connections=226,msgr_created_connections=42679,msgr_recv_bytes=63140151,msgr_recv_messages=299727,msgr_running_fast_dispatch_time=26.316138629,msgr_running_recv_time=36.969916165,msgr_running_send_time=70.457421128,msgr_running_total_time=226.230019936,msgr_send_bytes=193154464,msgr_send_messages=310481 1587117476000000000 -> ceph,collection=mds,host=stefanmds1,id=stefanmds1,type=mds caps=0,dir_commit=0,dir_fetch=12,dir_merge=0,dir_split=0,exported=0,exported_inodes=0,forward=0,imported=0,imported_inodes=0,inode_max=2147483647,inodes=10,inodes_bottom=3,inodes_expired=0,inodes_pin_tail=0,inodes_pinned=10,inodes_top=7,inodes_with_caps=0,load_cent=0,openino_backtrace_fetch=0,openino_dir_fetch=0,openino_peer_discover=0,q=0,reply=0,reply_latency.avgcount=0,reply_latency.avgtime=0,reply_latency.sum=0,request=0,subtrees=2,traverse=0,traverse_dir_fetch=0,traverse_discover=0,traverse_forward=0,traverse_hit=0,traverse_lock=0,traverse_remote_ino=0 1587117476000000000 -> ceph,collection=purge_queue,host=stefanmds1,id=stefanmds1,type=mds pq_executed=0,pq_executing=0,pq_executing_ops=0 1587117476000000000 -> ceph,collection=throttle-write_buf_throttle,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=3758096384,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000 -> ceph,collection=throttle-write_buf_throttle-0x5624e9377f40,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=3758096384,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000 -> ceph,collection=mds_cache,host=stefanmds1,id=stefanmds1,type=mds ireq_enqueue_scrub=0,ireq_exportdir=0,ireq_flush=0,ireq_fragmentdir=0,ireq_fragstats=0,ireq_inodestats=0,num_recovering_enqueued=0,num_recovering_prioritized=0,num_recovering_processing=0,num_strays=0,num_strays_delayed=0,num_strays_enqueuing=0,recovery_completed=0,recovery_started=0,strays_created=0,strays_enqueued=0,strays_migrated=0,strays_reintegrated=0 1587117476000000000 -> ceph,collection=throttle-objecter_bytes,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=16,put_sum=1016,take=33,take_sum=1016,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000 -> ceph,collection=throttle-objecter_ops,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=33,put_sum=33,take=33,take_sum=33,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000 -> ceph,collection=mds_mem,host=stefanmds1,id=stefanmds1,type=mds cap=0,cap+=0,cap-=0,dir=12,dir+=12,dir-=0,dn=10,dn+=10,dn-=0,heap=322284,ino=13,ino+=13,ino-=0,rss=76032 1587117476000000000 -> ceph,collection=finisher-PurgeQueue,host=stefanmds1,id=stefanmds1,type=mds complete_latency.avgcount=4,complete_latency.avgtime=0.000176985,complete_latency.sum=0.000707941,queue_len=0 1587117476000000000 -> ceph,collection=cct,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw total_workers=0,unhealthy_workers=0 1587117156000000000 -> ceph,collection=throttle-objecter_bytes,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=791732,get_or_fail_fail=0,get_or_fail_success=791732,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 -> ceph,collection=rgw,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw cache_hit=0,cache_miss=791706,failed_req=0,get=0,get_b=0,get_initial_lat.avgcount=0,get_initial_lat.avgtime=0,get_initial_lat.sum=0,keystone_token_cache_hit=0,keystone_token_cache_miss=0,pubsub_event_lost=0,pubsub_event_triggered=0,pubsub_events=0,pubsub_push_failed=0,pubsub_push_ok=0,pubsub_push_pending=0,pubsub_store_fail=0,pubsub_store_ok=0,put=0,put_b=0,put_initial_lat.avgcount=0,put_initial_lat.avgtime=0,put_initial_lat.sum=0,qactive=0,qlen=0,req=791705 1587117156000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-radosclient,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=2697988,get_or_fail_fail=0,get_or_fail_success=2697988,get_started=0,get_sum=444563051,max=104857600,put=2697988,put_sum=444563051,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 -> ceph,collection=finisher-radosclient,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw complete_latency.avgcount=2,complete_latency.avgtime=0.003530161,complete_latency.sum=0.007060323,queue_len=0 1587117156000000000 -> ceph,collection=throttle-rgw_async_rados_ops,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=64,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 -> ceph,collection=throttle-objecter_ops,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=791732,get_or_fail_fail=0,get_or_fail_success=791732,get_started=0,get_sum=791732,max=24576,put=791732,put_sum=791732,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 -> ceph,collection=throttle-objecter_bytes-0x5598969981c0,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=1637900,get_or_fail_fail=0,get_or_fail_success=1637900,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 -> ceph,collection=objecter,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw command_active=0,command_resend=0,command_send=0,linger_active=8,linger_ping=1905736,linger_resend=4,linger_send=13,map_epoch=203,map_full=0,map_inc=17,omap_del=0,omap_rd=0,omap_wr=0,op=2697488,op_active=0,op_laggy=0,op_pg=0,op_r=791730,op_reply=2697476,op_resend=1,op_rmw=0,op_send=2697490,op_send_bytes=362,op_w=1905758,osd_laggy=5,osd_session_close=59558,osd_session_open=59566,osd_sessions=8,osdop_append=0,osdop_call=1,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=8,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=791714,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=16,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=791706,osdop_truncate=0,osdop_watch=1905750,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117156000000000 -> ceph,collection=AsyncMessenger::Worker-2,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw msgr_active_connections=11,msgr_created_connections=59839,msgr_recv_bytes=342697143,msgr_recv_messages=1441603,msgr_running_fast_dispatch_time=161.807937536,msgr_running_recv_time=118.174064257,msgr_running_send_time=207.679154333,msgr_running_total_time=698.527662129,msgr_send_bytes=530785909,msgr_send_messages=1679950 1587117156000000000 -> ceph,collection=mempool,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=0,bluefs_items=0,bluestore_alloc_bytes=0,bluestore_alloc_items=0,bluestore_cache_data_bytes=0,bluestore_cache_data_items=0,bluestore_cache_onode_bytes=0,bluestore_cache_onode_items=0,bluestore_cache_other_bytes=0,bluestore_cache_other_items=0,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=0,bluestore_txc_items=0,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=0,bluestore_writing_deferred_items=0,bluestore_writing_items=0,buffer_anon_bytes=225471,buffer_anon_items=163,buffer_meta_bytes=0,buffer_meta_items=0,mds_co_bytes=0,mds_co_items=0,osd_bytes=0,osd_items=0,osd_mapbl_bytes=0,osd_mapbl_items=0,osd_pglog_bytes=0,osd_pglog_items=0,osdmap_bytes=33904,osdmap_items=278,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117156000000000 -> ceph,collection=throttle-msgr_dispatch_throttler-radosclient-0x559896998120,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=1652935,get_or_fail_fail=0,get_or_fail_success=1652935,get_started=0,get_sum=276333029,max=104857600,put=1652935,put_sum=276333029,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 -> ceph,collection=AsyncMessenger::Worker-1,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw msgr_active_connections=17,msgr_created_connections=84859,msgr_recv_bytes=211170759,msgr_recv_messages=922646,msgr_running_fast_dispatch_time=31.487443762,msgr_running_recv_time=83.190789333,msgr_running_send_time=174.670510496,msgr_running_total_time=484.22086275,msgr_send_bytes=1322113179,msgr_send_messages=1636839 1587117156000000000 -> ceph,collection=finisher-radosclient-0x559896998080,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117156000000000 -> ceph,collection=throttle-objecter_ops-0x559896997b80,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=1637900,get_or_fail_fail=0,get_or_fail_success=1637900,get_started=0,get_sum=1637900,max=24576,put=1637900,put_sum=1637900,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 -> ceph,collection=AsyncMessenger::Worker-0,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw msgr_active_connections=18,msgr_created_connections=74757,msgr_recv_bytes=489001094,msgr_recv_messages=1986686,msgr_running_fast_dispatch_time=168.60950961,msgr_running_recv_time=142.903031533,msgr_running_send_time=267.911165712,msgr_running_total_time=824.885614951,msgr_send_bytes=707973504,msgr_send_messages=2463727 1587117156000000000 -> ceph,collection=objecter-0x559896997720,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=8,omap_del=0,omap_rd=0,omap_wr=0,op=1637998,op_active=0,op_laggy=0,op_pg=0,op_r=1062803,op_reply=1637998,op_resend=15,op_rmw=0,op_send=1638013,op_send_bytes=63321099,op_w=575195,osd_laggy=0,osd_session_close=125555,osd_session_open=125563,osd_sessions=8,osdop_append=0,osdop_call=1637886,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=112,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117156000000000 +```text +ceph,collection=cct,host=stefanmon1,id=stefanmon1,type=monitor total_workers=0,unhealthy_workers=0 1587117563000000000 +ceph,collection=mempool,host=stefanmon1,id=stefanmon1,type=monitor bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=0,bluefs_items=0,bluestore_alloc_bytes=0,bluestore_alloc_items=0,bluestore_cache_data_bytes=0,bluestore_cache_data_items=0,bluestore_cache_onode_bytes=0,bluestore_cache_onode_items=0,bluestore_cache_other_bytes=0,bluestore_cache_other_items=0,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=0,bluestore_txc_items=0,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=0,bluestore_writing_deferred_items=0,bluestore_writing_items=0,buffer_anon_bytes=719152,buffer_anon_items=192,buffer_meta_bytes=352,buffer_meta_items=4,mds_co_bytes=0,mds_co_items=0,osd_bytes=0,osd_items=0,osd_mapbl_bytes=0,osd_mapbl_items=0,osd_pglog_bytes=0,osd_pglog_items=0,osdmap_bytes=15872,osdmap_items=138,osdmap_mapping_bytes=63112,osdmap_mapping_items=7626,pgmap_bytes=38680,pgmap_items=477,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117563000000000 +ceph,collection=throttle-mon_client_bytes,host=stefanmon1,id=stefanmon1,type=monitor get=1041157,get_or_fail_fail=0,get_or_fail_success=1041157,get_started=0,get_sum=64928901,max=104857600,put=1041157,put_sum=64928901,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000 +ceph,collection=throttle-msgr_dispatch_throttler-mon,host=stefanmon1,id=stefanmon1,type=monitor get=12695426,get_or_fail_fail=0,get_or_fail_success=12695426,get_started=0,get_sum=42542216884,max=104857600,put=12695426,put_sum=42542216884,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000 +ceph,collection=finisher-mon_finisher,host=stefanmon1,id=stefanmon1,type=monitor complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117563000000000 +ceph,collection=finisher-monstore,host=stefanmon1,id=stefanmon1,type=monitor complete_latency.avgcount=1609831,complete_latency.avgtime=0.015857621,complete_latency.sum=25528.09131035,queue_len=0 1587117563000000000 +ceph,collection=mon,host=stefanmon1,id=stefanmon1,type=monitor election_call=25,election_lose=0,election_win=22,num_elections=94,num_sessions=3,session_add=174679,session_rm=439316,session_trim=137 1587117563000000000 +ceph,collection=throttle-mon_daemon_bytes,host=stefanmon1,id=stefanmon1,type=monitor get=72697,get_or_fail_fail=0,get_or_fail_success=72697,get_started=0,get_sum=32261199,max=419430400,put=72697,put_sum=32261199,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000 +ceph,collection=rocksdb,host=stefanmon1,id=stefanmon1,type=monitor compact=1,compact_queue_len=0,compact_queue_merge=1,compact_range=19126,get=62449211,get_latency.avgcount=62449211,get_latency.avgtime=0.000022216,get_latency.sum=1387.371811726,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=0,submit_latency.avgtime=0,submit_latency.sum=0,submit_sync_latency.avgcount=3219961,submit_sync_latency.avgtime=0.007532173,submit_sync_latency.sum=24253.303584224,submit_transaction=0,submit_transaction_sync=3219961 1587117563000000000 +ceph,collection=AsyncMessenger::Worker-0,host=stefanmon1,id=stefanmon1,type=monitor msgr_active_connections=148317,msgr_created_connections=162806,msgr_recv_bytes=11557888328,msgr_recv_messages=5113369,msgr_running_fast_dispatch_time=0,msgr_running_recv_time=868.377161686,msgr_running_send_time=1626.525392721,msgr_running_total_time=4222.235694322,msgr_send_bytes=91516226816,msgr_send_messages=6973706 1587117563000000000 +ceph,collection=AsyncMessenger::Worker-2,host=stefanmon1,id=stefanmon1,type=monitor msgr_active_connections=146396,msgr_created_connections=159788,msgr_recv_bytes=2162802496,msgr_recv_messages=689168,msgr_running_fast_dispatch_time=0,msgr_running_recv_time=164.148550562,msgr_running_send_time=153.462890368,msgr_running_total_time=644.188791379,msgr_send_bytes=7422484152,msgr_send_messages=749381 1587117563000000000 +ceph,collection=cluster,host=stefanmon1,id=stefanmon1,type=monitor num_bytes=5055,num_mon=3,num_mon_quorum=3,num_object=245,num_object_degraded=0,num_object_misplaced=0,num_object_unfound=0,num_osd=9,num_osd_in=8,num_osd_up=8,num_pg=504,num_pg_active=504,num_pg_active_clean=504,num_pg_peering=0,num_pool=17,osd_bytes=858959904768,osd_bytes_avail=849889787904,osd_bytes_used=9070116864,osd_epoch=203 1587117563000000000 +ceph,collection=paxos,host=stefanmon1,id=stefanmon1,type=monitor accept_timeout=1,begin=1609847,begin_bytes.avgcount=1609847,begin_bytes.sum=41408662074,begin_keys.avgcount=1609847,begin_keys.sum=4829541,begin_latency.avgcount=1609847,begin_latency.avgtime=0.007213392,begin_latency.sum=11612.457661116,collect=0,collect_bytes.avgcount=0,collect_bytes.sum=0,collect_keys.avgcount=0,collect_keys.sum=0,collect_latency.avgcount=0,collect_latency.avgtime=0,collect_latency.sum=0,collect_timeout=1,collect_uncommitted=17,commit=1609831,commit_bytes.avgcount=1609831,commit_bytes.sum=41087428442,commit_keys.avgcount=1609831,commit_keys.sum=11637931,commit_latency.avgcount=1609831,commit_latency.avgtime=0.006236333,commit_latency.sum=10039.442388355,lease_ack_timeout=0,lease_timeout=0,new_pn=33,new_pn_latency.avgcount=33,new_pn_latency.avgtime=3.844272773,new_pn_latency.sum=126.86100151,refresh=1609856,refresh_latency.avgcount=1609856,refresh_latency.avgtime=0.005900486,refresh_latency.sum=9498.932866761,restart=109,share_state=2,share_state_bytes.avgcount=2,share_state_bytes.sum=39612,share_state_keys.avgcount=2,share_state_keys.sum=2,start_leader=22,start_peon=0,store_state=14,store_state_bytes.avgcount=14,store_state_bytes.sum=51908281,store_state_keys.avgcount=14,store_state_keys.sum=7016,store_state_latency.avgcount=14,store_state_latency.avgtime=11.668377665,store_state_latency.sum=163.357287311 1587117563000000000 +ceph,collection=throttle-msgr_dispatch_throttler-mon-mgrc,host=stefanmon1,id=stefanmon1,type=monitor get=13225,get_or_fail_fail=0,get_or_fail_success=13225,get_started=0,get_sum=158700,max=104857600,put=13225,put_sum=158700,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000 +ceph,collection=AsyncMessenger::Worker-1,host=stefanmon1,id=stefanmon1,type=monitor msgr_active_connections=147680,msgr_created_connections=162374,msgr_recv_bytes=29781706740,msgr_recv_messages=7170733,msgr_running_fast_dispatch_time=0,msgr_running_recv_time=1728.559151358,msgr_running_send_time=2086.681244508,msgr_running_total_time=6084.532916585,msgr_send_bytes=94062125718,msgr_send_messages=9161564 1587117563000000000 +ceph,collection=throttle-msgr_dispatch_throttler-cluster,host=stefanosd1,id=0,type=osd get=281745,get_or_fail_fail=0,get_or_fail_success=281745,get_started=0,get_sum=446024457,max=104857600,put=281745,put_sum=446024457,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-bluestore_throttle_bytes,host=stefanosd1,id=0,type=osd get=275707,get_or_fail_fail=0,get_or_fail_success=0,get_started=275707,get_sum=185073179842,max=67108864,put=268870,put_sum=185073179842,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_front_server,host=stefanosd1,id=0,type=osd get=2606982,get_or_fail_fail=0,get_or_fail_success=2606982,get_started=0,get_sum=5224391928,max=104857600,put=2606982,put_sum=5224391928,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=rocksdb,host=stefanosd1,id=0,type=osd compact=0,compact_queue_len=0,compact_queue_merge=0,compact_range=0,get=1570,get_latency.avgcount=1570,get_latency.avgtime=0.000051233,get_latency.sum=0.080436788,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=275707,submit_latency.avgtime=0.000174936,submit_latency.sum=48.231345334,submit_sync_latency.avgcount=268870,submit_sync_latency.avgtime=0.006097313,submit_sync_latency.sum=1639.384555624,submit_transaction=275707,submit_transaction_sync=268870 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_back_server,host=stefanosd1,id=0,type=osd get=2606982,get_or_fail_fail=0,get_or_fail_success=2606982,get_started=0,get_sum=5224391928,max=104857600,put=2606982,put_sum=5224391928,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-objecter_bytes,host=stefanosd1,id=0,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_back_client,host=stefanosd1,id=0,type=osd get=2610285,get_or_fail_fail=0,get_or_fail_success=2610285,get_started=0,get_sum=5231011140,max=104857600,put=2610285,put_sum=5231011140,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=AsyncMessenger::Worker-1,host=stefanosd1,id=0,type=osd msgr_active_connections=2093,msgr_created_connections=29142,msgr_recv_bytes=7214238199,msgr_recv_messages=3928206,msgr_running_fast_dispatch_time=171.289615064,msgr_running_recv_time=278.531155966,msgr_running_send_time=489.482588813,msgr_running_total_time=1134.004853662,msgr_send_bytes=9814725232,msgr_send_messages=3814927 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-client,host=stefanosd1,id=0,type=osd get=488206,get_or_fail_fail=0,get_or_fail_success=488206,get_started=0,get_sum=104085134,max=104857600,put=488206,put_sum=104085134,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=finisher-defered_finisher,host=stefanosd1,id=0,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 +ceph,collection=recoverystate_perf,host=stefanosd1,id=0,type=osd activating_latency.avgcount=87,activating_latency.avgtime=0.114348341,activating_latency.sum=9.948305683,active_latency.avgcount=25,active_latency.avgtime=1790.961574431,active_latency.sum=44774.039360795,backfilling_latency.avgcount=0,backfilling_latency.avgtime=0,backfilling_latency.sum=0,clean_latency.avgcount=25,clean_latency.avgtime=1790.830827794,clean_latency.sum=44770.770694867,down_latency.avgcount=0,down_latency.avgtime=0,down_latency.sum=0,getinfo_latency.avgcount=141,getinfo_latency.avgtime=0.446233476,getinfo_latency.sum=62.918920183,getlog_latency.avgcount=87,getlog_latency.avgtime=0.007708069,getlog_latency.sum=0.670602073,getmissing_latency.avgcount=87,getmissing_latency.avgtime=0.000077594,getmissing_latency.sum=0.006750701,incomplete_latency.avgcount=0,incomplete_latency.avgtime=0,incomplete_latency.sum=0,initial_latency.avgcount=166,initial_latency.avgtime=0.001313715,initial_latency.sum=0.218076764,notbackfilling_latency.avgcount=0,notbackfilling_latency.avgtime=0,notbackfilling_latency.sum=0,notrecovering_latency.avgcount=0,notrecovering_latency.avgtime=0,notrecovering_latency.sum=0,peering_latency.avgcount=141,peering_latency.avgtime=0.948324273,peering_latency.sum=133.713722563,primary_latency.avgcount=79,primary_latency.avgtime=567.706192991,primary_latency.sum=44848.78924634,recovered_latency.avgcount=87,recovered_latency.avgtime=0.000378284,recovered_latency.sum=0.032910791,recovering_latency.avgcount=2,recovering_latency.avgtime=0.338242008,recovering_latency.sum=0.676484017,replicaactive_latency.avgcount=23,replicaactive_latency.avgtime=1790.893991295,replicaactive_latency.sum=41190.561799786,repnotrecovering_latency.avgcount=25,repnotrecovering_latency.avgtime=1647.627024984,repnotrecovering_latency.sum=41190.675624616,reprecovering_latency.avgcount=2,reprecovering_latency.avgtime=0.311884638,reprecovering_latency.sum=0.623769276,repwaitbackfillreserved_latency.avgcount=0,repwaitbackfillreserved_latency.avgtime=0,repwaitbackfillreserved_latency.sum=0,repwaitrecoveryreserved_latency.avgcount=2,repwaitrecoveryreserved_latency.avgtime=0.000462873,repwaitrecoveryreserved_latency.sum=0.000925746,reset_latency.avgcount=372,reset_latency.avgtime=0.125056393,reset_latency.sum=46.520978537,start_latency.avgcount=372,start_latency.avgtime=0.000109397,start_latency.sum=0.040695881,started_latency.avgcount=206,started_latency.avgtime=418.299777245,started_latency.sum=86169.754112641,stray_latency.avgcount=231,stray_latency.avgtime=0.98203205,stray_latency.sum=226.849403565,waitactingchange_latency.avgcount=0,waitactingchange_latency.avgtime=0,waitactingchange_latency.sum=0,waitlocalbackfillreserved_latency.avgcount=0,waitlocalbackfillreserved_latency.avgtime=0,waitlocalbackfillreserved_latency.sum=0,waitlocalrecoveryreserved_latency.avgcount=2,waitlocalrecoveryreserved_latency.avgtime=0.002802377,waitlocalrecoveryreserved_latency.sum=0.005604755,waitremotebackfillreserved_latency.avgcount=0,waitremotebackfillreserved_latency.avgtime=0,waitremotebackfillreserved_latency.sum=0,waitremoterecoveryreserved_latency.avgcount=2,waitremoterecoveryreserved_latency.avgtime=0.012855439,waitremoterecoveryreserved_latency.sum=0.025710878,waitupthru_latency.avgcount=87,waitupthru_latency.avgtime=0.805727895,waitupthru_latency.sum=70.09832695 1587117698000000000 +ceph,collection=cct,host=stefanosd1,id=0,type=osd total_workers=6,unhealthy_workers=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_front_client,host=stefanosd1,id=0,type=osd get=2610285,get_or_fail_fail=0,get_or_fail_success=2610285,get_started=0,get_sum=5231011140,max=104857600,put=2610285,put_sum=5231011140,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=bluefs,host=stefanosd1,id=0,type=osd bytes_written_slow=0,bytes_written_sst=9018781,bytes_written_wal=831081573,db_total_bytes=4294967296,db_used_bytes=434110464,files_written_sst=3,files_written_wal=2,gift_bytes=0,log_bytes=134291456,log_compactions=1,logged_bytes=1101668352,max_bytes_db=1234173952,max_bytes_slow=0,max_bytes_wal=0,num_files=11,reclaim_bytes=0,slow_total_bytes=0,slow_used_bytes=0,wal_total_bytes=0,wal_used_bytes=0 1587117698000000000 +ceph,collection=mempool,host=stefanosd1,id=0,type=osd bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=10600,bluefs_items=458,bluestore_alloc_bytes=230288,bluestore_alloc_items=28786,bluestore_cache_data_bytes=622592,bluestore_cache_data_items=43,bluestore_cache_onode_bytes=249280,bluestore_cache_onode_items=380,bluestore_cache_other_bytes=192678,bluestore_cache_other_items=20199,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=8272,bluestore_txc_items=11,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=670130,bluestore_writing_deferred_items=176,bluestore_writing_items=0,buffer_anon_bytes=2412465,buffer_anon_items=297,buffer_meta_bytes=5896,buffer_meta_items=67,mds_co_bytes=0,mds_co_items=0,osd_bytes=2124800,osd_items=166,osd_mapbl_bytes=155152,osd_mapbl_items=10,osd_pglog_bytes=3214704,osd_pglog_items=6288,osdmap_bytes=710892,osdmap_items=4426,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117698000000000 +ceph,collection=osd,host=stefanosd1,id=0,type=osd agent_evict=0,agent_flush=0,agent_skip=0,agent_wake=0,cached_crc=0,cached_crc_adjusted=0,copyfrom=0,heartbeat_to_peers=7,loadavg=11,map_message_epoch_dups=21,map_message_epochs=40,map_messages=31,messages_delayed_for_map=0,missed_crc=0,numpg=166,numpg_primary=62,numpg_removing=0,numpg_replica=104,numpg_stray=0,object_ctx_cache_hit=476529,object_ctx_cache_total=476536,op=476525,op_before_dequeue_op_lat.avgcount=755708,op_before_dequeue_op_lat.avgtime=0.000205759,op_before_dequeue_op_lat.sum=155.493843473,op_before_queue_op_lat.avgcount=755702,op_before_queue_op_lat.avgtime=0.000047877,op_before_queue_op_lat.sum=36.181069552,op_cache_hit=0,op_in_bytes=0,op_latency.avgcount=476525,op_latency.avgtime=0.000365956,op_latency.sum=174.387387878,op_out_bytes=10882,op_prepare_latency.avgcount=476527,op_prepare_latency.avgtime=0.000205307,op_prepare_latency.sum=97.834380034,op_process_latency.avgcount=476525,op_process_latency.avgtime=0.000139616,op_process_latency.sum=66.530847665,op_r=476521,op_r_latency.avgcount=476521,op_r_latency.avgtime=0.00036559,op_r_latency.sum=174.21148267,op_r_out_bytes=10882,op_r_prepare_latency.avgcount=476523,op_r_prepare_latency.avgtime=0.000205302,op_r_prepare_latency.sum=97.831473175,op_r_process_latency.avgcount=476521,op_r_process_latency.avgtime=0.000139396,op_r_process_latency.sum=66.425498624,op_rw=2,op_rw_in_bytes=0,op_rw_latency.avgcount=2,op_rw_latency.avgtime=0.048818975,op_rw_latency.sum=0.097637951,op_rw_out_bytes=0,op_rw_prepare_latency.avgcount=2,op_rw_prepare_latency.avgtime=0.000467887,op_rw_prepare_latency.sum=0.000935775,op_rw_process_latency.avgcount=2,op_rw_process_latency.avgtime=0.013741256,op_rw_process_latency.sum=0.027482512,op_w=2,op_w_in_bytes=0,op_w_latency.avgcount=2,op_w_latency.avgtime=0.039133628,op_w_latency.sum=0.078267257,op_w_prepare_latency.avgcount=2,op_w_prepare_latency.avgtime=0.000985542,op_w_prepare_latency.sum=0.001971084,op_w_process_latency.avgcount=2,op_w_process_latency.avgtime=0.038933264,op_w_process_latency.sum=0.077866529,op_wip=0,osd_map_bl_cache_hit=22,osd_map_bl_cache_miss=40,osd_map_cache_hit=4570,osd_map_cache_miss=15,osd_map_cache_miss_low=0,osd_map_cache_miss_low_avg.avgcount=0,osd_map_cache_miss_low_avg.sum=0,osd_pg_biginfo=2050,osd_pg_fastinfo=265780,osd_pg_info=274542,osd_tier_flush_lat.avgcount=0,osd_tier_flush_lat.avgtime=0,osd_tier_flush_lat.sum=0,osd_tier_promote_lat.avgcount=0,osd_tier_promote_lat.avgtime=0,osd_tier_promote_lat.sum=0,osd_tier_r_lat.avgcount=0,osd_tier_r_lat.avgtime=0,osd_tier_r_lat.sum=0,pull=0,push=2,push_out_bytes=10,recovery_bytes=10,recovery_ops=2,stat_bytes=107369988096,stat_bytes_avail=106271539200,stat_bytes_used=1098448896,subop=253554,subop_in_bytes=168644225,subop_latency.avgcount=253554,subop_latency.avgtime=0.0073036,subop_latency.sum=1851.857230388,subop_pull=0,subop_pull_latency.avgcount=0,subop_pull_latency.avgtime=0,subop_pull_latency.sum=0,subop_push=0,subop_push_in_bytes=0,subop_push_latency.avgcount=0,subop_push_latency.avgtime=0,subop_push_latency.sum=0,subop_w=253554,subop_w_in_bytes=168644225,subop_w_latency.avgcount=253554,subop_w_latency.avgtime=0.0073036,subop_w_latency.sum=1851.857230388,tier_clean=0,tier_delay=0,tier_dirty=0,tier_evict=0,tier_flush=0,tier_flush_fail=0,tier_promote=0,tier_proxy_read=0,tier_proxy_write=0,tier_try_flush=0,tier_try_flush_fail=0,tier_whiteout=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-ms_objecter,host=stefanosd1,id=0,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=AsyncMessenger::Worker-2,host=stefanosd1,id=0,type=osd msgr_active_connections=2055,msgr_created_connections=27411,msgr_recv_bytes=6431950009,msgr_recv_messages=3552443,msgr_running_fast_dispatch_time=162.271664213,msgr_running_recv_time=254.307853033,msgr_running_send_time=503.037285799,msgr_running_total_time=1130.21070681,msgr_send_bytes=10865436237,msgr_send_messages=3523374 1587117698000000000 +ceph,collection=bluestore,host=stefanosd1,id=0,type=osd bluestore_allocated=24641536,bluestore_blob_split=0,bluestore_blobs=88,bluestore_buffer_bytes=622592,bluestore_buffer_hit_bytes=160578,bluestore_buffer_miss_bytes=540236,bluestore_buffers=43,bluestore_compressed=0,bluestore_compressed_allocated=0,bluestore_compressed_original=0,bluestore_extent_compress=0,bluestore_extents=88,bluestore_fragmentation_micros=1,bluestore_gc_merged=0,bluestore_onode_hits=532102,bluestore_onode_misses=388,bluestore_onode_reshard=0,bluestore_onode_shard_hits=0,bluestore_onode_shard_misses=0,bluestore_onodes=380,bluestore_read_eio=0,bluestore_reads_with_retries=0,bluestore_stored=1987856,bluestore_txc=275707,bluestore_write_big=0,bluestore_write_big_blobs=0,bluestore_write_big_bytes=0,bluestore_write_small=60,bluestore_write_small_bytes=343843,bluestore_write_small_deferred=22,bluestore_write_small_new=38,bluestore_write_small_pre_read=22,bluestore_write_small_unused=0,commit_lat.avgcount=275707,commit_lat.avgtime=0.00699778,commit_lat.sum=1929.337103334,compress_lat.avgcount=0,compress_lat.avgtime=0,compress_lat.sum=0,compress_rejected_count=0,compress_success_count=0,csum_lat.avgcount=67,csum_lat.avgtime=0.000032601,csum_lat.sum=0.002184323,decompress_lat.avgcount=0,decompress_lat.avgtime=0,decompress_lat.sum=0,deferred_write_bytes=0,deferred_write_ops=0,kv_commit_lat.avgcount=268870,kv_commit_lat.avgtime=0.006365428,kv_commit_lat.sum=1711.472749866,kv_final_lat.avgcount=268867,kv_final_lat.avgtime=0.000043227,kv_final_lat.sum=11.622427109,kv_flush_lat.avgcount=268870,kv_flush_lat.avgtime=0.000000223,kv_flush_lat.sum=0.060141588,kv_sync_lat.avgcount=268870,kv_sync_lat.avgtime=0.006365652,kv_sync_lat.sum=1711.532891454,omap_lower_bound_lat.avgcount=2,omap_lower_bound_lat.avgtime=0.000006524,omap_lower_bound_lat.sum=0.000013048,omap_next_lat.avgcount=6704,omap_next_lat.avgtime=0.000004721,omap_next_lat.sum=0.031654097,omap_seek_to_first_lat.avgcount=323,omap_seek_to_first_lat.avgtime=0.00000522,omap_seek_to_first_lat.sum=0.00168614,omap_upper_bound_lat.avgcount=4,omap_upper_bound_lat.avgtime=0.000013086,omap_upper_bound_lat.sum=0.000052344,read_lat.avgcount=227,read_lat.avgtime=0.000699457,read_lat.sum=0.158776879,read_onode_meta_lat.avgcount=311,read_onode_meta_lat.avgtime=0.000072207,read_onode_meta_lat.sum=0.022456667,read_wait_aio_lat.avgcount=84,read_wait_aio_lat.avgtime=0.001556141,read_wait_aio_lat.sum=0.130715885,state_aio_wait_lat.avgcount=275707,state_aio_wait_lat.avgtime=0.000000345,state_aio_wait_lat.sum=0.095246457,state_deferred_aio_wait_lat.avgcount=0,state_deferred_aio_wait_lat.avgtime=0,state_deferred_aio_wait_lat.sum=0,state_deferred_cleanup_lat.avgcount=0,state_deferred_cleanup_lat.avgtime=0,state_deferred_cleanup_lat.sum=0,state_deferred_queued_lat.avgcount=0,state_deferred_queued_lat.avgtime=0,state_deferred_queued_lat.sum=0,state_done_lat.avgcount=275696,state_done_lat.avgtime=0.00000286,state_done_lat.sum=0.788700007,state_finishing_lat.avgcount=275696,state_finishing_lat.avgtime=0.000000302,state_finishing_lat.sum=0.083437168,state_io_done_lat.avgcount=275707,state_io_done_lat.avgtime=0.000001041,state_io_done_lat.sum=0.287025147,state_kv_commiting_lat.avgcount=275707,state_kv_commiting_lat.avgtime=0.006424459,state_kv_commiting_lat.sum=1771.268407864,state_kv_done_lat.avgcount=275707,state_kv_done_lat.avgtime=0.000001627,state_kv_done_lat.sum=0.448805853,state_kv_queued_lat.avgcount=275707,state_kv_queued_lat.avgtime=0.000488565,state_kv_queued_lat.sum=134.7009424,state_prepare_lat.avgcount=275707,state_prepare_lat.avgtime=0.000082464,state_prepare_lat.sum=22.736065534,submit_lat.avgcount=275707,submit_lat.avgtime=0.000120236,submit_lat.sum=33.149934412,throttle_lat.avgcount=275707,throttle_lat.avgtime=0.000001571,throttle_lat.sum=0.433185935,write_pad_bytes=151773,write_penalty_read_ops=0 1587117698000000000 +ceph,collection=finisher-objecter-finisher-0,host=stefanosd1,id=0,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 +ceph,collection=objecter,host=stefanosd1,id=0,type=osd command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=19,omap_del=0,omap_rd=0,omap_wr=0,op=0,op_active=0,op_laggy=0,op_pg=0,op_r=0,op_reply=0,op_resend=0,op_rmw=0,op_send=0,op_send_bytes=0,op_w=0,osd_laggy=0,osd_session_close=0,osd_session_open=0,osd_sessions=0,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117698000000000 +ceph,collection=finisher-commit_finisher,host=stefanosd1,id=0,type=osd complete_latency.avgcount=11,complete_latency.avgtime=0.003447516,complete_latency.sum=0.037922681,queue_len=0 1587117698000000000 +ceph,collection=throttle-objecter_ops,host=stefanosd1,id=0,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=AsyncMessenger::Worker-0,host=stefanosd1,id=0,type=osd msgr_active_connections=2128,msgr_created_connections=33685,msgr_recv_bytes=8679123051,msgr_recv_messages=4200356,msgr_running_fast_dispatch_time=151.889337454,msgr_running_recv_time=297.632294886,msgr_running_send_time=599.20020523,msgr_running_total_time=1321.361931202,msgr_send_bytes=11716202897,msgr_send_messages=4347418 1587117698000000000 +ceph,collection=throttle-osd_client_bytes,host=stefanosd1,id=0,type=osd get=476554,get_or_fail_fail=0,get_or_fail_success=476554,get_started=0,get_sum=103413728,max=524288000,put=476587,put_sum=103413728,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-bluestore_throttle_deferred_bytes,host=stefanosd1,id=0,type=osd get=11,get_or_fail_fail=0,get_or_fail_success=11,get_started=0,get_sum=7723117,max=201326592,put=0,put_sum=0,take=0,take_sum=0,val=7723117,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-cluster,host=stefanosd1,id=1,type=osd get=860895,get_or_fail_fail=0,get_or_fail_success=860895,get_started=0,get_sum=596482256,max=104857600,put=860895,put_sum=596482256,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-objecter_ops,host=stefanosd1,id=1,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-objecter_bytes,host=stefanosd1,id=1,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=finisher-defered_finisher,host=stefanosd1,id=1,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 +ceph,collection=osd,host=stefanosd1,id=1,type=osd agent_evict=0,agent_flush=0,agent_skip=0,agent_wake=0,cached_crc=0,cached_crc_adjusted=0,copyfrom=0,heartbeat_to_peers=7,loadavg=11,map_message_epoch_dups=29,map_message_epochs=50,map_messages=39,messages_delayed_for_map=0,missed_crc=0,numpg=188,numpg_primary=71,numpg_removing=0,numpg_replica=117,numpg_stray=0,object_ctx_cache_hit=1349777,object_ctx_cache_total=2934118,op=1319230,op_before_dequeue_op_lat.avgcount=3792053,op_before_dequeue_op_lat.avgtime=0.000405802,op_before_dequeue_op_lat.sum=1538.826381623,op_before_queue_op_lat.avgcount=3778690,op_before_queue_op_lat.avgtime=0.000033273,op_before_queue_op_lat.sum=125.731131596,op_cache_hit=0,op_in_bytes=0,op_latency.avgcount=1319230,op_latency.avgtime=0.002858138,op_latency.sum=3770.541581676,op_out_bytes=1789210,op_prepare_latency.avgcount=1336472,op_prepare_latency.avgtime=0.000279458,op_prepare_latency.sum=373.488913339,op_process_latency.avgcount=1319230,op_process_latency.avgtime=0.002666408,op_process_latency.sum=3517.606407526,op_r=1075394,op_r_latency.avgcount=1075394,op_r_latency.avgtime=0.000303779,op_r_latency.sum=326.682443032,op_r_out_bytes=1789210,op_r_prepare_latency.avgcount=1075394,op_r_prepare_latency.avgtime=0.000171228,op_r_prepare_latency.sum=184.138580631,op_r_process_latency.avgcount=1075394,op_r_process_latency.avgtime=0.00011609,op_r_process_latency.sum=124.842894319,op_rw=243832,op_rw_in_bytes=0,op_rw_latency.avgcount=243832,op_rw_latency.avgtime=0.014123636,op_rw_latency.sum=3443.79445124,op_rw_out_bytes=0,op_rw_prepare_latency.avgcount=261072,op_rw_prepare_latency.avgtime=0.000725265,op_rw_prepare_latency.sum=189.346543463,op_rw_process_latency.avgcount=243832,op_rw_process_latency.avgtime=0.013914089,op_rw_process_latency.sum=3392.700241086,op_w=4,op_w_in_bytes=0,op_w_latency.avgcount=4,op_w_latency.avgtime=0.016171851,op_w_latency.sum=0.064687404,op_w_prepare_latency.avgcount=6,op_w_prepare_latency.avgtime=0.00063154,op_w_prepare_latency.sum=0.003789245,op_w_process_latency.avgcount=4,op_w_process_latency.avgtime=0.01581803,op_w_process_latency.sum=0.063272121,op_wip=0,osd_map_bl_cache_hit=36,osd_map_bl_cache_miss=40,osd_map_cache_hit=5404,osd_map_cache_miss=14,osd_map_cache_miss_low=0,osd_map_cache_miss_low_avg.avgcount=0,osd_map_cache_miss_low_avg.sum=0,osd_pg_biginfo=2333,osd_pg_fastinfo=576157,osd_pg_info=591751,osd_tier_flush_lat.avgcount=0,osd_tier_flush_lat.avgtime=0,osd_tier_flush_lat.sum=0,osd_tier_promote_lat.avgcount=0,osd_tier_promote_lat.avgtime=0,osd_tier_promote_lat.sum=0,osd_tier_r_lat.avgcount=0,osd_tier_r_lat.avgtime=0,osd_tier_r_lat.sum=0,pull=0,push=22,push_out_bytes=0,recovery_bytes=0,recovery_ops=21,stat_bytes=107369988096,stat_bytes_avail=106271997952,stat_bytes_used=1097990144,subop=306946,subop_in_bytes=204236742,subop_latency.avgcount=306946,subop_latency.avgtime=0.006744881,subop_latency.sum=2070.314452989,subop_pull=0,subop_pull_latency.avgcount=0,subop_pull_latency.avgtime=0,subop_pull_latency.sum=0,subop_push=0,subop_push_in_bytes=0,subop_push_latency.avgcount=0,subop_push_latency.avgtime=0,subop_push_latency.sum=0,subop_w=306946,subop_w_in_bytes=204236742,subop_w_latency.avgcount=306946,subop_w_latency.avgtime=0.006744881,subop_w_latency.sum=2070.314452989,tier_clean=0,tier_delay=0,tier_dirty=8,tier_evict=0,tier_flush=0,tier_flush_fail=0,tier_promote=0,tier_proxy_read=0,tier_proxy_write=0,tier_try_flush=0,tier_try_flush_fail=0,tier_whiteout=0 1587117698000000000 +ceph,collection=objecter,host=stefanosd1,id=1,type=osd command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=19,omap_del=0,omap_rd=0,omap_wr=0,op=0,op_active=0,op_laggy=0,op_pg=0,op_r=0,op_reply=0,op_resend=0,op_rmw=0,op_send=0,op_send_bytes=0,op_w=0,osd_laggy=0,osd_session_close=0,osd_session_open=0,osd_sessions=0,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117698000000000 +ceph,collection=AsyncMessenger::Worker-0,host=stefanosd1,id=1,type=osd msgr_active_connections=1356,msgr_created_connections=12290,msgr_recv_bytes=8577187219,msgr_recv_messages=6387040,msgr_running_fast_dispatch_time=475.903632306,msgr_running_recv_time=425.937196699,msgr_running_send_time=783.676217521,msgr_running_total_time=1989.242459076,msgr_send_bytes=12583034449,msgr_send_messages=6074344 1587117698000000000 +ceph,collection=bluestore,host=stefanosd1,id=1,type=osd bluestore_allocated=24182784,bluestore_blob_split=0,bluestore_blobs=88,bluestore_buffer_bytes=614400,bluestore_buffer_hit_bytes=142047,bluestore_buffer_miss_bytes=541480,bluestore_buffers=41,bluestore_compressed=0,bluestore_compressed_allocated=0,bluestore_compressed_original=0,bluestore_extent_compress=0,bluestore_extents=88,bluestore_fragmentation_micros=1,bluestore_gc_merged=0,bluestore_onode_hits=1403948,bluestore_onode_misses=1584732,bluestore_onode_reshard=0,bluestore_onode_shard_hits=0,bluestore_onode_shard_misses=0,bluestore_onodes=459,bluestore_read_eio=0,bluestore_reads_with_retries=0,bluestore_stored=1985647,bluestore_txc=593150,bluestore_write_big=0,bluestore_write_big_blobs=0,bluestore_write_big_bytes=0,bluestore_write_small=58,bluestore_write_small_bytes=343091,bluestore_write_small_deferred=20,bluestore_write_small_new=38,bluestore_write_small_pre_read=20,bluestore_write_small_unused=0,commit_lat.avgcount=593150,commit_lat.avgtime=0.006514834,commit_lat.sum=3864.274280733,compress_lat.avgcount=0,compress_lat.avgtime=0,compress_lat.sum=0,compress_rejected_count=0,compress_success_count=0,csum_lat.avgcount=60,csum_lat.avgtime=0.000028258,csum_lat.sum=0.001695512,decompress_lat.avgcount=0,decompress_lat.avgtime=0,decompress_lat.sum=0,deferred_write_bytes=0,deferred_write_ops=0,kv_commit_lat.avgcount=578129,kv_commit_lat.avgtime=0.00570707,kv_commit_lat.sum=3299.423186928,kv_final_lat.avgcount=578124,kv_final_lat.avgtime=0.000042752,kv_final_lat.sum=24.716171934,kv_flush_lat.avgcount=578129,kv_flush_lat.avgtime=0.000000209,kv_flush_lat.sum=0.121169044,kv_sync_lat.avgcount=578129,kv_sync_lat.avgtime=0.00570728,kv_sync_lat.sum=3299.544355972,omap_lower_bound_lat.avgcount=22,omap_lower_bound_lat.avgtime=0.000005979,omap_lower_bound_lat.sum=0.000131539,omap_next_lat.avgcount=13248,omap_next_lat.avgtime=0.000004836,omap_next_lat.sum=0.064077797,omap_seek_to_first_lat.avgcount=525,omap_seek_to_first_lat.avgtime=0.000004906,omap_seek_to_first_lat.sum=0.002575786,omap_upper_bound_lat.avgcount=0,omap_upper_bound_lat.avgtime=0,omap_upper_bound_lat.sum=0,read_lat.avgcount=406,read_lat.avgtime=0.000383254,read_lat.sum=0.155601529,read_onode_meta_lat.avgcount=483,read_onode_meta_lat.avgtime=0.000008805,read_onode_meta_lat.sum=0.004252832,read_wait_aio_lat.avgcount=77,read_wait_aio_lat.avgtime=0.001907361,read_wait_aio_lat.sum=0.146866799,state_aio_wait_lat.avgcount=593150,state_aio_wait_lat.avgtime=0.000000388,state_aio_wait_lat.sum=0.230498048,state_deferred_aio_wait_lat.avgcount=0,state_deferred_aio_wait_lat.avgtime=0,state_deferred_aio_wait_lat.sum=0,state_deferred_cleanup_lat.avgcount=0,state_deferred_cleanup_lat.avgtime=0,state_deferred_cleanup_lat.sum=0,state_deferred_queued_lat.avgcount=0,state_deferred_queued_lat.avgtime=0,state_deferred_queued_lat.sum=0,state_done_lat.avgcount=593140,state_done_lat.avgtime=0.000003048,state_done_lat.sum=1.80789161,state_finishing_lat.avgcount=593140,state_finishing_lat.avgtime=0.000000325,state_finishing_lat.sum=0.192952339,state_io_done_lat.avgcount=593150,state_io_done_lat.avgtime=0.000001202,state_io_done_lat.sum=0.713333116,state_kv_commiting_lat.avgcount=593150,state_kv_commiting_lat.avgtime=0.005788541,state_kv_commiting_lat.sum=3433.473378536,state_kv_done_lat.avgcount=593150,state_kv_done_lat.avgtime=0.000001472,state_kv_done_lat.sum=0.873559611,state_kv_queued_lat.avgcount=593150,state_kv_queued_lat.avgtime=0.000634215,state_kv_queued_lat.sum=376.18491577,state_prepare_lat.avgcount=593150,state_prepare_lat.avgtime=0.000089694,state_prepare_lat.sum=53.202464675,submit_lat.avgcount=593150,submit_lat.avgtime=0.000127856,submit_lat.sum=75.83816759,throttle_lat.avgcount=593150,throttle_lat.avgtime=0.000001726,throttle_lat.sum=1.023832181,write_pad_bytes=144333,write_penalty_read_ops=0 1587117698000000000 +ceph,collection=throttle-osd_client_bytes,host=stefanosd1,id=1,type=osd get=2920772,get_or_fail_fail=0,get_or_fail_success=2920772,get_started=0,get_sum=739935873,max=524288000,put=4888498,put_sum=739935873,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_front_client,host=stefanosd1,id=1,type=osd get=2605442,get_or_fail_fail=0,get_or_fail_success=2605442,get_started=0,get_sum=5221305768,max=104857600,put=2605442,put_sum=5221305768,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=AsyncMessenger::Worker-2,host=stefanosd1,id=1,type=osd msgr_active_connections=1375,msgr_created_connections=12689,msgr_recv_bytes=6393440855,msgr_recv_messages=3260458,msgr_running_fast_dispatch_time=120.622437418,msgr_running_recv_time=225.24709441,msgr_running_send_time=499.150587343,msgr_running_total_time=1043.340296846,msgr_send_bytes=11134862571,msgr_send_messages=3450760 1587117698000000000 +ceph,collection=bluefs,host=stefanosd1,id=1,type=osd bytes_written_slow=0,bytes_written_sst=19824993,bytes_written_wal=1788507023,db_total_bytes=4294967296,db_used_bytes=522190848,files_written_sst=4,files_written_wal=2,gift_bytes=0,log_bytes=1056768,log_compactions=2,logged_bytes=1933271040,max_bytes_db=1483735040,max_bytes_slow=0,max_bytes_wal=0,num_files=12,reclaim_bytes=0,slow_total_bytes=0,slow_used_bytes=0,wal_total_bytes=0,wal_used_bytes=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_back_client,host=stefanosd1,id=1,type=osd get=2605442,get_or_fail_fail=0,get_or_fail_success=2605442,get_started=0,get_sum=5221305768,max=104857600,put=2605442,put_sum=5221305768,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-bluestore_throttle_deferred_bytes,host=stefanosd1,id=1,type=osd get=10,get_or_fail_fail=0,get_or_fail_success=10,get_started=0,get_sum=7052009,max=201326592,put=0,put_sum=0,take=0,take_sum=0,val=7052009,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=rocksdb,host=stefanosd1,id=1,type=osd compact=0,compact_queue_len=0,compact_queue_merge=0,compact_range=0,get=1586061,get_latency.avgcount=1586061,get_latency.avgtime=0.000083009,get_latency.sum=131.658296684,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=593150,submit_latency.avgtime=0.000172072,submit_latency.sum=102.064900673,submit_sync_latency.avgcount=578129,submit_sync_latency.avgtime=0.005447017,submit_sync_latency.sum=3149.078822012,submit_transaction=593150,submit_transaction_sync=578129 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_back_server,host=stefanosd1,id=1,type=osd get=2607669,get_or_fail_fail=0,get_or_fail_success=2607669,get_started=0,get_sum=5225768676,max=104857600,put=2607669,put_sum=5225768676,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=recoverystate_perf,host=stefanosd1,id=1,type=osd activating_latency.avgcount=104,activating_latency.avgtime=0.071646485,activating_latency.sum=7.451234493,active_latency.avgcount=33,active_latency.avgtime=1734.369034268,active_latency.sum=57234.178130859,backfilling_latency.avgcount=1,backfilling_latency.avgtime=2.598401698,backfilling_latency.sum=2.598401698,clean_latency.avgcount=33,clean_latency.avgtime=1734.213467342,clean_latency.sum=57229.044422292,down_latency.avgcount=0,down_latency.avgtime=0,down_latency.sum=0,getinfo_latency.avgcount=167,getinfo_latency.avgtime=0.373444627,getinfo_latency.sum=62.365252849,getlog_latency.avgcount=105,getlog_latency.avgtime=0.003575062,getlog_latency.sum=0.375381569,getmissing_latency.avgcount=104,getmissing_latency.avgtime=0.000157091,getmissing_latency.sum=0.016337565,incomplete_latency.avgcount=0,incomplete_latency.avgtime=0,incomplete_latency.sum=0,initial_latency.avgcount=188,initial_latency.avgtime=0.001833512,initial_latency.sum=0.344700343,notbackfilling_latency.avgcount=0,notbackfilling_latency.avgtime=0,notbackfilling_latency.sum=0,notrecovering_latency.avgcount=0,notrecovering_latency.avgtime=0,notrecovering_latency.sum=0,peering_latency.avgcount=167,peering_latency.avgtime=1.501818082,peering_latency.sum=250.803619796,primary_latency.avgcount=97,primary_latency.avgtime=591.344286378,primary_latency.sum=57360.395778762,recovered_latency.avgcount=104,recovered_latency.avgtime=0.000291138,recovered_latency.sum=0.030278433,recovering_latency.avgcount=2,recovering_latency.avgtime=0.142378096,recovering_latency.sum=0.284756192,replicaactive_latency.avgcount=32,replicaactive_latency.avgtime=1788.474901442,replicaactive_latency.sum=57231.196846165,repnotrecovering_latency.avgcount=34,repnotrecovering_latency.avgtime=1683.273587087,repnotrecovering_latency.sum=57231.301960987,reprecovering_latency.avgcount=2,reprecovering_latency.avgtime=0.418094818,reprecovering_latency.sum=0.836189637,repwaitbackfillreserved_latency.avgcount=0,repwaitbackfillreserved_latency.avgtime=0,repwaitbackfillreserved_latency.sum=0,repwaitrecoveryreserved_latency.avgcount=2,repwaitrecoveryreserved_latency.avgtime=0.000588413,repwaitrecoveryreserved_latency.sum=0.001176827,reset_latency.avgcount=433,reset_latency.avgtime=0.15669689,reset_latency.sum=67.849753631,start_latency.avgcount=433,start_latency.avgtime=0.000412707,start_latency.sum=0.178702508,started_latency.avgcount=245,started_latency.avgtime=468.419544137,started_latency.sum=114762.788313581,stray_latency.avgcount=266,stray_latency.avgtime=1.489291271,stray_latency.sum=396.151478238,waitactingchange_latency.avgcount=1,waitactingchange_latency.avgtime=0.982689906,waitactingchange_latency.sum=0.982689906,waitlocalbackfillreserved_latency.avgcount=1,waitlocalbackfillreserved_latency.avgtime=0.000542092,waitlocalbackfillreserved_latency.sum=0.000542092,waitlocalrecoveryreserved_latency.avgcount=2,waitlocalrecoveryreserved_latency.avgtime=0.00391669,waitlocalrecoveryreserved_latency.sum=0.007833381,waitremotebackfillreserved_latency.avgcount=1,waitremotebackfillreserved_latency.avgtime=0.003110409,waitremotebackfillreserved_latency.sum=0.003110409,waitremoterecoveryreserved_latency.avgcount=2,waitremoterecoveryreserved_latency.avgtime=0.012229338,waitremoterecoveryreserved_latency.sum=0.024458677,waitupthru_latency.avgcount=104,waitupthru_latency.avgtime=1.807608905,waitupthru_latency.sum=187.991326197 1587117698000000000 +ceph,collection=AsyncMessenger::Worker-1,host=stefanosd1,id=1,type=osd msgr_active_connections=1289,msgr_created_connections=9469,msgr_recv_bytes=8348149800,msgr_recv_messages=5048791,msgr_running_fast_dispatch_time=313.754567889,msgr_running_recv_time=372.054833029,msgr_running_send_time=694.900405016,msgr_running_total_time=1656.294769387,msgr_send_bytes=11550148208,msgr_send_messages=5175962 1587117698000000000 +ceph,collection=throttle-bluestore_throttle_bytes,host=stefanosd1,id=1,type=osd get=593150,get_or_fail_fail=0,get_or_fail_success=0,get_started=593150,get_sum=398147414260,max=67108864,put=578129,put_sum=398147414260,take=0,take_sum=0,val=0,wait.avgcount=29,wait.avgtime=0.000972655,wait.sum=0.028207005 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-ms_objecter,host=stefanosd1,id=1,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=cct,host=stefanosd1,id=1,type=osd total_workers=6,unhealthy_workers=0 1587117698000000000 +ceph,collection=mempool,host=stefanosd1,id=1,type=osd bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=13064,bluefs_items=593,bluestore_alloc_bytes=230288,bluestore_alloc_items=28786,bluestore_cache_data_bytes=614400,bluestore_cache_data_items=41,bluestore_cache_onode_bytes=301104,bluestore_cache_onode_items=459,bluestore_cache_other_bytes=230945,bluestore_cache_other_items=26119,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=7520,bluestore_txc_items=10,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=657768,bluestore_writing_deferred_items=172,bluestore_writing_items=0,buffer_anon_bytes=2328515,buffer_anon_items=271,buffer_meta_bytes=5808,buffer_meta_items=66,mds_co_bytes=0,mds_co_items=0,osd_bytes=2406400,osd_items=188,osd_mapbl_bytes=139623,osd_mapbl_items=9,osd_pglog_bytes=6768784,osd_pglog_items=18179,osdmap_bytes=710892,osdmap_items=4426,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-client,host=stefanosd1,id=1,type=osd get=2932513,get_or_fail_fail=0,get_or_fail_success=2932513,get_started=0,get_sum=740620215,max=104857600,put=2932513,put_sum=740620215,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_front_server,host=stefanosd1,id=1,type=osd get=2607669,get_or_fail_fail=0,get_or_fail_success=2607669,get_started=0,get_sum=5225768676,max=104857600,put=2607669,put_sum=5225768676,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=finisher-commit_finisher,host=stefanosd1,id=1,type=osd complete_latency.avgcount=10,complete_latency.avgtime=0.002884646,complete_latency.sum=0.028846469,queue_len=0 1587117698000000000 +ceph,collection=finisher-objecter-finisher-0,host=stefanosd1,id=1,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 +ceph,collection=throttle-objecter_bytes,host=stefanosd1,id=2,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=finisher-commit_finisher,host=stefanosd1,id=2,type=osd complete_latency.avgcount=11,complete_latency.avgtime=0.002714416,complete_latency.sum=0.029858583,queue_len=0 1587117698000000000 +ceph,collection=finisher-defered_finisher,host=stefanosd1,id=2,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 +ceph,collection=objecter,host=stefanosd1,id=2,type=osd command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=19,omap_del=0,omap_rd=0,omap_wr=0,op=0,op_active=0,op_laggy=0,op_pg=0,op_r=0,op_reply=0,op_resend=0,op_rmw=0,op_send=0,op_send_bytes=0,op_w=0,osd_laggy=0,osd_session_close=0,osd_session_open=0,osd_sessions=0,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_back_client,host=stefanosd1,id=2,type=osd get=2607136,get_or_fail_fail=0,get_or_fail_success=2607136,get_started=0,get_sum=5224700544,max=104857600,put=2607136,put_sum=5224700544,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=mempool,host=stefanosd1,id=2,type=osd bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=11624,bluefs_items=522,bluestore_alloc_bytes=230288,bluestore_alloc_items=28786,bluestore_cache_data_bytes=614400,bluestore_cache_data_items=41,bluestore_cache_onode_bytes=228288,bluestore_cache_onode_items=348,bluestore_cache_other_bytes=174158,bluestore_cache_other_items=18527,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=8272,bluestore_txc_items=11,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=670130,bluestore_writing_deferred_items=176,bluestore_writing_items=0,buffer_anon_bytes=2311664,buffer_anon_items=244,buffer_meta_bytes=5456,buffer_meta_items=62,mds_co_bytes=0,mds_co_items=0,osd_bytes=1920000,osd_items=150,osd_mapbl_bytes=155152,osd_mapbl_items=10,osd_pglog_bytes=3393520,osd_pglog_items=9128,osdmap_bytes=710892,osdmap_items=4426,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117698000000000 +ceph,collection=osd,host=stefanosd1,id=2,type=osd agent_evict=0,agent_flush=0,agent_skip=0,agent_wake=0,cached_crc=0,cached_crc_adjusted=0,copyfrom=0,heartbeat_to_peers=7,loadavg=11,map_message_epoch_dups=37,map_message_epochs=56,map_messages=37,messages_delayed_for_map=0,missed_crc=0,numpg=150,numpg_primary=59,numpg_removing=0,numpg_replica=91,numpg_stray=0,object_ctx_cache_hit=705923,object_ctx_cache_total=705951,op=690584,op_before_dequeue_op_lat.avgcount=1155697,op_before_dequeue_op_lat.avgtime=0.000217926,op_before_dequeue_op_lat.sum=251.856487141,op_before_queue_op_lat.avgcount=1148445,op_before_queue_op_lat.avgtime=0.000039696,op_before_queue_op_lat.sum=45.589516462,op_cache_hit=0,op_in_bytes=0,op_latency.avgcount=690584,op_latency.avgtime=0.002488685,op_latency.sum=1718.646504654,op_out_bytes=1026000,op_prepare_latency.avgcount=698700,op_prepare_latency.avgtime=0.000300375,op_prepare_latency.sum=209.872029659,op_process_latency.avgcount=690584,op_process_latency.avgtime=0.00230742,op_process_latency.sum=1593.46739165,op_r=548020,op_r_latency.avgcount=548020,op_r_latency.avgtime=0.000298287,op_r_latency.sum=163.467760649,op_r_out_bytes=1026000,op_r_prepare_latency.avgcount=548020,op_r_prepare_latency.avgtime=0.000186359,op_r_prepare_latency.sum=102.128629183,op_r_process_latency.avgcount=548020,op_r_process_latency.avgtime=0.00012716,op_r_process_latency.sum=69.686468884,op_rw=142562,op_rw_in_bytes=0,op_rw_latency.avgcount=142562,op_rw_latency.avgtime=0.010908597,op_rw_latency.sum=1555.151525732,op_rw_out_bytes=0,op_rw_prepare_latency.avgcount=150678,op_rw_prepare_latency.avgtime=0.000715043,op_rw_prepare_latency.sum=107.741399304,op_rw_process_latency.avgcount=142562,op_rw_process_latency.avgtime=0.01068836,op_rw_process_latency.sum=1523.754107887,op_w=2,op_w_in_bytes=0,op_w_latency.avgcount=2,op_w_latency.avgtime=0.013609136,op_w_latency.sum=0.027218273,op_w_prepare_latency.avgcount=2,op_w_prepare_latency.avgtime=0.001000586,op_w_prepare_latency.sum=0.002001172,op_w_process_latency.avgcount=2,op_w_process_latency.avgtime=0.013407439,op_w_process_latency.sum=0.026814879,op_wip=0,osd_map_bl_cache_hit=15,osd_map_bl_cache_miss=41,osd_map_cache_hit=4241,osd_map_cache_miss=14,osd_map_cache_miss_low=0,osd_map_cache_miss_low_avg.avgcount=0,osd_map_cache_miss_low_avg.sum=0,osd_pg_biginfo=1824,osd_pg_fastinfo=285998,osd_pg_info=294869,osd_tier_flush_lat.avgcount=0,osd_tier_flush_lat.avgtime=0,osd_tier_flush_lat.sum=0,osd_tier_promote_lat.avgcount=0,osd_tier_promote_lat.avgtime=0,osd_tier_promote_lat.sum=0,osd_tier_r_lat.avgcount=0,osd_tier_r_lat.avgtime=0,osd_tier_r_lat.sum=0,pull=0,push=1,push_out_bytes=0,recovery_bytes=0,recovery_ops=0,stat_bytes=107369988096,stat_bytes_avail=106271932416,stat_bytes_used=1098055680,subop=134165,subop_in_bytes=89501237,subop_latency.avgcount=134165,subop_latency.avgtime=0.007313523,subop_latency.sum=981.218888627,subop_pull=0,subop_pull_latency.avgcount=0,subop_pull_latency.avgtime=0,subop_pull_latency.sum=0,subop_push=0,subop_push_in_bytes=0,subop_push_latency.avgcount=0,subop_push_latency.avgtime=0,subop_push_latency.sum=0,subop_w=134165,subop_w_in_bytes=89501237,subop_w_latency.avgcount=134165,subop_w_latency.avgtime=0.007313523,subop_w_latency.sum=981.218888627,tier_clean=0,tier_delay=0,tier_dirty=4,tier_evict=0,tier_flush=0,tier_flush_fail=0,tier_promote=0,tier_proxy_read=0,tier_proxy_write=0,tier_try_flush=0,tier_try_flush_fail=0,tier_whiteout=0 1587117698000000000 +ceph,collection=AsyncMessenger::Worker-1,host=stefanosd1,id=2,type=osd msgr_active_connections=746,msgr_created_connections=15212,msgr_recv_bytes=8633229006,msgr_recv_messages=4284202,msgr_running_fast_dispatch_time=153.820479102,msgr_running_recv_time=282.031655658,msgr_running_send_time=585.444749736,msgr_running_total_time=1231.431789242,msgr_send_bytes=11962769351,msgr_send_messages=4440622 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-ms_objecter,host=stefanosd1,id=2,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_front_client,host=stefanosd1,id=2,type=osd get=2607136,get_or_fail_fail=0,get_or_fail_success=2607136,get_started=0,get_sum=5224700544,max=104857600,put=2607136,put_sum=5224700544,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=bluefs,host=stefanosd1,id=2,type=osd bytes_written_slow=0,bytes_written_sst=9065815,bytes_written_wal=901884611,db_total_bytes=4294967296,db_used_bytes=546308096,files_written_sst=3,files_written_wal=2,gift_bytes=0,log_bytes=225726464,log_compactions=1,logged_bytes=1195945984,max_bytes_db=1234173952,max_bytes_slow=0,max_bytes_wal=0,num_files=11,reclaim_bytes=0,slow_total_bytes=0,slow_used_bytes=0,wal_total_bytes=0,wal_used_bytes=0 1587117698000000000 +ceph,collection=recoverystate_perf,host=stefanosd1,id=2,type=osd activating_latency.avgcount=88,activating_latency.avgtime=0.086149065,activating_latency.sum=7.581117751,active_latency.avgcount=29,active_latency.avgtime=1790.849396082,active_latency.sum=51934.632486379,backfilling_latency.avgcount=0,backfilling_latency.avgtime=0,backfilling_latency.sum=0,clean_latency.avgcount=29,clean_latency.avgtime=1790.754765195,clean_latency.sum=51931.888190683,down_latency.avgcount=0,down_latency.avgtime=0,down_latency.sum=0,getinfo_latency.avgcount=134,getinfo_latency.avgtime=0.427567953,getinfo_latency.sum=57.294105786,getlog_latency.avgcount=88,getlog_latency.avgtime=0.011810192,getlog_latency.sum=1.03929697,getmissing_latency.avgcount=88,getmissing_latency.avgtime=0.000104598,getmissing_latency.sum=0.009204673,incomplete_latency.avgcount=0,incomplete_latency.avgtime=0,incomplete_latency.sum=0,initial_latency.avgcount=150,initial_latency.avgtime=0.001251361,initial_latency.sum=0.187704197,notbackfilling_latency.avgcount=0,notbackfilling_latency.avgtime=0,notbackfilling_latency.sum=0,notrecovering_latency.avgcount=0,notrecovering_latency.avgtime=0,notrecovering_latency.sum=0,peering_latency.avgcount=134,peering_latency.avgtime=0.998405763,peering_latency.sum=133.786372331,primary_latency.avgcount=75,primary_latency.avgtime=693.473306562,primary_latency.sum=52010.497992212,recovered_latency.avgcount=88,recovered_latency.avgtime=0.000609715,recovered_latency.sum=0.053654964,recovering_latency.avgcount=1,recovering_latency.avgtime=0.100713031,recovering_latency.sum=0.100713031,replicaactive_latency.avgcount=21,replicaactive_latency.avgtime=1790.852354921,replicaactive_latency.sum=37607.89945336,repnotrecovering_latency.avgcount=21,repnotrecovering_latency.avgtime=1790.852315529,repnotrecovering_latency.sum=37607.898626121,reprecovering_latency.avgcount=0,reprecovering_latency.avgtime=0,reprecovering_latency.sum=0,repwaitbackfillreserved_latency.avgcount=0,repwaitbackfillreserved_latency.avgtime=0,repwaitbackfillreserved_latency.sum=0,repwaitrecoveryreserved_latency.avgcount=0,repwaitrecoveryreserved_latency.avgtime=0,repwaitrecoveryreserved_latency.sum=0,reset_latency.avgcount=346,reset_latency.avgtime=0.126826803,reset_latency.sum=43.882073917,start_latency.avgcount=346,start_latency.avgtime=0.000233277,start_latency.sum=0.080713962,started_latency.avgcount=196,started_latency.avgtime=457.885378797,started_latency.sum=89745.534244237,stray_latency.avgcount=212,stray_latency.avgtime=1.013774396,stray_latency.sum=214.920172121,waitactingchange_latency.avgcount=0,waitactingchange_latency.avgtime=0,waitactingchange_latency.sum=0,waitlocalbackfillreserved_latency.avgcount=0,waitlocalbackfillreserved_latency.avgtime=0,waitlocalbackfillreserved_latency.sum=0,waitlocalrecoveryreserved_latency.avgcount=1,waitlocalrecoveryreserved_latency.avgtime=0.001572379,waitlocalrecoveryreserved_latency.sum=0.001572379,waitremotebackfillreserved_latency.avgcount=0,waitremotebackfillreserved_latency.avgtime=0,waitremotebackfillreserved_latency.sum=0,waitremoterecoveryreserved_latency.avgcount=1,waitremoterecoveryreserved_latency.avgtime=0.012729633,waitremoterecoveryreserved_latency.sum=0.012729633,waitupthru_latency.avgcount=88,waitupthru_latency.avgtime=0.857137729,waitupthru_latency.sum=75.428120205 1587117698000000000 +ceph,collection=throttle-objecter_ops,host=stefanosd1,id=2,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=bluestore,host=stefanosd1,id=2,type=osd bluestore_allocated=24248320,bluestore_blob_split=0,bluestore_blobs=83,bluestore_buffer_bytes=614400,bluestore_buffer_hit_bytes=161362,bluestore_buffer_miss_bytes=534799,bluestore_buffers=41,bluestore_compressed=0,bluestore_compressed_allocated=0,bluestore_compressed_original=0,bluestore_extent_compress=0,bluestore_extents=83,bluestore_fragmentation_micros=1,bluestore_gc_merged=0,bluestore_onode_hits=723852,bluestore_onode_misses=364,bluestore_onode_reshard=0,bluestore_onode_shard_hits=0,bluestore_onode_shard_misses=0,bluestore_onodes=348,bluestore_read_eio=0,bluestore_reads_with_retries=0,bluestore_stored=1984402,bluestore_txc=295997,bluestore_write_big=0,bluestore_write_big_blobs=0,bluestore_write_big_bytes=0,bluestore_write_small=60,bluestore_write_small_bytes=343843,bluestore_write_small_deferred=22,bluestore_write_small_new=38,bluestore_write_small_pre_read=22,bluestore_write_small_unused=0,commit_lat.avgcount=295997,commit_lat.avgtime=0.006994931,commit_lat.sum=2070.478673619,compress_lat.avgcount=0,compress_lat.avgtime=0,compress_lat.sum=0,compress_rejected_count=0,compress_success_count=0,csum_lat.avgcount=47,csum_lat.avgtime=0.000034434,csum_lat.sum=0.001618423,decompress_lat.avgcount=0,decompress_lat.avgtime=0,decompress_lat.sum=0,deferred_write_bytes=0,deferred_write_ops=0,kv_commit_lat.avgcount=291889,kv_commit_lat.avgtime=0.006347015,kv_commit_lat.sum=1852.624108527,kv_final_lat.avgcount=291885,kv_final_lat.avgtime=0.00004358,kv_final_lat.sum=12.720529751,kv_flush_lat.avgcount=291889,kv_flush_lat.avgtime=0.000000211,kv_flush_lat.sum=0.061636079,kv_sync_lat.avgcount=291889,kv_sync_lat.avgtime=0.006347227,kv_sync_lat.sum=1852.685744606,omap_lower_bound_lat.avgcount=1,omap_lower_bound_lat.avgtime=0.000004482,omap_lower_bound_lat.sum=0.000004482,omap_next_lat.avgcount=6933,omap_next_lat.avgtime=0.000003956,omap_next_lat.sum=0.027427456,omap_seek_to_first_lat.avgcount=309,omap_seek_to_first_lat.avgtime=0.000005879,omap_seek_to_first_lat.sum=0.001816658,omap_upper_bound_lat.avgcount=0,omap_upper_bound_lat.avgtime=0,omap_upper_bound_lat.sum=0,read_lat.avgcount=229,read_lat.avgtime=0.000394981,read_lat.sum=0.090450704,read_onode_meta_lat.avgcount=295,read_onode_meta_lat.avgtime=0.000016832,read_onode_meta_lat.sum=0.004965516,read_wait_aio_lat.avgcount=66,read_wait_aio_lat.avgtime=0.001237841,read_wait_aio_lat.sum=0.081697561,state_aio_wait_lat.avgcount=295997,state_aio_wait_lat.avgtime=0.000000357,state_aio_wait_lat.sum=0.105827433,state_deferred_aio_wait_lat.avgcount=0,state_deferred_aio_wait_lat.avgtime=0,state_deferred_aio_wait_lat.sum=0,state_deferred_cleanup_lat.avgcount=0,state_deferred_cleanup_lat.avgtime=0,state_deferred_cleanup_lat.sum=0,state_deferred_queued_lat.avgcount=0,state_deferred_queued_lat.avgtime=0,state_deferred_queued_lat.sum=0,state_done_lat.avgcount=295986,state_done_lat.avgtime=0.000003017,state_done_lat.sum=0.893199127,state_finishing_lat.avgcount=295986,state_finishing_lat.avgtime=0.000000306,state_finishing_lat.sum=0.090792683,state_io_done_lat.avgcount=295997,state_io_done_lat.avgtime=0.000001066,state_io_done_lat.sum=0.315577655,state_kv_commiting_lat.avgcount=295997,state_kv_commiting_lat.avgtime=0.006423586,state_kv_commiting_lat.sum=1901.362268572,state_kv_done_lat.avgcount=295997,state_kv_done_lat.avgtime=0.00000155,state_kv_done_lat.sum=0.458963064,state_kv_queued_lat.avgcount=295997,state_kv_queued_lat.avgtime=0.000477234,state_kv_queued_lat.sum=141.260101773,state_prepare_lat.avgcount=295997,state_prepare_lat.avgtime=0.000091806,state_prepare_lat.sum=27.174436583,submit_lat.avgcount=295997,submit_lat.avgtime=0.000135729,submit_lat.sum=40.17557682,throttle_lat.avgcount=295997,throttle_lat.avgtime=0.000002734,throttle_lat.sum=0.809479837,write_pad_bytes=151773,write_penalty_read_ops=0 1587117698000000000 +ceph,collection=throttle-bluestore_throttle_bytes,host=stefanosd1,id=2,type=osd get=295997,get_or_fail_fail=0,get_or_fail_success=0,get_started=295997,get_sum=198686579299,max=67108864,put=291889,put_sum=198686579299,take=0,take_sum=0,val=0,wait.avgcount=83,wait.avgtime=0.003670612,wait.sum=0.304660858 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-cluster,host=stefanosd1,id=2,type=osd get=452060,get_or_fail_fail=0,get_or_fail_success=452060,get_started=0,get_sum=269934345,max=104857600,put=452060,put_sum=269934345,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-bluestore_throttle_deferred_bytes,host=stefanosd1,id=2,type=osd get=11,get_or_fail_fail=0,get_or_fail_success=11,get_started=0,get_sum=7723117,max=201326592,put=0,put_sum=0,take=0,take_sum=0,val=7723117,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_front_server,host=stefanosd1,id=2,type=osd get=2607433,get_or_fail_fail=0,get_or_fail_success=2607433,get_started=0,get_sum=5225295732,max=104857600,put=2607433,put_sum=5225295732,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=finisher-objecter-finisher-0,host=stefanosd1,id=2,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000 +ceph,collection=cct,host=stefanosd1,id=2,type=osd total_workers=6,unhealthy_workers=0 1587117698000000000 +ceph,collection=AsyncMessenger::Worker-2,host=stefanosd1,id=2,type=osd msgr_active_connections=670,msgr_created_connections=13455,msgr_recv_bytes=6334605563,msgr_recv_messages=3287843,msgr_running_fast_dispatch_time=137.016615819,msgr_running_recv_time=240.687997039,msgr_running_send_time=471.710658466,msgr_running_total_time=1034.029109337,msgr_send_bytes=9753423475,msgr_send_messages=3439611 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-client,host=stefanosd1,id=2,type=osd get=710355,get_or_fail_fail=0,get_or_fail_success=710355,get_started=0,get_sum=166306283,max=104857600,put=710355,put_sum=166306283,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=throttle-msgr_dispatch_throttler-hb_back_server,host=stefanosd1,id=2,type=osd get=2607433,get_or_fail_fail=0,get_or_fail_success=2607433,get_started=0,get_sum=5225295732,max=104857600,put=2607433,put_sum=5225295732,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=AsyncMessenger::Worker-0,host=stefanosd1,id=2,type=osd msgr_active_connections=705,msgr_created_connections=17953,msgr_recv_bytes=7261438733,msgr_recv_messages=4496034,msgr_running_fast_dispatch_time=254.716476808,msgr_running_recv_time=272.196741555,msgr_running_send_time=571.102924903,msgr_running_total_time=1338.461077493,msgr_send_bytes=10772250508,msgr_send_messages=4192781 1587117698000000000 +ceph,collection=rocksdb,host=stefanosd1,id=2,type=osd compact=0,compact_queue_len=0,compact_queue_merge=0,compact_range=0,get=1424,get_latency.avgcount=1424,get_latency.avgtime=0.000030752,get_latency.sum=0.043792142,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=295997,submit_latency.avgtime=0.000173137,submit_latency.sum=51.248072285,submit_sync_latency.avgcount=291889,submit_sync_latency.avgtime=0.006094397,submit_sync_latency.sum=1778.887521449,submit_transaction=295997,submit_transaction_sync=291889 1587117698000000000 +ceph,collection=throttle-osd_client_bytes,host=stefanosd1,id=2,type=osd get=698701,get_or_fail_fail=0,get_or_fail_success=698701,get_started=0,get_sum=165630172,max=524288000,put=920880,put_sum=165630172,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000 +ceph,collection=mds_sessions,host=stefanmds1,id=stefanmds1,type=mds average_load=0,avg_session_uptime=0,session_add=0,session_count=0,session_remove=0,sessions_open=0,sessions_stale=0,total_load=0 1587117476000000000 +ceph,collection=mempool,host=stefanmds1,id=stefanmds1,type=mds bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=0,bluefs_items=0,bluestore_alloc_bytes=0,bluestore_alloc_items=0,bluestore_cache_data_bytes=0,bluestore_cache_data_items=0,bluestore_cache_onode_bytes=0,bluestore_cache_onode_items=0,bluestore_cache_other_bytes=0,bluestore_cache_other_items=0,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=0,bluestore_txc_items=0,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=0,bluestore_writing_deferred_items=0,bluestore_writing_items=0,buffer_anon_bytes=132069,buffer_anon_items=82,buffer_meta_bytes=0,buffer_meta_items=0,mds_co_bytes=44208,mds_co_items=154,osd_bytes=0,osd_items=0,osd_mapbl_bytes=0,osd_mapbl_items=0,osd_pglog_bytes=0,osd_pglog_items=0,osdmap_bytes=16952,osdmap_items=139,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117476000000000 +ceph,collection=objecter,host=stefanmds1,id=stefanmds1,type=mds command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=1,omap_del=0,omap_rd=28,omap_wr=1,op=33,op_active=0,op_laggy=0,op_pg=0,op_r=26,op_reply=33,op_resend=2,op_rmw=0,op_send=35,op_send_bytes=364,op_w=7,osd_laggy=0,osd_session_close=91462,osd_session_open=91468,osd_sessions=6,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=5,osdop_getxattr=14,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=8,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=2,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=1,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117476000000000 +ceph,collection=cct,host=stefanmds1,id=stefanmds1,type=mds total_workers=1,unhealthy_workers=0 1587117476000000000 +ceph,collection=mds_server,host=stefanmds1,id=stefanmds1,type=mds cap_revoke_eviction=0,dispatch_client_request=0,dispatch_server_request=0,handle_client_request=0,handle_client_session=0,handle_slave_request=0,req_create_latency.avgcount=0,req_create_latency.avgtime=0,req_create_latency.sum=0,req_getattr_latency.avgcount=0,req_getattr_latency.avgtime=0,req_getattr_latency.sum=0,req_getfilelock_latency.avgcount=0,req_getfilelock_latency.avgtime=0,req_getfilelock_latency.sum=0,req_link_latency.avgcount=0,req_link_latency.avgtime=0,req_link_latency.sum=0,req_lookup_latency.avgcount=0,req_lookup_latency.avgtime=0,req_lookup_latency.sum=0,req_lookuphash_latency.avgcount=0,req_lookuphash_latency.avgtime=0,req_lookuphash_latency.sum=0,req_lookupino_latency.avgcount=0,req_lookupino_latency.avgtime=0,req_lookupino_latency.sum=0,req_lookupname_latency.avgcount=0,req_lookupname_latency.avgtime=0,req_lookupname_latency.sum=0,req_lookupparent_latency.avgcount=0,req_lookupparent_latency.avgtime=0,req_lookupparent_latency.sum=0,req_lookupsnap_latency.avgcount=0,req_lookupsnap_latency.avgtime=0,req_lookupsnap_latency.sum=0,req_lssnap_latency.avgcount=0,req_lssnap_latency.avgtime=0,req_lssnap_latency.sum=0,req_mkdir_latency.avgcount=0,req_mkdir_latency.avgtime=0,req_mkdir_latency.sum=0,req_mknod_latency.avgcount=0,req_mknod_latency.avgtime=0,req_mknod_latency.sum=0,req_mksnap_latency.avgcount=0,req_mksnap_latency.avgtime=0,req_mksnap_latency.sum=0,req_open_latency.avgcount=0,req_open_latency.avgtime=0,req_open_latency.sum=0,req_readdir_latency.avgcount=0,req_readdir_latency.avgtime=0,req_readdir_latency.sum=0,req_rename_latency.avgcount=0,req_rename_latency.avgtime=0,req_rename_latency.sum=0,req_renamesnap_latency.avgcount=0,req_renamesnap_latency.avgtime=0,req_renamesnap_latency.sum=0,req_rmdir_latency.avgcount=0,req_rmdir_latency.avgtime=0,req_rmdir_latency.sum=0,req_rmsnap_latency.avgcount=0,req_rmsnap_latency.avgtime=0,req_rmsnap_latency.sum=0,req_rmxattr_latency.avgcount=0,req_rmxattr_latency.avgtime=0,req_rmxattr_latency.sum=0,req_setattr_latency.avgcount=0,req_setattr_latency.avgtime=0,req_setattr_latency.sum=0,req_setdirlayout_latency.avgcount=0,req_setdirlayout_latency.avgtime=0,req_setdirlayout_latency.sum=0,req_setfilelock_latency.avgcount=0,req_setfilelock_latency.avgtime=0,req_setfilelock_latency.sum=0,req_setlayout_latency.avgcount=0,req_setlayout_latency.avgtime=0,req_setlayout_latency.sum=0,req_setxattr_latency.avgcount=0,req_setxattr_latency.avgtime=0,req_setxattr_latency.sum=0,req_symlink_latency.avgcount=0,req_symlink_latency.avgtime=0,req_symlink_latency.sum=0,req_unlink_latency.avgcount=0,req_unlink_latency.avgtime=0,req_unlink_latency.sum=0 1587117476000000000 +ceph,collection=AsyncMessenger::Worker-2,host=stefanmds1,id=stefanmds1,type=mds msgr_active_connections=84,msgr_created_connections=68511,msgr_recv_bytes=238078,msgr_recv_messages=2655,msgr_running_fast_dispatch_time=0.004247777,msgr_running_recv_time=25.369012545,msgr_running_send_time=3.743427461,msgr_running_total_time=130.277111559,msgr_send_bytes=172767043,msgr_send_messages=18172 1587117476000000000 +ceph,collection=mds_log,host=stefanmds1,id=stefanmds1,type=mds ev=0,evadd=0,evex=0,evexd=0,evexg=0,evtrm=0,expos=4194304,jlat.avgcount=0,jlat.avgtime=0,jlat.sum=0,rdpos=4194304,replayed=1,seg=1,segadd=0,segex=0,segexd=0,segexg=0,segtrm=0,wrpos=0 1587117476000000000 +ceph,collection=AsyncMessenger::Worker-0,host=stefanmds1,id=stefanmds1,type=mds msgr_active_connections=595,msgr_created_connections=943825,msgr_recv_bytes=78618003,msgr_recv_messages=914080,msgr_running_fast_dispatch_time=0.001544386,msgr_running_recv_time=459.627068807,msgr_running_send_time=469.337032316,msgr_running_total_time=2744.084305898,msgr_send_bytes=61684163658,msgr_send_messages=1858008 1587117476000000000 +ceph,collection=throttle-msgr_dispatch_throttler-mds,host=stefanmds1,id=stefanmds1,type=mds get=1216458,get_or_fail_fail=0,get_or_fail_success=1216458,get_started=0,get_sum=51976882,max=104857600,put=1216458,put_sum=51976882,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000 +ceph,collection=AsyncMessenger::Worker-1,host=stefanmds1,id=stefanmds1,type=mds msgr_active_connections=226,msgr_created_connections=42679,msgr_recv_bytes=63140151,msgr_recv_messages=299727,msgr_running_fast_dispatch_time=26.316138629,msgr_running_recv_time=36.969916165,msgr_running_send_time=70.457421128,msgr_running_total_time=226.230019936,msgr_send_bytes=193154464,msgr_send_messages=310481 1587117476000000000 +ceph,collection=mds,host=stefanmds1,id=stefanmds1,type=mds caps=0,dir_commit=0,dir_fetch=12,dir_merge=0,dir_split=0,exported=0,exported_inodes=0,forward=0,imported=0,imported_inodes=0,inode_max=2147483647,inodes=10,inodes_bottom=3,inodes_expired=0,inodes_pin_tail=0,inodes_pinned=10,inodes_top=7,inodes_with_caps=0,load_cent=0,openino_backtrace_fetch=0,openino_dir_fetch=0,openino_peer_discover=0,q=0,reply=0,reply_latency.avgcount=0,reply_latency.avgtime=0,reply_latency.sum=0,request=0,subtrees=2,traverse=0,traverse_dir_fetch=0,traverse_discover=0,traverse_forward=0,traverse_hit=0,traverse_lock=0,traverse_remote_ino=0 1587117476000000000 +ceph,collection=purge_queue,host=stefanmds1,id=stefanmds1,type=mds pq_executed=0,pq_executing=0,pq_executing_ops=0 1587117476000000000 +ceph,collection=throttle-write_buf_throttle,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=3758096384,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000 +ceph,collection=throttle-write_buf_throttle-0x5624e9377f40,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=3758096384,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000 +ceph,collection=mds_cache,host=stefanmds1,id=stefanmds1,type=mds ireq_enqueue_scrub=0,ireq_exportdir=0,ireq_flush=0,ireq_fragmentdir=0,ireq_fragstats=0,ireq_inodestats=0,num_recovering_enqueued=0,num_recovering_prioritized=0,num_recovering_processing=0,num_strays=0,num_strays_delayed=0,num_strays_enqueuing=0,recovery_completed=0,recovery_started=0,strays_created=0,strays_enqueued=0,strays_migrated=0,strays_reintegrated=0 1587117476000000000 +ceph,collection=throttle-objecter_bytes,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=16,put_sum=1016,take=33,take_sum=1016,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000 +ceph,collection=throttle-objecter_ops,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=33,put_sum=33,take=33,take_sum=33,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000 +ceph,collection=mds_mem,host=stefanmds1,id=stefanmds1,type=mds cap=0,cap+=0,cap-=0,dir=12,dir+=12,dir-=0,dn=10,dn+=10,dn-=0,heap=322284,ino=13,ino+=13,ino-=0,rss=76032 1587117476000000000 +ceph,collection=finisher-PurgeQueue,host=stefanmds1,id=stefanmds1,type=mds complete_latency.avgcount=4,complete_latency.avgtime=0.000176985,complete_latency.sum=0.000707941,queue_len=0 1587117476000000000 +ceph,collection=cct,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw total_workers=0,unhealthy_workers=0 1587117156000000000 +ceph,collection=throttle-objecter_bytes,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=791732,get_or_fail_fail=0,get_or_fail_success=791732,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 +ceph,collection=rgw,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw cache_hit=0,cache_miss=791706,failed_req=0,get=0,get_b=0,get_initial_lat.avgcount=0,get_initial_lat.avgtime=0,get_initial_lat.sum=0,keystone_token_cache_hit=0,keystone_token_cache_miss=0,pubsub_event_lost=0,pubsub_event_triggered=0,pubsub_events=0,pubsub_push_failed=0,pubsub_push_ok=0,pubsub_push_pending=0,pubsub_store_fail=0,pubsub_store_ok=0,put=0,put_b=0,put_initial_lat.avgcount=0,put_initial_lat.avgtime=0,put_initial_lat.sum=0,qactive=0,qlen=0,req=791705 1587117156000000000 +ceph,collection=throttle-msgr_dispatch_throttler-radosclient,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=2697988,get_or_fail_fail=0,get_or_fail_success=2697988,get_started=0,get_sum=444563051,max=104857600,put=2697988,put_sum=444563051,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 +ceph,collection=finisher-radosclient,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw complete_latency.avgcount=2,complete_latency.avgtime=0.003530161,complete_latency.sum=0.007060323,queue_len=0 1587117156000000000 +ceph,collection=throttle-rgw_async_rados_ops,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=64,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 +ceph,collection=throttle-objecter_ops,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=791732,get_or_fail_fail=0,get_or_fail_success=791732,get_started=0,get_sum=791732,max=24576,put=791732,put_sum=791732,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 +ceph,collection=throttle-objecter_bytes-0x5598969981c0,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=1637900,get_or_fail_fail=0,get_or_fail_success=1637900,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 +ceph,collection=objecter,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw command_active=0,command_resend=0,command_send=0,linger_active=8,linger_ping=1905736,linger_resend=4,linger_send=13,map_epoch=203,map_full=0,map_inc=17,omap_del=0,omap_rd=0,omap_wr=0,op=2697488,op_active=0,op_laggy=0,op_pg=0,op_r=791730,op_reply=2697476,op_resend=1,op_rmw=0,op_send=2697490,op_send_bytes=362,op_w=1905758,osd_laggy=5,osd_session_close=59558,osd_session_open=59566,osd_sessions=8,osdop_append=0,osdop_call=1,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=8,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=791714,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=16,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=791706,osdop_truncate=0,osdop_watch=1905750,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117156000000000 +ceph,collection=AsyncMessenger::Worker-2,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw msgr_active_connections=11,msgr_created_connections=59839,msgr_recv_bytes=342697143,msgr_recv_messages=1441603,msgr_running_fast_dispatch_time=161.807937536,msgr_running_recv_time=118.174064257,msgr_running_send_time=207.679154333,msgr_running_total_time=698.527662129,msgr_send_bytes=530785909,msgr_send_messages=1679950 1587117156000000000 +ceph,collection=mempool,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=0,bluefs_items=0,bluestore_alloc_bytes=0,bluestore_alloc_items=0,bluestore_cache_data_bytes=0,bluestore_cache_data_items=0,bluestore_cache_onode_bytes=0,bluestore_cache_onode_items=0,bluestore_cache_other_bytes=0,bluestore_cache_other_items=0,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=0,bluestore_txc_items=0,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=0,bluestore_writing_deferred_items=0,bluestore_writing_items=0,buffer_anon_bytes=225471,buffer_anon_items=163,buffer_meta_bytes=0,buffer_meta_items=0,mds_co_bytes=0,mds_co_items=0,osd_bytes=0,osd_items=0,osd_mapbl_bytes=0,osd_mapbl_items=0,osd_pglog_bytes=0,osd_pglog_items=0,osdmap_bytes=33904,osdmap_items=278,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117156000000000 +ceph,collection=throttle-msgr_dispatch_throttler-radosclient-0x559896998120,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=1652935,get_or_fail_fail=0,get_or_fail_success=1652935,get_started=0,get_sum=276333029,max=104857600,put=1652935,put_sum=276333029,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 +ceph,collection=AsyncMessenger::Worker-1,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw msgr_active_connections=17,msgr_created_connections=84859,msgr_recv_bytes=211170759,msgr_recv_messages=922646,msgr_running_fast_dispatch_time=31.487443762,msgr_running_recv_time=83.190789333,msgr_running_send_time=174.670510496,msgr_running_total_time=484.22086275,msgr_send_bytes=1322113179,msgr_send_messages=1636839 1587117156000000000 +ceph,collection=finisher-radosclient-0x559896998080,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117156000000000 +ceph,collection=throttle-objecter_ops-0x559896997b80,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=1637900,get_or_fail_fail=0,get_or_fail_success=1637900,get_started=0,get_sum=1637900,max=24576,put=1637900,put_sum=1637900,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000 +ceph,collection=AsyncMessenger::Worker-0,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw msgr_active_connections=18,msgr_created_connections=74757,msgr_recv_bytes=489001094,msgr_recv_messages=1986686,msgr_running_fast_dispatch_time=168.60950961,msgr_running_recv_time=142.903031533,msgr_running_send_time=267.911165712,msgr_running_total_time=824.885614951,msgr_send_bytes=707973504,msgr_send_messages=2463727 1587117156000000000 +ceph,collection=objecter-0x559896997720,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=8,omap_del=0,omap_rd=0,omap_wr=0,op=1637998,op_active=0,op_laggy=0,op_pg=0,op_r=1062803,op_reply=1637998,op_resend=15,op_rmw=0,op_send=1638013,op_send_bytes=63321099,op_w=575195,osd_laggy=0,osd_session_close=125555,osd_session_open=125563,osd_sessions=8,osdop_append=0,osdop_call=1637886,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=112,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117156000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/cgroup.md b/src/writeData/components/telegrafPlugins/cgroup.md index cf67cc32fa..f95d3bde3a 100644 --- a/src/writeData/components/telegrafPlugins/cgroup.md +++ b/src/writeData/components/telegrafPlugins/cgroup.md @@ -1,47 +1,58 @@ -# CGroup Input Plugin +# Control Group Input Plugin -This input plugin will capture specific statistics per cgroup. +This plugin gathers statistics per [control group (cgroup)][cgroup]. -Consider restricting paths to the set of cgroups you really -want to monitor if you have a large number of cgroups, to avoid -any cardinality issues. +> [!NOTE] +> Consider restricting paths to the set of cgroups you are interested in if you +> have a large number of cgroups, to avoid cardinality issues. -Following file formats are supported: - -* Single value +The plugin supports the _single value format_ in the form ```text VAL\n ``` -* New line separated values +the _new line separated values format_ in the form ```text VAL0\n VAL1\n ``` -* Space separated values +the _space separated values format_ in the form ```text VAL0 VAL1 ...\n ``` -* Space separated keys and value, separated by new line +and the _space separated keys and value, separated by new line format_ in the +form ```text KEY0 ... VAL0\n KEY1 ... VAL1\n ``` -## Metrics +⭐ Telegraf v1.0.0 +🏷️ system +💻 linux -All measurements have the `path` tag. +[cgroup]: https://docs.kernel.org/admin-guide/cgroup-v2.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read specific statistics per cgroup +# This plugin ONLY supports Linux [[inputs.cgroup]] ## Directories in which to look for files, globs are supported. ## Consider restricting paths to the set of cgroups you really @@ -57,20 +68,8 @@ All measurements have the `path` tag. # files = ["memory.*usage*", "memory.limit_in_bytes"] ``` -## Example Configurations +## Metrics -```toml -# [[inputs.cgroup]] - # paths = [ - # "/sys/fs/cgroup/cpu", # root cgroup - # "/sys/fs/cgroup/cpu/*", # all container cgroups - # "/sys/fs/cgroup/cpu/*/*", # all children cgroups under each container cgroup - # ] - # files = ["cpuacct.usage", "cpu.cfs_period_us", "cpu.cfs_quota_us"] +All measurements have the `path` tag. -# [[inputs.cgroup]] - # paths = [ - # "/sys/fs/cgroup/unified/*", # root cgroup - # ] - # files = ["*"] -``` +## Example Output diff --git a/src/writeData/components/telegrafPlugins/chrony.md b/src/writeData/components/telegrafPlugins/chrony.md index 9761a94b8b..dced3a5a2a 100644 --- a/src/writeData/components/telegrafPlugins/chrony.md +++ b/src/writeData/components/telegrafPlugins/chrony.md @@ -1,73 +1,67 @@ # chrony Input Plugin -Get standard chrony metrics, requires chronyc executable. - -Below is the documentation of the various headers returned by `chronyc -tracking`. - -- Reference ID - This is the refid and name (or IP address) if available, of the - server to which the computer is currently synchronised. If this is 127.127.1.1 - it means the computer is not synchronised to any external source and that you - have the ‘local’ mode operating (via the local command in chronyc (see section - local), or the local directive in the ‘/etc/chrony.conf’ file (see section - local)). -- Stratum - The stratum indicates how many hops away from a computer with an - attached reference clock we are. Such a computer is a stratum-1 computer, so - the computer in the example is two hops away (i.e. a.b.c is a stratum-2 and is - synchronised from a stratum-1). -- Ref time - This is the time (UTC) at which the last measurement from the - reference source was processed. -- System time - In normal operation, chronyd never steps the system clock, - because any jump in the timescale can have adverse consequences for certain - application programs. Instead, any error in the system clock is corrected by - slightly speeding up or slowing down the system clock until the error has been - removed, and then returning to the system clock’s normal speed. A consequence - of this is that there will be a period when the system clock (as read by other - programs using the gettimeofday() system call, or by the date command in the - shell) will be different from chronyd's estimate of the current true time - (which it reports to NTP clients when it is operating in server mode). The - value reported on this line is the difference due to this effect. -- Last offset - This is the estimated local offset on the last clock update. -- RMS offset - This is a long-term average of the offset value. -- Frequency - The ‘frequency’ is the rate by which the system’s clock would be - wrong if chronyd was not correcting it. It is expressed in ppm (parts per - million). For example, a value of 1ppm would mean that when the system’s - clock thinks it has advanced 1 second, it has actually advanced by 1.000001 - seconds relative to true time. -- Residual freq - This shows the ‘residual frequency’ for the currently selected - reference source. This reflects any difference between what the measurements - from the reference source indicate the frequency should be and the frequency - currently being used. The reason this is not always zero is that a smoothing - procedure is applied to the frequency. Each time a measurement from the - reference source is obtained and a new residual frequency computed, the - estimated accuracy of this residual is compared with the estimated accuracy - (see ‘skew’ next) of the existing frequency value. A weighted average is - computed for the new frequency, with weights depending on these accuracies. If - the measurements from the reference source follow a consistent trend, the - residual will be driven to zero over time. -- Skew - This is the estimated error bound on the frequency. -- Root delay - This is the total of the network path delays to the stratum-1 - computer from which the computer is ultimately synchronised. In certain - extreme situations, this value can be negative. (This can arise in a symmetric - peer arrangement where the computers’ frequencies are not tracking each other - and the network delay is very short relative to the turn-around time at each - computer.) -- Root dispersion - This is the total dispersion accumulated through all the - computers back to the stratum-1 computer from which the computer is ultimately - synchronised. Dispersion is due to system clock resolution, statistical - measurement variations etc. -- Leap status - This is the leap status, which can be Normal, Insert second, - Delete second or Not synchronised. +This plugin queries metrics from a [chrony NTP server][chrony]. For details on +the meaning of the gathered fields please check the [chronyc manual][manual]. + +⭐ Telegraf v0.13.1 +🏷️ system +💻 all + +[chrony]: https://chrony-project.org +[manual]: https://chrony-project.org/doc/4.4/chronyc.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf -# Get standard chrony metrics, requires chronyc executable. +# Get standard chrony metrics. [[inputs.chrony]] - ## If true, chronyc tries to perform a DNS lookup for the time server. + ## Server address of chronyd with address scheme + ## If empty or not set, the plugin will mimic the behavior of chronyc and + ## check "unixgram:///run/chrony/chronyd.sock", "udp://127.0.0.1:323" + ## and "udp://[::1]:323". + # server = "" + + ## Timeout for establishing the connection + # timeout = "5s" + + ## Try to resolve received addresses to host-names via DNS lookups + ## Disabled by default to avoid DNS queries especially for slow DNS servers. # dns_lookup = false + + ## Metrics to query named according to chronyc commands + ## Available settings are: + ## activity -- number of peers online or offline + ## tracking -- information about system's clock performance + ## serverstats -- chronyd server statistics + ## sources -- extended information about peers + ## sourcestats -- statistics on peers + # metrics = ["tracking"] + + ## Socket group & permissions + ## If the user requests collecting metrics via unix socket, then it is created + ## with the following group and permissions. + # socket_group = "chrony" + # socket_perms = "0660" ``` +## Local socket permissions + +To use the unix socket, telegraf must be able to talk to it. Please ensure that +the telegraf user is a member of the `chrony` group or telegraf won't be able to +use the socket! + +The unix socket is needed in order to use the `serverstats` metrics. All other +metrics can be gathered using the udp connection. + ## Metrics - chrony @@ -90,8 +84,6 @@ tracking`. ## Example Output -```shell -$ telegraf --config telegraf.conf --input-filter chrony --test -* Plugin: chrony, Collection 1 -> chrony,leap_status=normal,reference_id=192.168.1.1,stratum=3 frequency=-35.657,system_time=0.000027073,last_offset=-0.000013616,residual_freq=-0,rms_offset=0.000027073,root_delay=0.000644,root_dispersion=0.003444,skew=0.001,update_interval=1031.2 1463750789687639161 +```text +chrony,leap_status=not\ synchronized,reference_id=A29FC87B,stratum=3 frequency=-16.000999450683594,last_offset=0.000012651000361074694,residual_freq=0,rms_offset=0.000025576999178156257,root_delay=0.0016550000291317701,root_dispersion=0.00330700003542006,skew=0.006000000052154064,system_time=0.000020389999917824753,update_interval=507.1999816894531 1706271167571675297 ``` diff --git a/src/writeData/components/telegrafPlugins/cisco_telemetry_mdt.md b/src/writeData/components/telegrafPlugins/cisco_telemetry_mdt.md index 8903118df6..de17b652bf 100644 --- a/src/writeData/components/telegrafPlugins/cisco_telemetry_mdt.md +++ b/src/writeData/components/telegrafPlugins/cisco_telemetry_mdt.md @@ -1,17 +1,41 @@ # Cisco Model-Driven Telemetry (MDT) Input Plugin -Cisco model-driven telemetry (MDT) is an input plugin that consumes telemetry -data from Cisco IOS XR, IOS XE and NX-OS platforms. It supports TCP & GRPC -dialout transports. RPC-based transport can utilize TLS for authentication and -encryption. Telemetry data is expected to be GPB-KV (self-describing-gpb) -encoded. +This plugin consumes [Cisco model-driven telemetry (MDT)][cisco_mdt] data from +Cisco IOS XR, IOS XE and NX-OS platforms via TCP or GRPC. GRPC-based transport +can utilize TLS for authentication and encryption. Telemetry data is expected to +be GPB-KV (self-describing-gpb) encoded. The GRPC dialout transport is supported on various IOS XR (64-bit) 6.1.x and -later, IOS XE 16.10 and later, as well as NX-OS 7.x and later platforms. - -The TCP dialout transport is supported on IOS XR (32-bit and 64-bit) 6.1.x and +later, IOS XE 16.10 and later, as well as NX-OS 7.x and later platforms. The +TCP dialout transport is supported on IOS XR (32-bit and 64-bit) 6.1.x and later. +⭐ Telegraf v1.11.0 +🏷️ applications +💻 all + +[cisco_mdt]: https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-9300-series-switches/model-driven-telemetry-wp.html + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -24,7 +48,8 @@ later. ## Address and port to host telemetry listener service_address = ":57000" - ## Grpc Maximum Message Size, default is 4MB, increase the size. + ## Grpc Maximum Message Size, default is 4MB, increase the size. This is + ## stored as a uint32, and limited to 4294967295. max_msg_size = 4000000 ## Enable TLS; grpc transport only. @@ -38,6 +63,12 @@ later. ## Define (for certain nested telemetry measurements with embedded tags) which fields are tags # embedded_tags = ["Cisco-IOS-XR-qos-ma-oper:qos/interface-table/interface/input/service-policy-names/service-policy-instance/statistics/class-stats/class-name"] + ## Include the delete field in every telemetry message. + # include_delete_field = false + + ## Specify custom name for incoming MDT source field. + # source_field_name = "mdt_source" + ## Define aliases to map telemetry encoding paths to simple measurement names [inputs.cisco_telemetry_mdt.aliases] ifstats = "ietf-interfaces:interfaces-state/interface/statistics" @@ -64,7 +95,7 @@ later. ## removed, and adding subsequent subscriptions does not keep a stable session. # permit_keepalive_without_calls = false - ## GRPC minimum timeout between successive pings, decreasing this value may + ## GRPC minimum timeout between successive pings, decreasing this value may ## help if this plugin is closing connections with ENHANCE_YOUR_CALM (too_many_pings). # keepalive_minimum_time = "5m" ``` @@ -85,7 +116,7 @@ Additional tags (such as interface_name) may be included depending on the path. ## Example Output -```shell +```text ifstats,path=ietf-interfaces:interfaces-state/interface/statistics,host=linux,name=GigabitEthernet2,source=csr1kv,subscription=101 in-unicast-pkts=27i,in-multicast-pkts=0i,discontinuity-time="2019-05-23T07:40:23.000362+00:00",in-octets=5233i,in-errors=0i,out-multicast-pkts=0i,out-discards=0i,in-broadcast-pkts=0i,in-discards=0i,in-unknown-protos=0i,out-unicast-pkts=0i,out-broadcast-pkts=0i,out-octets=0i,out-errors=0i 1559150462624000000 ifstats,path=ietf-interfaces:interfaces-state/interface/statistics,host=linux,name=GigabitEthernet1,source=csr1kv,subscription=101 in-octets=3394770806i,in-broadcast-pkts=0i,in-multicast-pkts=0i,out-broadcast-pkts=0i,in-unknown-protos=0i,out-octets=350212i,in-unicast-pkts=9477273i,in-discards=0i,out-unicast-pkts=2726i,out-discards=0i,discontinuity-time="2019-05-23T07:40:23.000363+00:00",in-errors=30i,out-multicast-pkts=0i,out-errors=0i 1559150462624000000 ``` @@ -131,4 +162,5 @@ multicast pim NXAPI show ip pim route vrf all multicast pim NXAPI show ip pim rp vrf all multicast pim NXAPI show ip pim statistics vrf all multicast pim NXAPI show ip pim vrf all +microburst NATIVE path microburst ``` diff --git a/src/writeData/components/telegrafPlugins/clickhouse.md b/src/writeData/components/telegrafPlugins/clickhouse.md index dc7ddbc328..d5f74013cd 100644 --- a/src/writeData/components/telegrafPlugins/clickhouse.md +++ b/src/writeData/components/telegrafPlugins/clickhouse.md @@ -1,7 +1,23 @@ # ClickHouse Input Plugin -This plugin gathers the statistic data from -[ClickHouse](https://github.com/ClickHouse/ClickHouse) server. +This plugin gathers statistics data from a [ClickHouse server][clickhouse]. +Users on Clickhouse Cloud will not see the Zookeeper metrics as they may not +have permissions to query those tables. + +⭐ Telegraf v1.14.0 +🏷️ server +💻 all + +[clickhouse]: https://github.com/ClickHouse/ClickHouse + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -24,6 +40,12 @@ This plugin gathers the statistic data from ## https://clickhouse.tech/docs/en/interfaces/http/ servers = ["http://127.0.0.1:8123"] + ## Server Variant + ## When set to "managed", some queries are excluded from being run. This is + ## useful for instances hosted in ClickHouse Cloud where certain tables are + ## not available. + # variant = "self-hosted" + ## If "auto_discovery"" is "true" plugin tries to connect to all servers ## available in the cluster with using same "user:password" described in ## "user" and "password" parameters and get this server hostname list from @@ -49,7 +71,7 @@ This plugin gathers the statistic data from ## clickhouse-eu-1.local9000 ## clickhouse-eu-2.local9000 ## - ## + ## ## ## ## diff --git a/src/writeData/components/telegrafPlugins/cloud_pubsub.md b/src/writeData/components/telegrafPlugins/cloud_pubsub.md index 22226c1434..b521aa89a1 100644 --- a/src/writeData/components/telegrafPlugins/cloud_pubsub.md +++ b/src/writeData/components/telegrafPlugins/cloud_pubsub.md @@ -1,7 +1,34 @@ # Google Cloud PubSub Input Plugin -The GCP PubSub plugin ingests metrics from [Google Cloud PubSub][pubsub] -and creates metrics using one of the supported [input data formats][]. +This plugin consumes messages from the [Google Cloud PubSub][pubsub] service +and creates metrics using one of the supported [data formats][data_formats]. + +⭐ Telegraf v1.10.0 +🏷️ cloud, messaging +💻 all + +[pubsub]: https://cloud.google.com/pubsub +[data_formats]: /docs/DATA_FORMATS_INPUT.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -37,20 +64,21 @@ and creates metrics using one of the supported [input data formats][]. ## treated as no limit. # max_message_len = 1000000 - ## Optional. Maximum messages to read from PubSub that have not been written - ## to an output. Defaults to %d. - ## For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message contains 10 metrics and the output - ## metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## The following are optional Subscription ReceiveSettings in PubSub. ## Read more about these values: - ## https://godoc.org/cloud.google.com/go/pubsub#ReceiveSettings + ## https://godoc.org/cloud.google.com/go/pubsub/v2#ReceiveSettings ## Optional. Maximum number of seconds for which a PubSub subscription ## should auto-extend the PubSub ACK deadline for each message. If less than @@ -80,6 +108,16 @@ and creates metrics using one of the supported [input data formats][]. ## PubSub message data before parsing. Many GCP services that ## output JSON to Google PubSub base64-encode the JSON payload. # base64_data = false + + ## Content encoding for message payloads, can be set to "gzip" or + ## "identity" to apply no encoding. + # content_encoding = "identity" + + ## If content encoding is not "identity", sets the maximum allowed size, + ## in bytes, for a message payload when it's decompressed. Can be increased + ## for larger payloads or reduced to protect against decompression bombs. + ## Acceptable units are B, KiB, KB, MiB, MB... + # max_decompression_size = "500MB" ``` ### Multiple Subscriptions and Topics @@ -92,6 +130,8 @@ Each plugin agent can listen to one subscription at a time, so you will need to run multiple instances of the plugin to pull messages from multiple subscriptions/topics. -[pubsub]: https://cloud.google.com/pubsub [pubsub create sub]: https://cloud.google.com/pubsub/docs/admin#create_a_pull_subscription -[input data formats]: /docs/DATA_FORMATS_INPUT.md + +## Metrics + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/cloud_pubsub_push.md b/src/writeData/components/telegrafPlugins/cloud_pubsub_push.md index 19a9a8edcf..23347b3d3e 100644 --- a/src/writeData/components/telegrafPlugins/cloud_pubsub_push.md +++ b/src/writeData/components/telegrafPlugins/cloud_pubsub_push.md @@ -1,19 +1,44 @@ # Google Cloud PubSub Push Input Plugin -The Google Cloud PubSub Push listener is a service input plugin that listens -for messages sent via an HTTP POST from [Google Cloud PubSub][pubsub]. -The plugin expects messages in Google's Pub/Sub JSON Format ONLY. The intent -of the plugin is to allow Telegraf to serve as an endpoint of the -Google Pub/Sub 'Push' service. Google's PubSub service will **only** send -over HTTPS/TLS so this plugin must be behind a valid proxy or must be -configured to use TLS. +This plugin listens for messages sent via an HTTP POST from +[Google Cloud PubSub][pubsub] and expects messages in Google's Pub/Sub +_JSON format_. The plugin allows Telegraf to serve as an endpoint of push +service. -Enable TLS by specifying the file names of a service TLS certificate and key. +Google's PubSub service will __only__ send over HTTPS/TLS so this plugin must be +behind a valid proxy or must be configured to use TLS by setting the `tls_cert` +and `tls_key` accordingly. Enable mutually authenticated TLS and authorize client connections by signing certificate authority by including a list of allowed CA certificate file names in `tls_allowed_cacerts`. +⭐ Telegraf v1.10.0 +🏷️ cloud, messaging +💻 all + +[pubsub]: https://cloud.google.com/pubsub + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -43,15 +68,16 @@ in `tls_allowed_cacerts`. ## subscription as a tag. # add_meta = false - ## Optional. Maximum messages to read from PubSub that have not been written - ## to an output. Defaults to 1000. - ## For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message contains 10 metrics and the output - ## metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Set one or more allowed client CA certificate file names to @@ -72,4 +98,6 @@ in `tls_allowed_cacerts`. This plugin assumes you have already created a PUSH subscription for a given PubSub topic. -[pubsub]: https://cloud.google.com/pubsub +## Metrics + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/cloudwatch.md b/src/writeData/components/telegrafPlugins/cloudwatch.md index fc37f8b145..7873a068b9 100644 --- a/src/writeData/components/telegrafPlugins/cloudwatch.md +++ b/src/writeData/components/telegrafPlugins/cloudwatch.md @@ -1,6 +1,12 @@ # Amazon CloudWatch Statistics Input Plugin -This plugin will pull Metric Statistics from Amazon CloudWatch. +This plugin will gather metric statistics from [Amazon CloudWatch][cloudwatch]. + +⭐ Telegraf v0.12.1 +🏷️ cloud +💻 all + +[cloudwatch]: https://aws.amazon.com/cloudwatch ## Amazon Authentication @@ -15,6 +21,15 @@ API endpoint. In the following order the plugin will attempt to authenticate. 5. [Shared Credentials][credentials] 6. [EC2 Instance Profile][iam-roles] +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -42,6 +57,11 @@ API endpoint. In the following order the plugin will attempt to authenticate. # profile = "" # shared_credential_file = "" + ## If you are using CloudWatch cross-account observability, you can + ## set IncludeLinkedAccounts to true in a monitoring account + ## and collect metrics from the linked source accounts + # include_linked_accounts = false + ## Endpoint to make request against, the correct endpoint is automatically ## determined and this option should only be set if you wish to override the ## default. @@ -80,15 +100,20 @@ API endpoint. In the following order the plugin will attempt to authenticate. ## Do not enable if "period" or "delay" is longer than 3 hours, as it will ## not return data more than 3 hours old. ## See https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html - #recently_active = "PT3H" + # recently_active = "PT3H" ## Configure the TTL for the internal cache of metrics. # cache_ttl = "1h" - ## Metric Statistic Namespaces (required) - namespaces = ["AWS/ELB"] - ## Single metric statistic namespace appended to namespaces on startup - # namespace = "AWS/ELB" + ## Metric Statistic Namespaces, wildcards are allowed + # namespaces = ["*"] + + ## Metric Format + ## This determines the format of the produces metrics. 'sparse', the default + ## will produce a unique field for each statistic. 'dense' will report all + ## statistics will be in a field called value and have a metric_name tag + ## defining the name of the statistic. See the plugin README for examples. + # metric_format = "sparse" ## Maximum requests per second. Note that the global default AWS rate limit ## is 50 reqs/sec, so if you define multiple namespaces, these should add up @@ -130,21 +155,24 @@ API endpoint. In the following order the plugin will attempt to authenticate. # value = "p-example" ``` +Please note, the `namespace` option is deprecated in favor of the `namespaces` +list option. + ## Requirements and Terminology -Plugin Configuration utilizes [CloudWatch concepts][concept] and access pattern to -allow monitoring of any CloudWatch Metric. +Plugin Configuration utilizes [CloudWatch concepts][concept] and access +pattern to allow monitoring of any CloudWatch Metric. - `region` must be a valid AWS [region][] value - `period` must be a valid CloudWatch [period][] value -- `namespace` must be a valid CloudWatch [namespace][] value +- `namespaces` must be a list of valid CloudWatch [namespace][] value(s) - `names` must be valid CloudWatch [metric][] names - `dimensions` must be valid CloudWatch [dimension][] name/value pairs Omitting or specifying a value of `'*'` for a dimension value configures all available metrics that contain a dimension with the specified name to be retrieved. If specifying >1 dimension, then the metric must contain *all* the -configured dimensions where the the value of the wildcard dimension is ignored. +configured dimensions where the value of the wildcard dimension is ignored. Example: @@ -197,15 +225,53 @@ but will output five metrics timestamped one minute apart. ## Metrics Each CloudWatch Namespace monitored records a measurement with fields for each -available Metric Statistic. Namespace and Metrics are represented in [snake +available Metric Statistic. Namespace and Metrics are represented in [snake case](https://en.wikipedia.org/wiki/Snake_case) +### Sparse Metrics + +By default, metrics generated by this plugin are sparse. Use the `metric_format` +option to override this setting. + +Sparse metrics produce a set of fields for every AWS Metric. + - cloudwatch_{namespace} - - {metric}_sum (metric Sum value) - - {metric}_average (metric Average value) - - {metric}_minimum (metric Minimum value) - - {metric}_maximum (metric Maximum value) - - {metric}_sample_count (metric SampleCount value) + - Fields + - {metric}_sum (metric Sum value) + - {metric}_average (metric Average value) + - {metric}_minimum (metric Minimum value) + - {metric}_maximum (metric Maximum value) + - {metric}_sample_count (metric SampleCount value) + +For example: + +```text +cloudwatch_aws_usage,class=None,resource=GetSecretValue,service=Secrets\ Manager,type=API call_count_maximum=1,call_count_minimum=1,call_count_sum=8,call_count_sample_count=8,call_count_average=1 1715097720000000000 +``` + +### Dense Metrics + +Dense metrics are generated when `metric_format` is set to `dense`. + +Dense metrics use the same fields over and over for every AWS Metric and +differentiate between AWS Metrics using a tag called `metric_name` with the AWS +Metric name: + +- cloudwatch_{namespace} + - Tags + - metric_name (AWS Metric name) + - Fields + - sum (metric Sum value) + - average (metric Average value) + - minimum (metric Minimum value) + - maximum (metric Maximum value) + - sample_count (metric SampleCount value) + +For example: + +```text +cloudwatch_aws_usage,class=None,resource=GetSecretValue,service=Secrets\ Manager,metric_name=call_count,type=API sum=6,sample_count=6,average=1,maximum=1,minimum=1 1715097840000000000 +``` ### Tags @@ -216,6 +282,8 @@ case](https://en.wikipedia.org/wiki/Snake_case) - All measurements have the following tags: - region (CloudWatch Region) - {dimension-name} (Cloudwatch Dimension value - one per metric dimension) +- If `include_linked_accounts` is set to true then below tag is also provided: + - account (The ID of the account where the metrics are located.) ## Troubleshooting @@ -257,9 +325,10 @@ aws cloudwatch get-metric-data \ ## Example Output -```shell -$ ./telegraf --config telegraf.conf --input-filter cloudwatch --test -> cloudwatch_aws_elb,load_balancer_name=p-example,region=us-east-1 latency_average=0.004810798017284538,latency_maximum=0.1100282669067383,latency_minimum=0.0006084442138671875,latency_sample_count=4029,latency_sum=19.382705211639404 1459542420000000000 +See the discussion above about sparse vs dense metrics for more details. + +```text +cloudwatch_aws_elb,load_balancer_name=p-example,region=us-east-1 latency_average=0.004810798017284538,latency_maximum=0.1100282669067383,latency_minimum=0.0006084442138671875,latency_sample_count=4029,latency_sum=19.382705211639404 1459542420000000000 ``` [concept]: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html diff --git a/src/writeData/components/telegrafPlugins/cloudwatch_metric_streams.md b/src/writeData/components/telegrafPlugins/cloudwatch_metric_streams.md index d74bfd9ed1..7bb02fa0e7 100644 --- a/src/writeData/components/telegrafPlugins/cloudwatch_metric_streams.md +++ b/src/writeData/components/telegrafPlugins/cloudwatch_metric_streams.md @@ -1,11 +1,40 @@ -# CloudWatch Metric Streams Input Plugin +# Amazon CloudWatch Metric Streams Input Plugin -The CloudWatch Metric Streams plugin is a service input plugin that listens -for metrics sent via HTTP and performs the required processing for -[Metric Streams from AWS](#troubleshooting-documentation). +This plugin listens for metrics sent via HTTP by +[Cloudwatch metric streams][metric_streams] implementing the required +[response specifications][response_specs]. -For cost, see the Metric Streams example in -[CloudWatch pricing](#troubleshooting-documentation). +> [!IMPORTANT] +> Using this plugin can incure costs, see the _Metric Streams example_ in +> [CloudWatch pricing][pricing]. + +⭐ Telegraf v1.24.0 +🏷️ cloud +💻 all + +[pricing]: https://aws.amazon.com/cloudwatch/pricing +[metric_streams]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html +[response_specs]: https://docs.aws.amazon.com/firehose/latest/dev/httpdeliveryrequestresponse.html + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -44,6 +73,32 @@ For cost, see the Metric Streams example in # tls_key = "/etc/telegraf/key.pem" ``` +## Troubleshooting + +The plugin has its own internal metrics for troubleshooting: + +* Requests Received + * The number of requests received by the listener. +* Writes Served + * The number of writes served by the listener. +* Bad Requests + * The number of bad requests, separated by the error code as a tag. +* Request Time + * The duration of the request measured in ns. +* Age Max + * The maximum age of a metric in this interval. This is useful for offsetting + any lag or latency measurements in a metrics pipeline that measures based + on the timestamp. +* Age Min + * The minimum age of a metric in this interval. + +Specific errors will be logged and an error will be returned to AWS. + +For additional help check the [Firehose Troubleshooting][firehose_troubleshoot] +page. + +[firehose_troubleshoot]: https://docs.aws.amazon.com/firehose/latest/dev/http_troubleshooting.html + ## Metrics Metrics sent by AWS are Base64 encoded blocks of JSON data. @@ -112,34 +167,3 @@ aws_ec2_cpuutilization,accountId=541737779709,region=us-west-2,InstanceId=i-0efc ```text aws_ec2_cpuutilization,accountId=541737779709,region=us-west-2,InstanceId=i-0efc7ghy09c123428 maximum=10.011666666666667,minimum=10.011666666666667,sum=10.011666666666667,samplecount=1 1651679580000 ``` - -## Troubleshooting - -The plugin has its own internal metrics for troubleshooting: - -* Requests Received - * The number of requests received by the listener. -* Writes Served - * The number of writes served by the listener. -* Bad Requests - * The number of bad requests, separated by the error code as a tag. -* Request Time - * The duration of the request measured in ns. -* Age Max - * The maximum age of a metric in this interval. This is useful for offsetting - any lag or latency measurements in a metrics pipeline that measures based - on the timestamp. -* Age Min - * The minimum age of a metric in this interval. - -Specific errors will be logged and an error will be returned to AWS. - -### Troubleshooting Documentation - -Additional troubleshooting for a Metric Stream can be found -in AWS's documentation: - -* [CloudWatch Metric Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html) -* [AWS HTTP Specifications](https://docs.aws.amazon.com/firehose/latest/dev/httpdeliveryrequestresponse.html) -* [Firehose Troubleshooting](https://docs.aws.amazon.com/firehose/latest/dev/http_troubleshooting.html) -* [CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/) diff --git a/src/writeData/components/telegrafPlugins/conntrack.md b/src/writeData/components/telegrafPlugins/conntrack.md index ea69ca56db..d314c46b07 100644 --- a/src/writeData/components/telegrafPlugins/conntrack.md +++ b/src/writeData/components/telegrafPlugins/conntrack.md @@ -1,55 +1,109 @@ -# Conntrack Input Plugin +# Netfilter Conntrack Input Plugin -Collects stats from Netfilter's conntrack-tools. +This plugin collects metrics from [Netfilter's conntrack tools][conntrack]. +There are two collection mechanisms for this plugin: -The conntrack-tools provide a mechanism for tracking various aspects of -network connections as they are processed by netfilter. At runtime, -conntrack exposes many of those connection statistics within /proc/sys/net. -Depending on your kernel version, these files can be found in either -/proc/sys/net/ipv4/netfilter or /proc/sys/net/netfilter and will be -prefixed with either ip or nf. This plugin reads the files specified -in its configuration and publishes each one as a field, with the prefix -normalized to ip_. +1. Extracting information from `/proc/net/stat/nf_conntrack` files if the + `collect` option is set accordingly for finding CPU specific values. +2. Using specific files and directories by specifying the `dirs` option. At + runtime, conntrack exposes many of those connection statistics within + `/proc/sys/net`. Depending on your kernel version, these files can be found + in either `/proc/sys/net/ipv4/netfilter` or `/proc/sys/net/netfilter` and + will be prefixed with either `ip` or `nf`. In order to simplify configuration in a heterogeneous environment, a superset -of directory and filenames can be specified. Any locations that don't exist -will be ignored. +of directory and filenames can be specified. Any locations that doesn't exist +is ignored. -For more information on conntrack-tools, see the -[Netfilter Documentation](http://conntrack-tools.netfilter.org/). +⭐ Telegraf v1.0.0 +🏷️ system +💻 linux + +[conntrack]: https://conntrack-tools.netfilter.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Collects conntrack stats from the configured directories and files. +# This plugin ONLY supports Linux [[inputs.conntrack]] ## The following defaults would work with multiple versions of conntrack. ## Note the nf_ and ip_ filename prefixes are mutually exclusive across ## kernel versions, as are the directory locations. - ## Superset of filenames to look for within the conntrack dirs. - ## Missing files will be ignored. - files = ["ip_conntrack_count","ip_conntrack_max", - "nf_conntrack_count","nf_conntrack_max"] + ## Look through /proc/net/stat/nf_conntrack for these metrics + ## all - aggregated statistics + ## percpu - include detailed statistics with cpu tag + collect = ["all", "percpu"] + ## User-specified directories and files to look through ## Directories to search within for the conntrack files above. ## Missing directories will be ignored. dirs = ["/proc/sys/net/ipv4/netfilter","/proc/sys/net/netfilter"] + + ## Superset of filenames to look for within the conntrack dirs. + ## Missing files will be ignored. + files = ["ip_conntrack_count","ip_conntrack_max", + "nf_conntrack_count","nf_conntrack_max"] ``` ## Metrics +A detailed explanation of each fields can be found in +[kernel documentation][kerneldoc] + +[kerneldoc]: https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt + - conntrack - - ip_conntrack_count (int, count): the number of entries in the conntrack table - - ip_conntrack_max (int, size): the max capacity of the conntrack table + - `ip_conntrack_count` `(int, count)`: The number of entries in the conntrack table + - `ip_conntrack_max` `(int, size)`: The max capacity of the conntrack table + - `ip_conntrack_buckets` `(int, size)`: The size of hash table. + +With `collect = ["all"]`: + +- `entries`: The number of entries in the conntrack table +- `searched`: The number of conntrack table lookups performed +- `found`: The number of searched entries which were successful +- `new`: The number of entries added which were not expected before +- `invalid`: The number of packets seen which can not be tracked +- `ignore`: The number of packets seen which are already connected to an entry +- `delete`: The number of entries which were removed +- `delete_list`: The number of entries which were put to dying list +- `insert`: The number of entries inserted into the list +- `insert_failed`: The number of insertion attempted but failed (duplicate entry) +- `drop`: The number of packets dropped due to conntrack failure +- `early_drop`: The number of dropped entries to make room for new ones, if + `maxsize` is reached +- `icmp_error`: Subset of invalid. Packets that can't be tracked due to error +- `expect_new`: Entries added after an expectation was already present +- `expect_create`: Expectations added +- `expect_delete`: Expectations deleted +- `search_restart`: Conntrack table lookups restarted due to hashtable resizes ### Tags -This input does not use tags. +With `collect = ["percpu"]` will include detailed statistics per CPU thread. + +Without `"percpu"` the `cpu` tag will have `all` value. ## Example Output -```shell -$ ./telegraf --config telegraf.conf --input-filter conntrack --test +```text conntrack,host=myhost ip_conntrack_count=2,ip_conntrack_max=262144 1461620427667995735 ``` + +with stats: + +```text +conntrack,cpu=all,host=localhost delete=0i,delete_list=0i,drop=2i,early_drop=0i,entries=5568i,expect_create=0i,expect_delete=0i,expect_new=0i,found=7i,icmp_error=1962i,ignore=2586413402i,insert=0i,insert_failed=2i,invalid=46853i,new=0i,search_restart=453336i,searched=0i 1615233542000000000 +conntrack,host=localhost ip_conntrack_count=464,ip_conntrack_max=262144 1615233542000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/consul.md b/src/writeData/components/telegrafPlugins/consul.md index 1ef770964f..c96fdae548 100644 --- a/src/writeData/components/telegrafPlugins/consul.md +++ b/src/writeData/components/telegrafPlugins/consul.md @@ -1,13 +1,26 @@ -# Consul Input Plugin +# Hashicorp Consul Input Plugin -This plugin will collect statistics about all health checks registered in the -Consul. It uses [Consul API][1] to query the data. It will not report the -[telemetry][2] but Consul can report those stats already using StatsD protocol -if needed. +This plugin will collect statistics about all health checks registered in +[Consul][consul] using the [Consul API][api]. The plugin will not report any +[telemetry metrics][telemetry] but Consul can report those statistics using +the StatsD protocol if needed. -[1]: https://www.consul.io/docs/agent/http/health.html#health_state +⭐ Telegraf v1.0.0 +🏷️ server +💻 all -[2]: https://www.consul.io/docs/agent/telemetry.html +[api]: https://www.consul.io/docs/agent/http/health.html#health_state +[telemetry]: https://www.consul.io/docs/agent/telemetry.html +[consul]: https://www.consul.io + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -47,7 +60,7 @@ if needed. ## Consul checks' tag splitting # When tags are formatted like "key:value" with ":" as a delimiter then - # they will be splitted and reported as proper key:value in Telegraf + # they will be split and reported as proper key:value in Telegraf # tag_delimiter = ":" ``` @@ -84,13 +97,13 @@ if needed. - warning (integer) `passing`, `critical`, and `warning` are integer representations of the health -check state. A value of `1` represents that the status was the state of the the +check state. A value of `1` represents that the status was the state of the health check at this sample. `status` is string representation of the same state. ## Example Output -```shell +```text consul_health_checks,host=wolfpit,node=consul-server-node,check_id="serfHealth" check_name="Serf Health Status",service_id="",status="passing",passing=1i,critical=0i,warning=0i 1464698464486439902 consul_health_checks,host=wolfpit,node=consul-server-node,service_name=www.example.com,check_id="service:www-example-com.test01" check_name="Service 'www.example.com' check",service_id="www-example-com.test01",status="critical",passing=0i,critical=1i,warning=0i 1464698464486519036 ``` diff --git a/src/writeData/components/telegrafPlugins/consul_agent.md b/src/writeData/components/telegrafPlugins/consul_agent.md index fb3c4ec99b..c17073350e 100644 --- a/src/writeData/components/telegrafPlugins/consul_agent.md +++ b/src/writeData/components/telegrafPlugins/consul_agent.md @@ -1,10 +1,22 @@ -# Hashicorp Consul Agent Metrics Input Plugin +# Hashicorp Consul Agent Input Plugin -This plugin grabs metrics from a Consul agent. Telegraf may be present in every -node and connect to the agent locally. In this case should be something like -`http://127.0.0.1:8500`. +This plugin collects metrics from a [Consul agent][agent]. Telegraf may be +present in every node and connect to the agent locally. Tested on Consul v1.10. -> Tested on Consul 1.10.4 . +⭐ Telegraf v1.22.0 +🏷️ server +💻 all + +[agent]: https://developer.hashicorp.com/consul/commands/agent + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -32,7 +44,7 @@ node and connect to the agent locally. In this case should be something like ## Metrics -Consul collects various metrics. For every details, please have a look at Consul -following documentation: +Consul collects various metrics. For every details, please have a look at +[Consul's documentation](https://www.consul.io/api/agent#view-metrics). -- [https://www.consul.io/api/agent#view-metrics](https://www.consul.io/api/agent#view-metrics) +## Example Output diff --git a/src/writeData/components/telegrafPlugins/couchbase.md b/src/writeData/components/telegrafPlugins/couchbase.md index e839de7310..da321b2cdd 100644 --- a/src/writeData/components/telegrafPlugins/couchbase.md +++ b/src/writeData/components/telegrafPlugins/couchbase.md @@ -1,8 +1,23 @@ # Couchbase Input Plugin -Couchbase is a distributed NoSQL database. This plugin gets metrics for each -Couchbase node, as well as detailed metrics for each bucket, for a given -couchbase server. +This plugin collects metrics from [Couchbase][couchbase], a distributed NoSQL +database. Metrics are collected for each node, as well as detailed metrics for +each bucket, for a given couchbase server. + +⭐ Telegraf v0.12.0 +🏷️ server +💻 all + +[couchbase]: https://www.couchbase.com/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -34,10 +49,14 @@ couchbase server. ## Whether to collect cluster-wide bucket statistics ## It is recommended to disable this in favor of node_stats ## to get a better view of the cluster. - cluster_bucket_stats = true + # cluster_bucket_stats = true ## Whether to collect bucket stats for each individual node - node_bucket_stats = false + # node_bucket_stats = false + + ## List of additional stats to collect, choose from: + ## * autofailover + # additional_stats = [] ``` ## Metrics @@ -56,6 +75,21 @@ Fields: - memory_free (unit: bytes, example: 23181365248.0) - memory_total (unit: bytes, example: 64424656896.0) +### couchbase_autofailover + +Tags: + +- cluster: sanitized string from `servers` configuration field + e.g.: `http://user:password@couchbase-0.example.com:8091/endpoint` becomes + `http://couchbase-0.example.com:8091/endpoint` + +Fields: + +- count (unit: int, example: 1) +- enabled (unit: bool, example: true) +- max_count (unit: int, example: 2) +- timeout (unit: int, example: 72) + ### couchbase_bucket and couchbase_node_bucket Tags: @@ -297,7 +331,7 @@ option: ## Example Output -```shell +```text couchbase_node,cluster=http://localhost:8091/,hostname=172.17.0.2:8091 memory_free=7705575424,memory_total=16558182400 1547829754000000000 couchbase_bucket,bucket=beer-sample,cluster=http://localhost:8091/ quota_percent_used=27.09285736083984,ops_per_sec=0,disk_fetches=0,item_count=7303,disk_used=21662946,data_used=9325087,mem_used=28408920 1547829754000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/couchdb.md b/src/writeData/components/telegrafPlugins/couchdb.md index e2396524eb..0e853876a4 100644 --- a/src/writeData/components/telegrafPlugins/couchdb.md +++ b/src/writeData/components/telegrafPlugins/couchdb.md @@ -1,6 +1,23 @@ -# CouchDB Input Plugin +# Apache CouchDB Input Plugin -The CouchDB plugin gathers metrics of CouchDB using [_stats] endpoint. +This plugin gathers metrics from [Apache CouchDB][couchdb] instances using the +[stats][stats] endpoint. + +⭐ Telegraf v0.10.3 +🏷️ server +💻 all + +[couchdb]: https://couchdb.apache.org/ +[stats]: http://docs.couchdb.org/en/1.6.1/api/server/common.html?highlight=stats#get--_stats + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -69,14 +86,12 @@ httpd statistics: ### Post Couchdb 2.0 -```shell +```text couchdb,server=http://couchdb22:5984/_node/_local/_stats couchdb_auth_cache_hits_value=0,httpd_request_methods_delete_value=0,couchdb_auth_cache_misses_value=0,httpd_request_methods_get_value=42,httpd_status_codes_304_value=0,httpd_status_codes_400_value=0,httpd_request_methods_head_value=0,httpd_status_codes_201_value=0,couchdb_database_reads_value=0,httpd_request_methods_copy_value=0,couchdb_request_time_max=0,httpd_status_codes_200_value=42,httpd_status_codes_301_value=0,couchdb_open_os_files_value=2,httpd_request_methods_put_value=0,httpd_request_methods_post_value=0,httpd_status_codes_202_value=0,httpd_status_codes_403_value=0,httpd_status_codes_409_value=0,couchdb_database_writes_value=0,couchdb_request_time_min=0,httpd_status_codes_412_value=0,httpd_status_codes_500_value=0,httpd_status_codes_401_value=0,httpd_status_codes_404_value=0,httpd_status_codes_405_value=0,couchdb_open_databases_value=0 1536707179000000000 ``` ### Pre Couchdb 2.0 -```shell +```text couchdb,server=http://couchdb16:5984/_stats couchdb_request_time_sum=96,httpd_status_codes_200_sum=37,httpd_status_codes_200_min=0,httpd_requests_mean=0.005,httpd_requests_min=0,couchdb_request_time_stddev=3.833,couchdb_request_time_min=1,httpd_request_methods_get_stddev=0.073,httpd_request_methods_get_min=0,httpd_status_codes_200_mean=0.005,httpd_status_codes_200_max=1,httpd_requests_sum=37,couchdb_request_time_current=96,httpd_request_methods_get_sum=37,httpd_request_methods_get_mean=0.005,httpd_request_methods_get_max=1,httpd_status_codes_200_stddev=0.073,couchdb_request_time_mean=2.595,couchdb_request_time_max=25,httpd_request_methods_get_current=37,httpd_status_codes_200_current=37,httpd_requests_current=37,httpd_requests_stddev=0.073,httpd_requests_max=1 1536707179000000000 ``` - -[_stats]: http://docs.couchdb.org/en/1.6.1/api/server/common.html?highlight=stats#get--_stats diff --git a/src/writeData/components/telegrafPlugins/cpu.md b/src/writeData/components/telegrafPlugins/cpu.md index a5c1e64a2e..f44fa1f1f8 100644 --- a/src/writeData/components/telegrafPlugins/cpu.md +++ b/src/writeData/components/telegrafPlugins/cpu.md @@ -1,6 +1,19 @@ # CPU Input Plugin -The `cpu` plugin gather metrics on the system CPUs. +This plugin gathers metrics about the system's CPUs. + +⭐ Telegraf v0.1.5 +🏷️ system +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -14,6 +27,7 @@ The `cpu` plugin gather metrics on the system CPUs. ## If true, collect raw CPU time metrics collect_cpu_time = false ## If true, compute and report the sum of all non-idle CPU states + ## NOTE: The resulting 'time_active' field INCLUDES 'iowait'! report_active = false ## If true and the info is available then add core_id and physical_id tags core_tags = false @@ -58,7 +72,7 @@ Tags core_id and physical_id are read from `/proc/cpuinfo` on Linux systems ## Example Output -```shell +```text cpu,cpu=cpu0,host=loaner time_active=202224.15999999992,time_guest=30250.35,time_guest_nice=0,time_idle=1527035.04,time_iowait=1352,time_irq=0,time_nice=169.28,time_softirq=6281.4,time_steal=0,time_system=40097.14,time_user=154324.34 1568760922000000000 cpu,cpu=cpu0,host=loaner usage_active=31.249999981810106,usage_guest=2.083333333080696,usage_guest_nice=0,usage_idle=68.7500000181899,usage_iowait=0,usage_irq=0,usage_nice=0,usage_softirq=0,usage_steal=0,usage_system=4.166666666161392,usage_user=25.000000002273737 1568760922000000000 cpu,cpu=cpu1,host=loaner time_active=201890.02000000002,time_guest=30508.41,time_guest_nice=0,time_idle=264641.18,time_iowait=210.44,time_irq=0,time_nice=181.75,time_softirq=4537.88,time_steal=0,time_system=39480.7,time_user=157479.25 1568760922000000000 diff --git a/src/writeData/components/telegrafPlugins/csgo.md b/src/writeData/components/telegrafPlugins/csgo.md index 776ccf2500..d974a203da 100644 --- a/src/writeData/components/telegrafPlugins/csgo.md +++ b/src/writeData/components/telegrafPlugins/csgo.md @@ -1,6 +1,22 @@ # Counter-Strike: Global Offensive (CSGO) Input Plugin -The `csgo` plugin gather metrics from Counter-Strike: Global Offensive servers. +This plugin gather metrics from [Counter-Strike: Global Offensive][csgo] +servers. + +⭐ Telegraf v1.18.0 +🏷️ server +💻 all + +[csgo]: https://www.counter-strike.net/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -38,3 +54,5 @@ If no servers are specified, no data will be collected - sv_ms (float) - variance_ms (float) - tick_ms (float) + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/dcos.md b/src/writeData/components/telegrafPlugins/dcos.md index ff82f89c00..1d81149187 100644 --- a/src/writeData/components/telegrafPlugins/dcos.md +++ b/src/writeData/components/telegrafPlugins/dcos.md @@ -1,23 +1,28 @@ -# DC/OS Input Plugin +# Mesosphere Distributed Cloud OS Input Plugin -This input plugin gathers metrics from a DC/OS cluster's [metrics -component](https://docs.mesosphere.com/1.10/metrics/). +This input plugin gathers metrics from a [Distributed Cloud OS][dcos] cluster's +[metrics component][metrics]. -## Series Cardinality Warning +> [!WARNING] +> Depending on the workload of your DC/OS cluster, this plugin can quickly +> create a high number of series which, when unchecked, can cause high load on +> your database! -Depending on the work load of your DC/OS cluster, this plugin can quickly -create a high number of series which, when unchecked, can cause high load on -your database. +⭐ Telegraf v1.5.0 +🏷️ containers +💻 all -- Use the - [measurement filtering](https://docs.influxdata.com/telegraf/latest/configuration/#metric-filtering) - options to exclude unneeded tags. -- Write to a database with an appropriate - [retention policy](https://docs.influxdata.com/influxdb/latest/reference/internals/data-retention/). -- Consider using the - [Time Series Index](https://docs.influxdata.com/influxdb/latest/reference/internals/storage-engine/#time-series-index-tsi). -- Monitor your databases - [series cardinality](https://docs.influxdata.com/influxdb/latest/reference/syntax/influxql/spec/#show-cardinality). +[dcos]: https://dcos.io/ +[metrics]: https://docs.mesosphere.com/1.10/metrics/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -117,6 +122,17 @@ the cluster. For more information on this technique reference [2]: https://medium.com/@richardgirges/authenticating-open-source-dc-os-with-third-party-services-125fa33a5add +### Series Cardinality Mitigation + +- Use [measurement filtering](/docs/CONFIGURATION.md#metric-filtering)to exclude +unnecessary tags. +- Write to a database with an appropriate + [retention policy](https://docs.influxdata.com/influxdb/latest/guides/downsampling_and_retention/). +- Consider using the + [Time Series Index](https://docs.influxdata.com/influxdb/latest/concepts/time-series-index/). +- Monitor your databases' + [series cardinality](https://docs.influxdata.com/influxdb/latest/query_language/spec/#show-cardinality). + ## Metrics Please consult the [Metrics Reference][3] for details about field @@ -199,7 +215,7 @@ interpretation. ## Example Output -```shell +```text dcos_node,cluster=enterprise,hostname=192.168.122.18,path=/boot filesystem_capacity_free_bytes=918188032i,filesystem_capacity_total_bytes=1063256064i,filesystem_capacity_used_bytes=145068032i,filesystem_inode_free=523958,filesystem_inode_total=524288,filesystem_inode_used=330 1511859222000000000 dcos_node,cluster=enterprise,hostname=192.168.122.18,interface=dummy0 network_in_bytes=0i,network_in_dropped=0,network_in_errors=0,network_in_packets=0,network_out_bytes=0i,network_out_dropped=0,network_out_errors=0,network_out_packets=0 1511859222000000000 dcos_node,cluster=enterprise,hostname=192.168.122.18,interface=docker0 network_in_bytes=0i,network_in_dropped=0,network_in_errors=0,network_in_packets=0,network_out_bytes=0i,network_out_dropped=0,network_out_errors=0,network_out_packets=0 1511859222000000000 diff --git a/src/writeData/components/telegrafPlugins/directory_monitor.md b/src/writeData/components/telegrafPlugins/directory_monitor.md index 87f54edff3..768efadb51 100644 --- a/src/writeData/components/telegrafPlugins/directory_monitor.md +++ b/src/writeData/components/telegrafPlugins/directory_monitor.md @@ -1,17 +1,28 @@ # Directory Monitor Input Plugin -This plugin monitors a single directory (traversing sub-directories), -and takes in each file placed in the directory. The plugin will gather all -files in the directory at the configured interval, and parse the ones that -haven't been picked up yet. +This plugin monitors a single directory (traversing sub-directories), and +processes each file placed in the directory. The plugin will gather all files in +the directory at the configured interval, and parse the ones that haven't been +picked up yet. -This plugin is intended to read files that are moved or copied to the monitored -directory, and thus files should also not be used by another process or else -they may fail to be gathered. Please be advised that this plugin pulls files -directly after they've been in the directory for the length of the configurable -`directory_duration_threshold`, and thus files should not be written 'live' to -the monitored directory. If you absolutely must write files directly, they must -be guaranteed to finish writing before the `directory_duration_threshold`. +> [!NOTE] +> Files should not be used by another process or the plugin may fail. +> Furthermore, files should not be written _live_ to the monitored directory. +> If you absolutely must write files directly, they must be guaranteed to finish +> writing before `directory_duration_threshold`. + +⭐ Telegraf v1.18.0 +🏷️ system +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -21,7 +32,7 @@ be guaranteed to finish writing before the `directory_duration_threshold`. ## The directory to monitor and read files from (including sub-directories if "recursive" is true). directory = "" # - ## The directory to move finished files to (maintaining directory hierachy from source). + ## The directory to move finished files to (maintaining directory hierarchy from source). finished_directory = "" # ## Setting recursive to true will make the plugin recursively walk the directory and process all sub-directories. @@ -37,7 +48,7 @@ be guaranteed to finish writing before the `directory_duration_threshold`. # directory_duration_threshold = "50ms" # ## A list of the only file names to monitor, if necessary. Supports regex. If left blank, all files are ingested. - # files_to_monitor = ["^.*\.csv"] + # files_to_monitor = ["^.*\\.csv"] # ## A list of files to ignore, if necessary. Supports regex. # files_to_ignore = [".DS_Store"] @@ -73,7 +84,23 @@ be guaranteed to finish writing before the `directory_duration_threshold`. The format of metrics produced by this plugin depends on the content and data format of the file. +When the [internal][] input is enabled: + +- internal_directory_monitor + - fields: + - files_processed - How many files have been processed (counter) + - files_dropped - How many files have been dropped (counter) +- internal_directory_monitor + - tags: + - directory - The monitored directory + - fields: + - files_processed_per_dir - How many files have been processed (counter) + - files_dropped_per_dir - How many files have been dropped (counter) + - files_queue_per_dir - How many files to be processed (gauge) + ## Example Output The metrics produced by this plugin depends on the content and data format of the file. + +[internal]: /plugins/inputs/internal diff --git a/src/writeData/components/telegrafPlugins/disk.md b/src/writeData/components/telegrafPlugins/disk.md index 375c20e3b8..37f260eae6 100644 --- a/src/writeData/components/telegrafPlugins/disk.md +++ b/src/writeData/components/telegrafPlugins/disk.md @@ -1,10 +1,26 @@ # Disk Input Plugin -The disk input plugin gathers metrics about disk usage. +This plugin gathers metrics about disk usage. -Note that `used_percent` is calculated by doing `used / (used + free)`, _not_ -`used / total`, which is how the unix `df` command does it. See -[wikipedia - df](https://en.wikipedia.org/wiki/Df_(Unix)) for more details. +> [!NOTE] +> The `used_percent` field is calculated by `used / (used + free)` and _not_ +> `used / total` as the unix `df` command does it. See [wikipedia - df][wiki_df] +> for more details. + +⭐ Telegraf v0.1.1 +🏷️ system +💻 all + +[wiki_df]: https://en.wikipedia.org/wiki/Df_(Unix) + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -45,6 +61,7 @@ docker run -v /:/hostfs:ro -e HOST_MOUNT_PREFIX=/hostfs -e HOST_PROC=/hostfs/pro - device (device file) - path (mount point path) - mode (whether the mount is rw or ro) + - label (devicemapper labels, only if present) - fields: - free (integer, bytes) - total (integer, bytes) @@ -53,6 +70,7 @@ docker run -v /:/hostfs:ro -e HOST_MOUNT_PREFIX=/hostfs -e HOST_PROC=/hostfs/pro - inodes_free (integer, files) - inodes_total (integer, files) - inodes_used (integer, files) + - inodes_used_percent (float, percent) ## Troubleshooting @@ -74,11 +92,12 @@ sudo setfacl -R -m u:telegraf:X /var/lib/docker/volumes/ ## Example Output -```shell -disk,fstype=hfs,mode=ro,path=/ free=398407520256i,inodes_free=97267461i,inodes_total=121847806i,inodes_used=24580345i,total=499088621568i,used=100418957312i,used_percent=20.131039916242397 1453832006274071563 -disk,fstype=devfs,mode=rw,path=/dev free=0i,inodes_free=0i,inodes_total=628i,inodes_used=628i,total=185856i,used=185856i,used_percent=100 1453832006274137913 -disk,fstype=autofs,mode=rw,path=/net free=0i,inodes_free=0i,inodes_total=0i,inodes_used=0i,total=0i,used=0i,used_percent=0 1453832006274157077 -disk,fstype=autofs,mode=rw,path=/home free=0i,inodes_free=0i,inodes_total=0i,inodes_used=0i,total=0i,used=0i,used_percent=0 1453832006274169688 +```text +disk,fstype=hfs,mode=ro,path=/ free=398407520256i,inodes_free=97267461i,inodes_total=121847806i,inodes_used=24580345i,total=499088621568i,used=100418957312i,used_percent=20.131039916242397,inodes_used_percent=20.1729894 1453832006274071563 +disk,fstype=devfs,mode=rw,path=/dev free=0i,inodes_free=0i,inodes_total=628i,inodes_used=628i,total=185856i,used=185856i,used_percent=100,inodes_used_percent=100 1453832006274137913 +disk,fstype=autofs,mode=rw,path=/net free=0i,inodes_free=0i,inodes_total=0i,inodes_used=0i,total=0i,used=0i,used_percent=0,inodes_used_percent=0 1453832006274157077 +disk,fstype=autofs,mode=rw,path=/home free=0i,inodes_free=0i,inodes_total=0i,inodes_used=0i,total=0i,used=0i,used_percent=0,inodes_used_percent=0 1453832006274169688 +disk,device=dm-1,fstype=xfs,label=lvg-lv,mode=rw,path=/mnt inodes_free=8388605i,inodes_used=3i,total=17112760320i,free=16959598592i,used=153161728i,used_percent=0.8950147441789215,inodes_total=8388608i,inodes_used_percent=0.0017530778 1677001387000000000 ``` [statfs]: http://man7.org/linux/man-pages/man2/statfs.2.html diff --git a/src/writeData/components/telegrafPlugins/diskio.md b/src/writeData/components/telegrafPlugins/diskio.md index 8f87935a7a..43280b867d 100644 --- a/src/writeData/components/telegrafPlugins/diskio.md +++ b/src/writeData/components/telegrafPlugins/diskio.md @@ -1,28 +1,39 @@ # DiskIO Input Plugin -The diskio input plugin gathers metrics about disk traffic and timing. +This plugin gathers metrics about disk traffic and timing. + +⭐ Telegraf v0.10.0 +🏷️ system +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read metrics about disk IO by device [[inputs.diskio]] - ## By default, telegraf will gather stats for all devices including - ## disk partitions. - ## Setting devices will restrict the stats to the specified devices. - # devices = ["sda", "sdb", "vd*"] - ## Uncomment the following line if you need disk serial numbers. - # skip_serial_number = false - # - ## On systems which support it, device metadata can be added in the form of - ## tags. - ## Currently only Linux is supported via udev properties. You can view - ## available properties for a device by running: - ## 'udevadm info -q property -n /dev/sda' + ## Devices to collect stats for + ## Wildcards are supported except for disk synonyms like '/dev/disk/by-id'. + ## ex. devices = ["sda", "sdb", "vd*", "/dev/disk/by-id/nvme-eui.00123deadc0de123"] + # devices = ["*"] + + ## Skip gathering of the disk's serial numbers. + # skip_serial_number = true + + ## Device metadata tags to add on systems supporting it (Linux only) + ## Use 'udevadm info -q property -n ' to get a list of properties. ## Note: Most, but not all, udev properties can be accessed this way. Properties ## that are currently inaccessible include DEVTYPE, DEVNAME, and DEVPATH. # device_tags = ["ID_FS_TYPE", "ID_FS_USAGE"] - # + ## Using the same metadata source as device_tags, you can also customize the ## name of the device via templates. ## The 'name_templates' parameter is a list of templates to try and apply to @@ -66,6 +77,9 @@ docker run --privileged -v /:/hostfs:ro -v /run/udev:/run/udev:ro -e HOST_PROC=/ - iops_in_progress (integer, gauge) - merged_reads (integer, counter) - merged_writes (integer, counter) + - io_util (float64, gauge, percent) + - io_await (float64, gauge, milliseconds) + - io_svctm (float64, gauge, milliseconds) On linux these values correspond to the values in [`/proc/diskstats`][1] and [`/sys/block//stat`][2]. @@ -116,6 +130,18 @@ efficiency. Thus two 4K reads may become one 8K read before it is ultimately handed to the disk, and so it will be counted (and queued) as only one I/O. These fields lets you know how often this was done. +### `io_await` + +The average time per I/O operation (ms) + +### `io_svctm` + +The service time per I/O operation, excluding wait time (ms) + +### `io_util` + +The percentage of time the disk was active (%) + ## Sample Queries ### Calculate percent IO utilization per disk and host @@ -135,8 +161,14 @@ SELECT non_negative_derivative(last("weighted_io_time"),1ms) from "diskio" WHERE ## Example Output -```shell +```text diskio,name=sda1 merged_reads=0i,reads=2353i,writes=10i,write_bytes=2117632i,write_time=49i,io_time=1271i,weighted_io_time=1350i,read_bytes=31350272i,read_time=1303i,iops_in_progress=0i,merged_writes=0i 1578326400000000000 diskio,name=centos/var_log reads=1063077i,writes=591025i,read_bytes=139325491712i,write_bytes=144233131520i,read_time=650221i,write_time=24368817i,io_time=852490i,weighted_io_time=25037394i,iops_in_progress=1i,merged_reads=0i,merged_writes=0i 1578326400000000000 diskio,name=sda write_time=49i,io_time=1317i,weighted_io_time=1404i,reads=2495i,read_time=1357i,write_bytes=2117632i,iops_in_progress=0i,merged_reads=0i,merged_writes=0i,writes=10i,read_bytes=38956544i 1578326400000000000 ``` + +```text +diskio,name=sda io_await:0.3317307692307692,io_svctm:0.07692307692307693,io_util:0.5329780146568954 1578326400000000000 +diskio,name=sda1 io_await:0.3317307692307692,io_svctm:0.07692307692307693,io_util:0.5329780146568954 1578326400000000000 +diskio,name=sda2 io_await:0.3317307692307692,io_svctm:0.07692307692307693,io_util:0.5329780146568954 1578326400000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/disque.md b/src/writeData/components/telegrafPlugins/disque.md index 8e60b18225..c33e28d272 100644 --- a/src/writeData/components/telegrafPlugins/disque.md +++ b/src/writeData/components/telegrafPlugins/disque.md @@ -1,8 +1,23 @@ # Disque Input Plugin -[Disque](https://github.com/antirez/disque) is an ongoing experiment to build a +This plugin gathers data from a [Disque][disque] instance, an experimental distributed, in-memory, message broker. +⭐ Telegraf v0.10.0 +🏷️ messaging +💻 all + +[disque]: https://github.com/antirez/disque + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -36,3 +51,5 @@ distributed, in-memory, message broker. - used_cpu_user_children - registered_jobs - registered_queues + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/dmcache.md b/src/writeData/components/telegrafPlugins/dmcache.md index 8953b86972..22de922a91 100644 --- a/src/writeData/components/telegrafPlugins/dmcache.md +++ b/src/writeData/components/telegrafPlugins/dmcache.md @@ -1,18 +1,33 @@ -# DMCache Input Plugin +# Device Mapper Cache Input Plugin This plugin provide a native collection for dmsetup based statistics for -dm-cache. +[dm-cache][dmcache]. -This plugin requires sudo, that is why you should setup and be sure that the -telegraf is able to execute sudo without a password. +> [!NOTE] +> This plugin requires super-user permissions! Please make sure, Telegraf is +> able to run `sudo /sbin/dmsetup status --target cache` without requiring a +> password. -`sudo /sbin/dmsetup status --target cache` is the full command that telegraf -will run for debugging purposes. +⭐ Telegraf v1.3.0 +🏷️ system +💻 linux + +[dmcache]: https://docs.kernel.org/admin-guide/device-mapper/cache.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Provide a native collection for dmsetup based statistics for dm-cache +# This plugin ONLY supports Linux [[inputs.dmcache]] ## Whether to report per-device stats or not per_device = true @@ -44,8 +59,6 @@ will run for debugging purposes. ## Example Output -```shell -$ ./telegraf --test --config /etc/telegraf/telegraf.conf --input-filter dmcache -* Plugin: inputs.dmcache, Collection 1 -> dmcache,device=example cache_blocksize=0i,read_hits=995134034411520i,read_misses=916807089127424i,write_hits=195107267543040i,metadata_used=12861440i,write_misses=563725346013184i,promotions=3265223720960i,dirty=0i,metadata_blocksize=0i,cache_used=1099511627776ii,cache_total=0i,length=0i,metadata_total=1073741824i,demotions=3265223720960i 1491482035000000000 +```text +dmcache,device=example cache_blocksize=0i,read_hits=995134034411520i,read_misses=916807089127424i,write_hits=195107267543040i,metadata_used=12861440i,write_misses=563725346013184i,promotions=3265223720960i,dirty=0i,metadata_blocksize=0i,cache_used=1099511627776ii,cache_total=0i,length=0i,metadata_total=1073741824i,demotions=3265223720960i 1491482035000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/dns_query.md b/src/writeData/components/telegrafPlugins/dns_query.md index 25b3f25771..a99ebf9a8e 100644 --- a/src/writeData/components/telegrafPlugins/dns_query.md +++ b/src/writeData/components/telegrafPlugins/dns_query.md @@ -1,7 +1,20 @@ # DNS Query Input Plugin -The DNS plugin gathers dns query times in miliseconds - like -[Dig](https://en.wikipedia.org/wiki/Dig_\(command\)) +This plugin gathers information about DNS queries such as response time and +result codes. + +⭐ Telegraf v1.4.0 +🏷️ system, network +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -24,8 +37,14 @@ The DNS plugin gathers dns query times in miliseconds - like ## Dns server port. # port = 53 - ## Query timeout in seconds. - # timeout = 2 + ## Query timeout + # timeout = "2s" + + ## Include the specified additional properties in the resulting metric. + ## The following values are supported: + ## "first_ip" -- return IP of the first A and AAAA answer + ## "all_ips" -- return IPs of all A and AAAA answers + # include_fields = [] ``` ## Metrics @@ -69,6 +88,6 @@ The DNS plugin gathers dns query times in miliseconds - like ## Example Output -```shell +```text dns_query,domain=google.com,rcode=NOERROR,record_type=A,result=success,server=127.0.0.1 rcode_value=0i,result_code=0i,query_time_ms=0.13746 1550020750001000000 ``` diff --git a/src/writeData/components/telegrafPlugins/docker.md b/src/writeData/components/telegrafPlugins/docker.md index 63a39577ea..50ef32d026 100644 --- a/src/writeData/components/telegrafPlugins/docker.md +++ b/src/writeData/components/telegrafPlugins/docker.md @@ -1,14 +1,26 @@ # Docker Input Plugin -The docker plugin uses the Docker Engine API to gather metrics on running -docker containers. +This plugin uses the [Docker Engine API][api] to gather metrics on running +Docker containers. -The docker plugin uses the [Official Docker Client][1] to gather stats from the -[Engine API][2]. +> [!NOTE] +> Make sure Telegraf has sufficient permissions to access the configured +> endpoint. -[1]: https://github.com/moby/moby/tree/master/client +⭐ Telegraf v0.1.9 +🏷️ containers +💻 all -[2]: https://docs.docker.com/engine/api/v1.24/ +[api]: https://docs.docker.com/engine/api + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -25,11 +37,6 @@ The docker plugin uses the [Official Docker Client][1] to gather stats from the ## configuring in multiple Swarm managers results in duplication of metrics. gather_services = false - ## Only collect metrics for these containers. Values will be appended to - ## container_name_include. - ## Deprecated (1.4.0), use container_name_include - container_names = [] - ## Set the source tag for the metrics to the container ID hostname, eg first 12 chars source_tag = false @@ -44,31 +51,27 @@ The docker plugin uses the [Official Docker Client][1] to gather stats from the # container_state_include = [] # container_state_exclude = [] + ## Objects to include for disk usage query + ## Allowed values are "container", "image", "volume" + ## When empty disk usage is excluded + storage_objects = [] + ## Timeout for docker list, info, and stats commands timeout = "5s" - ## Whether to report for each container per-device blkio (8:0, 8:1...), - ## network (eth0, eth1, ...) and cpu (cpu0, cpu1, ...) stats or not. - ## Usage of this setting is discouraged since it will be deprecated in favor of 'perdevice_include'. - ## Default value is 'true' for backwards compatibility, please set it to 'false' so that 'perdevice_include' setting - ## is honored. - perdevice = true + ## Podman compatibility settings (auto-enabled when Podman detected) + ## Cache TTL for accurate CPU percentage calculation (default: 60s) + ## Set higher than your collection interval for accurate measurements + ## Set to 0 to keep cache entries forever (not recommended for dynamic environments) + # podman_cache_ttl = "60s" ## Specifies for which classes a per-device metric should be issued ## Possible values are 'cpu' (cpu0, cpu1, ...), 'blkio' (8:0, 8:1, ...) and 'network' (eth0, eth1, ...) - ## Please note that this setting has no effect if 'perdevice' is set to 'true' # perdevice_include = ["cpu"] - ## Whether to report for each container total blkio and network stats or not. - ## Usage of this setting is discouraged since it will be deprecated in favor of 'total_include'. - ## Default value is 'false' for backwards compatibility, please set it to 'true' so that 'total_include' setting - ## is honored. - total = false - - ## Specifies for which classes a total metric should be issued. Total is an aggregated of the 'perdevice' values. + ## Specifies for which classes a total metric should be issued. Total is an aggregated of the 'perdevice_include' values. ## Possible values are 'cpu', 'blkio' and 'network' ## Total 'cpu' is reported directly by Docker daemon, and 'network' and 'blkio' totals are aggregated by this plugin. - ## Please note that this setting has no effect if 'total' is set to 'false' # total_include = ["cpu", "blkio", "network"] ## docker labels to include and exclude as tags. Globs accepted. @@ -102,6 +105,17 @@ relevant if the telegraf configuration can be changed by untrusted users. [4]: https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface +### Podman Compatibility + +This plugin is compatible with Podman through its Docker-compatible API. +When connected to Podman: + +- The plugin automatically detects Podman by examining the server version and + endpoint +- Uses an intelligent caching mechanism to calculate accurate CPU percentages +- Configure Podman socket endpoint, for example: + `endpoint = "unix:///run/podman/podman.sock"` + ### Docker Daemon Permissions Typically, telegraf must be given permission to access the docker daemon unix @@ -116,9 +130,12 @@ sudo usermod -aG docker telegraf If telegraf is run within a container, the unix socket will need to be exposed within the telegraf container. This can be done in the docker CLI by add the option `-v /var/run/docker.sock:/var/run/docker.sock` or adding the following -lines to the telegraf container definition in a docker compose file: +lines to the telegraf container definition in a docker compose file. +Additionally docker `telegraf` user must be assigned to `docker` group id +from host: ```yaml +user: telegraf: volumes: - /var/run/docker.sock:/var/run/docker.sock ``` @@ -370,9 +387,26 @@ status if configured. - tasks_desired - tasks_running +- docker_disk_usage + - tags: + - engine_host + - server_version + - container_name + - container_image + - container_version + - image_id + - image_name + - image_version + - volume_name + - fields: + - size_rw + - size_root_fs + - size + - shared_size + ## Example Output -```shell +```text docker,engine_host=debian-stretch-docker,server_version=17.09.0-ce n_containers=6i,n_containers_paused=0i,n_containers_running=1i,n_containers_stopped=5i,n_cpus=2i,n_goroutines=41i,n_images=2i,n_listener_events=0i,n_used_file_descriptors=27i 1524002041000000000 docker,engine_host=debian-stretch-docker,server_version=17.09.0-ce,unit=bytes memory_total=2101661696i 1524002041000000000 docker_container_mem,container_image=telegraf,container_name=zen_ritchie,container_status=running,container_version=unknown,engine_host=debian-stretch-docker,server_version=17.09.0-ce active_anon=8327168i,active_file=2314240i,cache=27402240i,container_id="adc4ba9593871bf2ab95f3ffde70d1b638b897bb225d21c2c9c84226a10a8cf4",hierarchical_memory_limit=9223372036854771712i,inactive_anon=0i,inactive_file=25088000i,limit=2101661696i,mapped_file=20582400i,max_usage=36646912i,pgfault=4193i,pgmajfault=214i,pgpgin=9243i,pgpgout=520i,rss=8327168i,rss_huge=0i,total_active_anon=8327168i,total_active_file=2314240i,total_cache=27402240i,total_inactive_anon=0i,total_inactive_file=25088000i,total_mapped_file=20582400i,total_pgfault=4193i,total_pgmajfault=214i,total_pgpgin=9243i,total_pgpgout=520i,total_rss=8327168i,total_rss_huge=0i,total_unevictable=0i,total_writeback=0i,unevictable=0i,usage=36528128i,usage_percent=0.4342225020025297,writeback=0i 1524002042000000000 @@ -383,4 +417,8 @@ docker_container_net,container_image=telegraf,container_name=zen_ritchie,contain docker_container_blkio,container_image=telegraf,container_name=zen_ritchie,container_status=running,container_version=unknown,device=254:0,engine_host=debian-stretch-docker,server_version=17.09.0-ce container_id="adc4ba9593871bf2ab95f3ffde70d1b638b897bb225d21c2c9c84226a10a8cf4",io_service_bytes_recursive_async=27398144i,io_service_bytes_recursive_read=27398144i,io_service_bytes_recursive_sync=0i,io_service_bytes_recursive_total=27398144i,io_service_bytes_recursive_write=0i,io_serviced_recursive_async=529i,io_serviced_recursive_read=529i,io_serviced_recursive_sync=0i,io_serviced_recursive_total=529i,io_serviced_recursive_write=0i 1524002042000000000 docker_container_health,container_image=telegraf,container_name=zen_ritchie,container_status=running,container_version=unknown,engine_host=debian-stretch-docker,server_version=17.09.0-ce failing_streak=0i,health_status="healthy" 1524007529000000000 docker_swarm,service_id=xaup2o9krw36j2dy1mjx1arjw,service_mode=replicated,service_name=test tasks_desired=3,tasks_running=3 1508968160000000000 +docker_disk_usage,engine_host=docker-desktop,server_version=24.0.5 layers_size=17654519107i 1695742041000000000 +docker_disk_usage,container_image=influxdb,container_name=frosty_wright,container_version=1.8,engine_host=docker-desktop,server_version=24.0.5 size_root_fs=286593526i,size_rw=538i 1695742041000000000 +docker_disk_usage,engine_host=docker-desktop,image_id=7f4a1cc74046,image_name=telegraf,image_version=latest,server_version=24.0.5 shared_size=0i,size=425484494i 1695742041000000000 +docker_disk_usage,engine_host=docker-desktop,server_version=24.0.5,volume_name=docker_influxdb-data size=91989940i 1695742041000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/docker_log.md b/src/writeData/components/telegrafPlugins/docker_log.md index c65bb3e6d8..75c7de673a 100644 --- a/src/writeData/components/telegrafPlugins/docker_log.md +++ b/src/writeData/components/telegrafPlugins/docker_log.md @@ -1,16 +1,27 @@ # Docker Log Input Plugin -The docker log plugin uses the Docker Engine API to get logs on running -docker containers. +This plugin uses the [Docker Engine API][api] to gather logs from running +Docker containers. -The docker plugin uses the [Official Docker Client][] to gather logs from the -[Engine API][]. +> [!NOTE] +> This plugin works only for containers with the `local` or `json-file` or +> `journald` logging driver. Make sure Telegraf has sufficient permissions to +> access the configured endpoint. -**Note:** This plugin works only for containers with the `local` or -`json-file` or `journald` logging driver. +⭐ Telegraf v1.12.0 +🏷️ containers, logging +💻 all -[Official Docker Client]: https://github.com/moby/moby/tree/master/client -[Engine API]: https://docs.docker.com/engine/api/v1.24/ +[api]: https://docs.docker.com/engine/api + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -22,8 +33,9 @@ The docker plugin uses the [Official Docker Client][] to gather logs from the ## To use environment variables (ie, docker-machine), set endpoint = "ENV" # endpoint = "unix:///var/run/docker.sock" - ## When true, container logs are read from the beginning; otherwise - ## reading begins at the end of the log. + ## When true, container logs are read from the beginning; otherwise reading + ## begins at the end of the log. If state-persistence is enabled for Telegraf, + ## the reading continues at the last previously processed timestamp. # from_beginning = false ## Timeout for Docker API calls. @@ -90,7 +102,7 @@ for containers that have no explicit hostname set, as defined by docker. ## Example Output -```shell +```text docker_log,container_image=telegraf,container_name=sharp_bell,container_version=alpine,stream=stderr container_id="371ee5d3e58726112f499be62cddef800138ca72bbba635ed2015fbf475b1023",message="2019-06-19T03:11:11Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:\"371ee5d3e587\", Flush Interval:10s" 1560913872000000000 docker_log,container_image=telegraf,container_name=sharp_bell,container_version=alpine,stream=stderr container_id="371ee5d3e58726112f499be62cddef800138ca72bbba635ed2015fbf475b1023",message="2019-06-19T03:11:11Z I! Tags enabled: host=371ee5d3e587" 1560913872000000000 docker_log,container_image=telegraf,container_name=sharp_bell,container_version=alpine,stream=stderr container_id="371ee5d3e58726112f499be62cddef800138ca72bbba635ed2015fbf475b1023",message="2019-06-19T03:11:11Z I! Loaded outputs: file" 1560913872000000000 diff --git a/src/writeData/components/telegrafPlugins/dovecot.md b/src/writeData/components/telegrafPlugins/dovecot.md index 5bb514b625..d94e771509 100644 --- a/src/writeData/components/telegrafPlugins/dovecot.md +++ b/src/writeData/components/telegrafPlugins/dovecot.md @@ -1,10 +1,32 @@ # Dovecot Input Plugin -The dovecot plugin uses the Dovecot [v2.1 stats protocol][stats old] to gather -metrics on configured domains. +This plugin uses the Dovecot [v2.1 stats protocol][stats] to gather +metrics about configured domains of [Dovecot][dovecot] servers. You can use this +plugin on Dovecot up to and including version v2.3.x. -When using Dovecot v2.3 you are still able to use this protocol by following -the [upgrading steps][upgrading]. +> [!IMPORTANT] +> Dovecot v2.4+ has the old protocol removed and this plugin will not work. +> Please use Dovecot's [Openmetrics exporter][openmetrics] in combination with +> the [http input plugin][http_plugin] and `openmetrics` data format for newer +> versions of Dovecot. + +⭐ Telegraf v0.10.3 +🏷️ server +💻 all + +[dovecot]: https://www.dovecot.org/ +[stats]: https://doc.dovecot.org/configuration_manual/stats/old_statistics/#old-statistics +[http_plugin]: /plugins/inputs/http/README.md +[openmetrics]: https://doc.dovecot.org/latest/core/config/statistics.html#openmetrics + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -65,9 +87,6 @@ the [upgrading steps][upgrading]. ## Example Output -```shell +```text dovecot,server=dovecot-1.domain.test,type=global clock_time=101196971074203.94,disk_input=6493168218112i,disk_output=17978638815232i,invol_cs=1198855447i,last_update="2016-04-08 11:04:13.000379245 +0200 CEST",mail_cache_hits=68192209i,mail_lookup_attr=0i,mail_lookup_path=653861i,mail_read_bytes=86705151847i,mail_read_count=566125i,maj_faults=17208i,min_faults=1286179702i,num_cmds=917469i,num_connected_sessions=8896i,num_logins=174827i,read_bytes=30327690466186i,read_count=1772396430i,reset_timestamp="2016-04-08 10:28:45 +0200 CEST",sys_cpu=157965.692,user_cpu=219337.48,vol_cs=2827615787i,write_bytes=17150837661940i,write_count=992653220i 1460106266642153907 ``` - -[stats old]: http://wiki2.dovecot.org/Statistics/Old -[upgrading]: https://wiki2.dovecot.org/Upgrading/2.3#Statistics_Redesign diff --git a/src/writeData/components/telegrafPlugins/dpdk.md b/src/writeData/components/telegrafPlugins/dpdk.md index 3978fe22e3..7719ef0895 100644 --- a/src/writeData/components/telegrafPlugins/dpdk.md +++ b/src/writeData/components/telegrafPlugins/dpdk.md @@ -1,53 +1,45 @@ # Data Plane Development Kit (DPDK) Input Plugin -The `dpdk` plugin collects metrics exposed by applications built with [Data -Plane Development Kit](https://www.dpdk.org/) which is an extensive set of open +This plugin collects metrics exposed by applications built with the +[Data Plane Development Kit][dpdk] which is an extensive set of open source libraries designed for accelerating packet processing workloads. -DPDK provides APIs that enable exposing various statistics from the devices used -by DPDK applications and enable exposing KPI metrics directly from -applications. Device statistics include e.g. common statistics available across -NICs, like: received and sent packets, received and sent bytes etc. In addition -to this generic statistics, an extended statistics API is available that allows -providing more detailed, driver-specific metrics that are not available as -generic statistics. - -[DPDK Release 20.05](https://doc.dpdk.org/guides/rel_notes/release_20_05.html) -introduced updated telemetry interface that enables DPDK libraries and -applications to provide their telemetry. This is referred to as `v2` version of -this socket-based telemetry interface. This release enabled e.g. reading -driver-specific extended stats (`/ethdev/xstats`) via this new interface. - -[DPDK Release 20.11](https://doc.dpdk.org/guides/rel_notes/release_20_11.html) -introduced reading via `v2` interface common statistics (`/ethdev/stats`) in -addition to existing (`/ethdev/xstats`). - -The example usage of `v2` telemetry interface can be found in [Telemetry User -Guide](https://doc.dpdk.org/guides/howto/telemetry.html). A variety of [DPDK -Sample Applications](https://doc.dpdk.org/guides/sample_app_ug/index.html) is -also available for users to discover and test the capabilities of DPDK libraries -and to explore the exposed metrics. - -> **DPDK Version Info:** This plugin uses this `v2` interface to read telemetry -> data from applications build with `DPDK version >= 20.05`. The default -> configuration include reading common statistics from `/ethdev/stats` that is -> available from `DPDK version >= 20.11`. When using -> `DPDK 20.05 <= version < DPDK 20.11` it is recommended to disable querying -> `/ethdev/stats` by setting corresponding `exclude_commands` configuration -> option. -> **NOTE:** Since DPDK will most likely run with root privileges, the socket -> telemetry interface exposed by DPDK will also require root access. This means -> that either access permissions have to be adjusted for socket telemetry -> interface to allow Telegraf to access it, or Telegraf should run with root -> privileges. -> **NOTE:** The DPDK socket must exist for Telegraf to start successfully. -> Telegraf will attempt to connect to the DPDK socket during the initialization -> phase. +> [!NOTE] +> Since DPDK will most likely run with root privileges, the telemetry socket +> exposed by DPDK will also require root access. Please adjust permissions +> accordingly! + +Refer to the [Telemetry User Guide][user_guide] for details and examples on how +to use DPDK in your application. + +> [!IMPORTANT] +> This plugin uses the `v2` interface to read telemetry > data from applications +> and required DPDK version `v20.05` or higher. Some metrics might require later +> versions. +> The recommended version, especially in conjunction with the `in_memory` +> option is `DPDK 21.11.2` or higher. + +⭐ Telegraf v1.19.0 +🏷️ applications, network +💻 linux + +[dpdk]: https://www.dpdk.org +[user_guide]: https://doc.dpdk.org/guides/howto/telemetry.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Reads metrics from DPDK applications using v2 telemetry interface. +# This plugin ONLY supports Linux [[inputs.dpdk]] ## Path to DPDK telemetry socket. This shall point to v2 version of DPDK ## telemetry interface. @@ -62,20 +54,37 @@ and to explore the exposed metrics. # socket_access_timeout = "200ms" ## Enables telemetry data collection for selected device types. - ## Adding "ethdev" enables collection of telemetry from DPDK NICs - ## (stats, xstats, link_status). - ## Adding "rawdev" enables collection of telemetry from DPDK Raw Devices - ## (xstats). + ## Adding "ethdev" enables collection of telemetry from DPDK NICs (stats, xstats, link_status, info). + ## Adding "rawdev" enables collection of telemetry from DPDK Raw Devices (xstats). # device_types = ["ethdev"] ## List of custom, application-specific telemetry commands to query ## The list of available commands depend on the application deployed. ## Applications can register their own commands via telemetry library API - ## http://doc.dpdk.org/guides/prog_guide/telemetry_lib.html#registering-commands + ## https://doc.dpdk.org/guides/prog_guide/telemetry_lib.html#registering-commands ## For L3 Forwarding with Power Management Sample Application this could be: ## additional_commands = ["/l3fwd-power/stats"] # additional_commands = [] + ## List of plugin options. + ## Supported options: + ## - "in_memory" option enables reading for multiple sockets when a dpdk application is running with --in-memory option. + ## When option is enabled plugin will try to find additional socket paths related to provided socket_path. + ## Details: https://doc.dpdk.org/guides/howto/telemetry.html#connecting-to-different-dpdk-processes + # plugin_options = ["in_memory"] + + ## Specifies plugin behavior regarding unreachable socket (which might not have been initialized yet). + ## Available choices: + ## - error: Telegraf will return an error during the startup and gather phases if socket is unreachable + ## - ignore: Telegraf will ignore error regarding unreachable socket on both startup and gather + # unreachable_socket_behavior = "error" + + ## List of metadata fields which will be added to every metric produced by the plugin. + ## Supported options: + ## - "pid" - exposes PID of DPDK process. Example: pid=2179660i + ## - "version" - exposes version of DPDK. Example: version="DPDK 21.11.2" + # metadata_fields = ["pid", "version"] + ## Allows turning off collecting data for individual "ethdev" commands. ## Remove "/ethdev/link_status" from list to gather link status metrics. [inputs.dpdk.ethdev] @@ -97,6 +106,8 @@ for additional usage information. This configuration allows getting metrics for all devices reported via `/ethdev/list` command: +* `/ethdev/info` - device information: name, MAC address, buffers size, etc + (since `DPDK 21.11`) * `/ethdev/stats` - basic device statistics (since `DPDK 20.11`) * `/ethdev/xstats` - extended device statistics * `/ethdev/link_status` - up/down link status @@ -115,7 +126,7 @@ should be adjusted accordingly (e.g. `interval = "30s"`). ### Example: Excluding NIC link status from being collected Checking link status depending on underlying implementation may take more time -to complete. This configuration can be used to exclude this telemetry command +to complete. This configuration can be used to exclude this telemetry command to allow faster response for metrics. ```toml @@ -145,14 +156,14 @@ configuration, with higher timeout. device_types = ["ethdev"] [inputs.dpdk.ethdev] - exclude_commands = ["/ethdev/stats", "/ethdev/xstats"] + exclude_commands = ["/ethdev/info", "/ethdev/stats", "/ethdev/xstats"] ``` ### Example: Getting application-specific metrics This configuration allows reading custom metrics exposed by -applications. Example telemetry command obtained from [L3 Forwarding with Power -Management Sample Application][sample-app]. +applications. Example telemetry command obtained from +[L3 Forwarding with Power Management Sample Application][sample]. ```toml [[inputs.dpdk]] @@ -173,10 +184,10 @@ format: * Commands have to start with `/`. Providing invalid commands will prevent the plugin from starting. Additional -commands allow duplicates, but they will be removed during execution so each +commands allow duplicates, but they will be removed during execution, so each command will be executed only once during each metric gathering interval. -[sample-app]: https://doc.dpdk.org/guides/sample_app_ug/l3_forward_power_man.html +[sample]: https://doc.dpdk.org/guides/sample_app_ug/l3_forward_power_man.html ### Example: Getting metrics from multiple DPDK instances on same host @@ -222,7 +233,7 @@ JSON Flattener](https://github.com/influxdata/telegraf/tree/master/plugins/parse response contains no information (is empty or is null) then such response will be discarded. -> **NOTE:** Since DPDK allows registering custom metrics in its telemetry +> **NOTE:** Since DPDK allows registering custom metrics in its telemetry > framework the JSON response from DPDK may contain various sets of metrics. > While metrics from `/ethdev/stats` should be most stable, the `/ethdev/xstats` > may contain driver-specific metrics (depending on DPDK application @@ -234,7 +245,7 @@ be discarded. The output consists of plugin name (`dpdk`), and a set of tags that identify querying hierarchy: -```shell +```text dpdk,host=dpdk-host,dpdk_instance=l3fwd-power,command=/ethdev/stats,params=0 [fields] [timestamp] ``` @@ -243,7 +254,7 @@ dpdk,host=dpdk-host,dpdk_instance=l3fwd-power,command=/ethdev/stats,params=0 [fi | `host` | hostname of the machine (consult [Telegraf Agent configuration](https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#agent) for additional details) | | `dpdk_instance` | custom tag from `[inputs.dpdk.tags]` (optional) | | `command` | executed command (without params) | -| `params` | command parameter, e.g. for `/ethdev/stats` it is the id of NIC as exposed by `/ethdev/list`. For DPDK app that uses 2 NICs the metrics will output e.g. `params=0`, `params=1`. | +| `params` | command parameter, e.g. for `/ethdev/stats` it is the ID of NIC as exposed by `/ethdev/list`. For DPDK app that uses 2 NICs the metrics will output e.g. `params=0`, `params=1`. | When running plugin configuration below... @@ -251,6 +262,7 @@ When running plugin configuration below... [[inputs.dpdk]] device_types = ["ethdev"] additional_commands = ["/l3fwd-power/stats"] + metadata_fields = [] [inputs.dpdk.tags] dpdk_instance = "l3fwd-power" ``` @@ -258,12 +270,36 @@ When running plugin configuration below... ...expected output for `dpdk` plugin instance running on host named `host=dpdk-host`: -```shell +```text +dpdk,command=/ethdev/info,dpdk_instance=l3fwd-power,host=dpdk-host,params=0 all_multicast=0,dev_configured=1,dev_flags=74,dev_started=1,ethdev_rss_hf=0,lro=0,mac_addr="E4:3D:1A:DD:13:31",mtu=1500,name="0000:ca:00.1",nb_rx_queues=1,nb_tx_queues=1,numa_node=1,port_id=0,promiscuous=1,rx_mbuf_alloc_fail=0,rx_mbuf_size_min=2176,rx_offloads=0,rxq_state_0=1,scattered_rx=0,state=1,tx_offloads=65536,txq_state_0=1 1659017414000000000 dpdk,command=/ethdev/stats,dpdk_instance=l3fwd-power,host=dpdk-host,params=0 q_opackets_0=0,q_ipackets_5=0,q_errors_11=0,ierrors=0,q_obytes_5=0,q_obytes_10=0,q_opackets_10=0,q_ipackets_4=0,q_ipackets_7=0,q_ipackets_15=0,q_ibytes_5=0,q_ibytes_6=0,q_ibytes_9=0,obytes=0,q_opackets_1=0,q_opackets_11=0,q_obytes_7=0,q_errors_5=0,q_errors_10=0,q_ibytes_4=0,q_obytes_6=0,q_errors_1=0,q_opackets_5=0,q_errors_3=0,q_errors_12=0,q_ipackets_11=0,q_ipackets_12=0,q_obytes_14=0,q_opackets_15=0,q_obytes_2=0,q_errors_8=0,q_opackets_12=0,q_errors_0=0,q_errors_9=0,q_opackets_14=0,q_ibytes_3=0,q_ibytes_15=0,q_ipackets_13=0,q_ipackets_14=0,q_obytes_3=0,q_errors_13=0,q_opackets_3=0,q_ibytes_0=7092,q_ibytes_2=0,q_ibytes_8=0,q_ipackets_8=0,q_ipackets_10=0,q_obytes_4=0,q_ibytes_10=0,q_ibytes_13=0,q_ibytes_1=0,q_ibytes_12=0,opackets=0,q_obytes_1=0,q_errors_15=0,q_opackets_2=0,oerrors=0,rx_nombuf=0,q_opackets_8=0,q_ibytes_11=0,q_ipackets_3=0,q_obytes_0=0,q_obytes_12=0,q_obytes_11=0,q_obytes_13=0,q_errors_6=0,q_ipackets_1=0,q_ipackets_6=0,q_ipackets_9=0,q_obytes_15=0,q_opackets_7=0,q_ibytes_14=0,ipackets=98,q_ipackets_2=0,q_opackets_6=0,q_ibytes_7=0,imissed=0,q_opackets_4=0,q_opackets_9=0,q_obytes_8=0,q_obytes_9=0,q_errors_4=0,q_errors_14=0,q_opackets_13=0,ibytes=7092,q_ipackets_0=98,q_errors_2=0,q_errors_7=0 1606310780000000000 dpdk,command=/ethdev/stats,dpdk_instance=l3fwd-power,host=dpdk-host,params=1 q_opackets_0=0,q_ipackets_5=0,q_errors_11=0,ierrors=0,q_obytes_5=0,q_obytes_10=0,q_opackets_10=0,q_ipackets_4=0,q_ipackets_7=0,q_ipackets_15=0,q_ibytes_5=0,q_ibytes_6=0,q_ibytes_9=0,obytes=0,q_opackets_1=0,q_opackets_11=0,q_obytes_7=0,q_errors_5=0,q_errors_10=0,q_ibytes_4=0,q_obytes_6=0,q_errors_1=0,q_opackets_5=0,q_errors_3=0,q_errors_12=0,q_ipackets_11=0,q_ipackets_12=0,q_obytes_14=0,q_opackets_15=0,q_obytes_2=0,q_errors_8=0,q_opackets_12=0,q_errors_0=0,q_errors_9=0,q_opackets_14=0,q_ibytes_3=0,q_ibytes_15=0,q_ipackets_13=0,q_ipackets_14=0,q_obytes_3=0,q_errors_13=0,q_opackets_3=0,q_ibytes_0=7092,q_ibytes_2=0,q_ibytes_8=0,q_ipackets_8=0,q_ipackets_10=0,q_obytes_4=0,q_ibytes_10=0,q_ibytes_13=0,q_ibytes_1=0,q_ibytes_12=0,opackets=0,q_obytes_1=0,q_errors_15=0,q_opackets_2=0,oerrors=0,rx_nombuf=0,q_opackets_8=0,q_ibytes_11=0,q_ipackets_3=0,q_obytes_0=0,q_obytes_12=0,q_obytes_11=0,q_obytes_13=0,q_errors_6=0,q_ipackets_1=0,q_ipackets_6=0,q_ipackets_9=0,q_obytes_15=0,q_opackets_7=0,q_ibytes_14=0,ipackets=98,q_ipackets_2=0,q_opackets_6=0,q_ibytes_7=0,imissed=0,q_opackets_4=0,q_opackets_9=0,q_obytes_8=0,q_obytes_9=0,q_errors_4=0,q_errors_14=0,q_opackets_13=0,ibytes=7092,q_ipackets_0=98,q_errors_2=0,q_errors_7=0 1606310780000000000 dpdk,command=/ethdev/xstats,dpdk_instance=l3fwd-power,host=dpdk-host,params=0 out_octets_encrypted=0,rx_fcoe_mbuf_allocation_errors=0,tx_q1packets=0,rx_priority0_xoff_packets=0,rx_priority7_xoff_packets=0,rx_errors=0,mac_remote_errors=0,in_pkts_invalid=0,tx_priority3_xoff_packets=0,tx_errors=0,rx_fcoe_bytes=0,rx_flow_control_xon_packets=0,rx_priority4_xoff_packets=0,tx_priority2_xoff_packets=0,rx_illegal_byte_errors=0,rx_xoff_packets=0,rx_management_packets=0,rx_priority7_dropped=0,rx_priority4_dropped=0,in_pkts_unchecked=0,rx_error_bytes=0,rx_size_256_to_511_packets=0,tx_priority4_xoff_packets=0,rx_priority6_xon_packets=0,tx_priority4_xon_to_xoff_packets=0,in_pkts_delayed=0,rx_priority0_mbuf_allocation_errors=0,out_octets_protected=0,tx_priority7_xon_to_xoff_packets=0,tx_priority1_xon_to_xoff_packets=0,rx_fcoe_no_direct_data_placement_ext_buff=0,tx_priority6_xon_to_xoff_packets=0,flow_director_filter_add_errors=0,rx_total_packets=99,rx_crc_errors=0,flow_director_filter_remove_errors=0,rx_missed_errors=0,tx_size_64_packets=0,rx_priority3_dropped=0,flow_director_matched_filters=0,tx_priority2_xon_to_xoff_packets=0,rx_priority1_xon_packets=0,rx_size_65_to_127_packets=99,rx_fragment_errors=0,in_pkts_notusingsa=0,rx_q0bytes=7162,rx_fcoe_dropped=0,rx_priority1_dropped=0,rx_fcoe_packets=0,rx_priority5_xoff_packets=0,out_pkts_protected=0,tx_total_packets=0,rx_priority2_dropped=0,in_pkts_late=0,tx_q1bytes=0,in_pkts_badtag=0,rx_multicast_packets=99,rx_priority6_xoff_packets=0,tx_flow_control_xoff_packets=0,rx_flow_control_xoff_packets=0,rx_priority0_xon_packets=0,in_pkts_untagged=0,tx_fcoe_packets=0,rx_priority7_mbuf_allocation_errors=0,tx_priority0_xon_to_xoff_packets=0,tx_priority5_xon_to_xoff_packets=0,tx_flow_control_xon_packets=0,tx_q0packets=0,tx_xoff_packets=0,rx_size_512_to_1023_packets=0,rx_priority3_xon_packets=0,rx_q0errors=0,rx_oversize_errors=0,tx_priority4_xon_packets=0,tx_priority5_xoff_packets=0,rx_priority5_xon_packets=0,rx_total_missed_packets=0,rx_priority4_mbuf_allocation_errors=0,tx_priority1_xon_packets=0,tx_management_packets=0,rx_priority5_mbuf_allocation_errors=0,rx_fcoe_no_direct_data_placement=0,rx_undersize_errors=0,tx_priority1_xoff_packets=0,rx_q0packets=99,tx_q2packets=0,tx_priority6_xon_packets=0,rx_good_packets=99,tx_priority5_xon_packets=0,tx_size_256_to_511_packets=0,rx_priority6_dropped=0,rx_broadcast_packets=0,tx_size_512_to_1023_packets=0,tx_priority3_xon_to_xoff_packets=0,in_pkts_unknownsci=0,in_octets_validated=0,tx_priority6_xoff_packets=0,tx_priority7_xoff_packets=0,rx_jabber_errors=0,tx_priority7_xon_packets=0,tx_priority0_xon_packets=0,in_pkts_unusedsa=0,tx_priority0_xoff_packets=0,mac_local_errors=33,rx_total_bytes=7162,in_pkts_notvalid=0,rx_length_errors=0,in_octets_decrypted=0,rx_size_128_to_255_packets=0,rx_good_bytes=7162,tx_size_65_to_127_packets=0,rx_mac_short_packet_dropped=0,tx_size_1024_to_max_packets=0,rx_priority2_mbuf_allocation_errors=0,flow_director_added_filters=0,tx_multicast_packets=0,rx_fcoe_crc_errors=0,rx_priority1_xoff_packets=0,flow_director_missed_filters=0,rx_xon_packets=0,tx_size_128_to_255_packets=0,out_pkts_encrypted=0,rx_priority4_xon_packets=0,rx_priority0_dropped=0,rx_size_1024_to_max_packets=0,tx_good_bytes=0,rx_management_dropped=0,rx_mbuf_allocation_errors=0,tx_xon_packets=0,rx_priority3_xoff_packets=0,tx_good_packets=0,tx_fcoe_bytes=0,rx_priority6_mbuf_allocation_errors=0,rx_priority2_xon_packets=0,tx_broadcast_packets=0,tx_q2bytes=0,rx_priority7_xon_packets=0,out_pkts_untagged=0,rx_priority2_xoff_packets=0,rx_priority1_mbuf_allocation_errors=0,tx_q0bytes=0,rx_size_64_packets=0,rx_priority5_dropped=0,tx_priority2_xon_packets=0,in_pkts_nosci=0,flow_director_removed_filters=0,in_pkts_ok=0,rx_l3_l4_xsum_error=0,rx_priority3_mbuf_allocation_errors=0,tx_priority3_xon_packets=0 1606310780000000000 dpdk,command=/ethdev/xstats,dpdk_instance=l3fwd-power,host=dpdk-host,params=1 tx_priority5_xoff_packets=0,in_pkts_unknownsci=0,tx_q0packets=0,tx_total_packets=0,rx_crc_errors=0,rx_priority4_xoff_packets=0,rx_priority5_dropped=0,tx_size_65_to_127_packets=0,rx_good_packets=98,tx_priority6_xoff_packets=0,tx_fcoe_bytes=0,out_octets_protected=0,out_pkts_encrypted=0,rx_priority1_xon_packets=0,tx_size_128_to_255_packets=0,rx_flow_control_xoff_packets=0,rx_priority7_xoff_packets=0,tx_priority0_xon_to_xoff_packets=0,rx_broadcast_packets=0,tx_priority1_xon_packets=0,rx_xon_packets=0,rx_fragment_errors=0,tx_flow_control_xoff_packets=0,tx_q0bytes=0,out_pkts_untagged=0,rx_priority4_xon_packets=0,tx_priority5_xon_packets=0,rx_priority1_xoff_packets=0,rx_good_bytes=7092,rx_priority4_mbuf_allocation_errors=0,in_octets_decrypted=0,tx_priority2_xon_to_xoff_packets=0,rx_priority3_dropped=0,tx_multicast_packets=0,mac_local_errors=33,in_pkts_ok=0,rx_illegal_byte_errors=0,rx_xoff_packets=0,rx_q0errors=0,flow_director_added_filters=0,rx_size_256_to_511_packets=0,rx_priority3_xon_packets=0,rx_l3_l4_xsum_error=0,rx_priority6_dropped=0,in_pkts_notvalid=0,rx_size_64_packets=0,tx_management_packets=0,rx_length_errors=0,tx_priority7_xon_to_xoff_packets=0,rx_mbuf_allocation_errors=0,rx_missed_errors=0,rx_priority1_mbuf_allocation_errors=0,rx_fcoe_no_direct_data_placement=0,tx_priority3_xoff_packets=0,in_pkts_delayed=0,tx_errors=0,rx_size_512_to_1023_packets=0,tx_priority4_xon_packets=0,rx_q0bytes=7092,in_pkts_unchecked=0,tx_size_512_to_1023_packets=0,rx_fcoe_packets=0,in_pkts_nosci=0,rx_priority6_mbuf_allocation_errors=0,rx_priority1_dropped=0,tx_q2packets=0,rx_priority7_dropped=0,tx_size_1024_to_max_packets=0,rx_management_packets=0,rx_multicast_packets=98,rx_total_bytes=7092,mac_remote_errors=0,tx_priority3_xon_packets=0,rx_priority2_mbuf_allocation_errors=0,rx_priority5_mbuf_allocation_errors=0,tx_q2bytes=0,rx_size_128_to_255_packets=0,in_pkts_badtag=0,out_pkts_protected=0,rx_management_dropped=0,rx_fcoe_bytes=0,flow_director_removed_filters=0,tx_priority2_xoff_packets=0,rx_fcoe_crc_errors=0,rx_priority0_mbuf_allocation_errors=0,rx_priority0_xon_packets=0,rx_fcoe_dropped=0,tx_priority1_xon_to_xoff_packets=0,rx_size_65_to_127_packets=98,rx_q0packets=98,tx_priority0_xoff_packets=0,rx_priority6_xon_packets=0,rx_total_packets=98,rx_undersize_errors=0,flow_director_missed_filters=0,rx_jabber_errors=0,in_pkts_invalid=0,in_pkts_late=0,rx_priority5_xon_packets=0,tx_priority4_xoff_packets=0,out_octets_encrypted=0,tx_q1packets=0,rx_priority5_xoff_packets=0,rx_priority6_xoff_packets=0,rx_errors=0,in_octets_validated=0,rx_priority3_xoff_packets=0,tx_priority4_xon_to_xoff_packets=0,tx_priority5_xon_to_xoff_packets=0,tx_flow_control_xon_packets=0,rx_priority0_dropped=0,flow_director_filter_add_errors=0,tx_q1bytes=0,tx_priority6_xon_to_xoff_packets=0,flow_director_matched_filters=0,tx_priority2_xon_packets=0,rx_fcoe_mbuf_allocation_errors=0,rx_priority2_xoff_packets=0,tx_priority7_xoff_packets=0,rx_priority0_xoff_packets=0,rx_oversize_errors=0,in_pkts_notusingsa=0,tx_size_64_packets=0,rx_size_1024_to_max_packets=0,tx_priority6_xon_packets=0,rx_priority2_dropped=0,rx_priority4_dropped=0,rx_priority7_mbuf_allocation_errors=0,rx_flow_control_xon_packets=0,tx_good_bytes=0,tx_priority3_xon_to_xoff_packets=0,rx_total_missed_packets=0,rx_error_bytes=0,tx_priority7_xon_packets=0,rx_mac_short_packet_dropped=0,tx_priority1_xoff_packets=0,tx_good_packets=0,tx_broadcast_packets=0,tx_xon_packets=0,in_pkts_unusedsa=0,rx_priority2_xon_packets=0,in_pkts_untagged=0,tx_fcoe_packets=0,flow_director_filter_remove_errors=0,rx_priority3_mbuf_allocation_errors=0,tx_priority0_xon_packets=0,rx_priority7_xon_packets=0,rx_fcoe_no_direct_data_placement_ext_buff=0,tx_xoff_packets=0,tx_size_256_to_511_packets=0 1606310780000000000 -dpdk,command=/ethdev/link_status,dpdk_instance=l3fwd-power,host=dpdk-host,params=0 status="UP",speed=10000,duplex="full-duplex" 1606310780000000000 -dpdk,command=/ethdev/link_status,dpdk_instance=l3fwd-power,host=dpdk-host,params=1 status="UP",speed=10000,duplex="full-duplex" 1606310780000000000 +dpdk,command=/ethdev/link_status,dpdk_instance=l3fwd-power,host=dpdk-host,params=0 status="UP",link_status=1,speed=10000,duplex="full-duplex" 1606310780000000000 +dpdk,command=/ethdev/link_status,dpdk_instance=l3fwd-power,host=dpdk-host,params=1 status="UP",link_status=1,speed=10000,duplex="full-duplex" 1606310780000000000 dpdk,command=/l3fwd-power/stats,dpdk_instance=l3fwd-power,host=dpdk-host empty_poll=49506395979901,full_poll=0,busy_percent=0 1606310780000000000 ``` + +When running plugin configuration below... + +```toml +[[inputs.dpdk]] + interval = "30s" + socket_access_timeout = "10s" + device_types = ["ethdev"] + metadata_fields = ["version", "pid"] + plugin_options = ["in_memory"] + + [inputs.dpdk.ethdev] + exclude_commands = ["/ethdev/info", "/ethdev/stats", "/ethdev/xstats"] +``` + +Expected output for `dpdk` plugin instance running with `link_status` command +and all metadata fields enabled, additionally `link_status` field will be +exposed to represent string value of `status` field (`DOWN`=0,`UP`=1): + +```text +dpdk,command=/ethdev/link_status,host=dpdk-host,params=0 pid=100988i,version="DPDK 21.11.2",status="DOWN",link_status=0i 1660295749000000000 +dpdk,command=/ethdev/link_status,host=dpdk-host,params=0 pid=2401624i,version="DPDK 21.11.2",status="UP",link_status=1i 1660295749000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/ecs.md b/src/writeData/components/telegrafPlugins/ecs.md index 0e652b147f..85b2eb65b1 100644 --- a/src/writeData/components/telegrafPlugins/ecs.md +++ b/src/writeData/components/telegrafPlugins/ecs.md @@ -1,18 +1,34 @@ -# Amazon ECS Input Plugin +# Amazon Elastic Container Service Input Plugin -Amazon ECS, Fargate compatible, input plugin which uses the Amazon ECS metadata -and stats [v2][task-metadata-endpoint-v2] or [v3][task-metadata-endpoint-v3] API -endpoints to gather stats on running containers in a Task. +This plugin gathers statistics on running containers in a Task from the +[Amazon Elastic Container Service][ecs] using the [Amazon ECS metadata][metadata] +and the [v2][v2_endpoint] or [v3][v3_endpoint] statistics API endpoints. -The telegraf container must be run in the same Task as the workload it is -inspecting. - -This is similar to (and reuses a few pieces of) the [Docker][docker-input] input -plugin, with some ECS specific modifications for AWS metadata and stats formats. +> [!IMPORTANT] +> The telegraf container must be run in the same Task as the workload it is +> inspecting. The amazon-ecs-agent (though it _is_ a container running on the host) is not present in the metadata/stats endpoints. +⭐ Telegraf v1.11.0 +🏷️ cloud +💻 all + +[ecs]: https://aws.amazon.com/ecs/ +[metadata]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint.html +[v2_endpoint]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v2.html +[v3_endpoint]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v3.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -220,9 +236,9 @@ present in the metadata/stats endpoints. - started_at - type -## Example +## Example Output -```shell +```text ecs_task,cluster=test,family=nginx,host=c4b301d4a123,revision=2,task_arn=arn:aws:ecs:aws-region-1:012345678901:task/a1234abc-a0a0-0a01-ab01-0abc012a0a0a desired_status="RUNNING",known_status="RUNNING",limit_cpu=0.5,limit_mem=512 1542641488000000000 ecs_container_mem,cluster=test,com.amazonaws.ecs.cluster=test,com.amazonaws.ecs.container-name=~internal~ecs~pause,com.amazonaws.ecs.task-arn=arn:aws:ecs:aws-region-1:012345678901:task/a1234abc-a0a0-0a01-ab01-0abc012a0a0a,com.amazonaws.ecs.task-definition-family=nginx,com.amazonaws.ecs.task-definition-version=2,family=nginx,host=c4b301d4a123,id=e6af031b91deb3136a2b7c42f262ed2ab554e2fe2736998c7d8edf4afe708dba,name=~internal~ecs~pause,revision=2,task_arn=arn:aws:ecs:aws-region-1:012345678901:task/a1234abc-a0a0-0a01-ab01-0abc012a0a0a active_anon=40960i,active_file=8192i,cache=790528i,pgpgin=1243i,total_pgfault=1298i,total_rss=40960i,limit=1033658368i,max_usage=4825088i,hierarchical_memory_limit=536870912i,rss=40960i,total_active_file=8192i,total_mapped_file=618496i,usage_percent=0.05349543109392212,container_id="e6af031b91deb3136a2b7c42f262ed2ab554e2fe2736998c7d8edf4afe708dba",pgfault=1298i,pgmajfault=6i,pgpgout=1040i,total_active_anon=40960i,total_inactive_file=782336i,total_pgpgin=1243i,usage=552960i,inactive_file=782336i,mapped_file=618496i,total_cache=790528i,total_pgpgout=1040i 1542642001000000000 ecs_container_cpu,cluster=test,com.amazonaws.ecs.cluster=test,com.amazonaws.ecs.container-name=~internal~ecs~pause,com.amazonaws.ecs.task-arn=arn:aws:ecs:aws-region-1:012345678901:task/a1234abc-a0a0-0a01-ab01-0abc012a0a0a,com.amazonaws.ecs.task-definition-family=nginx,com.amazonaws.ecs.task-definition-version=2,cpu=cpu-total,family=nginx,host=c4b301d4a123,id=e6af031b91deb3136a2b7c42f262ed2ab554e2fe2736998c7d8edf4afe708dba,name=~internal~ecs~pause,revision=2,task_arn=arn:aws:ecs:aws-region-1:012345678901:task/a1234abc-a0a0-0a01-ab01-0abc012a0a0a usage_in_kernelmode=0i,throttling_throttled_periods=0i,throttling_periods=0i,throttling_throttled_time=0i,container_id="e6af031b91deb3136a2b7c42f262ed2ab554e2fe2736998c7d8edf4afe708dba",usage_percent=0,usage_total=26426156i,usage_in_usermode=20000000i,usage_system=2336100000000i 1542642001000000000 @@ -237,7 +253,3 @@ ecs_container_blkio,cluster=test,com.amazonaws.ecs.cluster=test,com.amazonaws.ec ecs_container_blkio,cluster=test,com.amazonaws.ecs.cluster=test,com.amazonaws.ecs.container-name=~internal~ecs~pause,com.amazonaws.ecs.task-arn=arn:aws:ecs:aws-region-1:012345678901:task/a1234abc-a0a0-0a01-ab01-0abc012a0a0a,com.amazonaws.ecs.task-definition-family=nginx,com.amazonaws.ecs.task-definition-version=2,device=total,family=nginx,host=c4b301d4a123,id=e6af031b91deb3136a2b7c42f262ed2ab554e2fe2736998c7d8edf4afe708dba,name=~internal~ecs~pause,revision=2,task_arn=arn:aws:ecs:aws-region-1:012345678901:task/a1234abc-a0a0-0a01-ab01-0abc012a0a0a io_serviced_recursive_async=0i,io_serviced_recursive_read=40i,io_serviced_recursive_sync=40i,io_serviced_recursive_write=0i,io_serviced_recursive_total=40i,io_service_bytes_recursive_read=3162112i,io_service_bytes_recursive_write=0i,io_service_bytes_recursive_async=0i,container_id="e6af031b91deb3136a2b7c42f262ed2ab554e2fe2736998c7d8edf4afe708dba",io_service_bytes_recursive_sync=3162112i,io_service_bytes_recursive_total=3162112i 1542642001000000000 ecs_container_meta,cluster=test,com.amazonaws.ecs.cluster=test,com.amazonaws.ecs.container-name=~internal~ecs~pause,com.amazonaws.ecs.task-arn=arn:aws:ecs:aws-region-1:012345678901:task/a1234abc-a0a0-0a01-ab01-0abc012a0a0a,com.amazonaws.ecs.task-definition-family=nginx,com.amazonaws.ecs.task-definition-version=2,family=nginx,host=c4b301d4a123,id=e6af031b91deb3136a2b7c42f262ed2ab554e2fe2736998c7d8edf4afe708dba,name=~internal~ecs~pause,revision=2,task_arn=arn:aws:ecs:aws-region-1:012345678901:task/a1234abc-a0a0-0a01-ab01-0abc012a0a0a limit_mem=0,type="CNI_PAUSE",container_id="e6af031b91deb3136a2b7c42f262ed2ab554e2fe2736998c7d8edf4afe708dba",docker_name="ecs-nginx-2-internalecspause",limit_cpu=0,known_status="RESOURCES_PROVISIONED",image="amazon/amazon-ecs-pause:0.1.0",image_id="",desired_status="RESOURCES_PROVISIONED" 1542642001000000000 ``` - -[docker-input]: /plugins/inputs/docker/README.md -[task-metadata-endpoint-v2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v2.html -[task-metadata-endpoint-v3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v3.html diff --git a/src/writeData/components/telegrafPlugins/elasticsearch.md b/src/writeData/components/telegrafPlugins/elasticsearch.md index acdd2f1e66..f4d55b6304 100644 --- a/src/writeData/components/telegrafPlugins/elasticsearch.md +++ b/src/writeData/components/telegrafPlugins/elasticsearch.md @@ -1,31 +1,35 @@ # Elasticsearch Input Plugin -The [elasticsearch](https://www.elastic.co/) plugin queries endpoints to obtain -[Node Stats][1] and optionally [Cluster-Health][2] metrics. +This plugin queries endpoints of a [Elasticsearch][elastic] instance to obtain +[node statistics][node_stats] and optionally [cluster-health][cluster_health] +metrics. +Additionally, the plugin is able to query [cluster][cluster_stats], +[indices and shard][indices_stats] statistics for the master node. -In addition, the following optional queries are only made by the master node: - [Cluster Stats][3] [Indices Stats][4] [Shard Stats][5] +> [!NOTE] +> Specific statistics information can change between Elasticsearch versions. In +> general, this plugin attempts to stay as version-generic as possible by +> tagging high-level categories only and creating unique field names of +> whatever statistics names are provided at the mid-low level. -Specific Elasticsearch endpoints that are queried: +⭐ Telegraf v0.1.5 +🏷️ server +💻 all -- Node: either /_nodes/stats or /_nodes/_local/stats depending on 'local' - configuration setting -- Cluster Heath: /_cluster/health?level=indices -- Cluster Stats: /_cluster/stats -- Indices Stats: /_all/_stats -- Shard Stats: /_all/_stats?level=shards +[elastic]: https://www.elastic.co/ +[node_stats]: https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html +[cluster_health]: https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html +[cluster_stats]: https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html +[indices_stats]: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-stats.html -Note that specific statistics information can change between Elasticsearch -versions. In general, this plugin attempts to stay as version-generic as -possible by tagging high-level categories only and using a generic json parser -to make unique field names of whatever statistics names are provided at the -mid-low level. +## Global configuration options -[1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html -[2]: https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html -[3]: https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html -[4]: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-stats.html -[5]: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-stats.html +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -37,8 +41,8 @@ mid-low level. ## servers = ["http://user:pass@localhost:9200"] servers = ["http://localhost:9200"] - ## Timeout for HTTP requests to the elastic search server(s) - http_timeout = "5s" + ## HTTP headers to send with each request + # headers = { "X-Custom-Header" = "Custom" } ## When local is true (the default), the node will read only its own stats. ## Set local to false when you want to read the node stats from all nodes @@ -61,6 +65,9 @@ mid-low level. ## To work this require local = true cluster_stats_only_from_master = true + ## Gather stats from the enrich API + # enrich_stats = false + ## Indices to collect; can be one or more indices names or _all ## Use of wildcards is allowed. Use a wildcard at the end to retrieve index ## names that end with a changing value, like a date. @@ -86,6 +93,13 @@ mid-low level. ## Use TLS but skip chain & host verification # insecure_skip_verify = false + ## If 'use_system_proxy' is set to true, Telegraf will check env vars such as + ## HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or their lowercase counterparts). + ## If 'use_system_proxy' is set to false (default) and 'http_proxy_url' is + ## provided, Telegraf will use the specified URL as HTTP proxy. + # use_system_proxy = false + # http_proxy_url = "http://localhost:8888" + ## Sets the number of most recent indices to return for indices that are ## configured with a date-stamped suffix. Each 'indices_include' entry ## ending with a wildcard (*) or glob matching pattern will group together @@ -870,3 +884,5 @@ Emitted when the appropriate `shards_stats` options are set. - warmer_current (float) - warmer_total (float) - warmer_total_time_in_millis (float) + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/elasticsearch_query.md b/src/writeData/components/telegrafPlugins/elasticsearch_query.md index afebb31984..f2370661e6 100644 --- a/src/writeData/components/telegrafPlugins/elasticsearch_query.md +++ b/src/writeData/components/telegrafPlugins/elasticsearch_query.md @@ -1,19 +1,29 @@ # Elasticsearch Query Input Plugin -This [elasticsearch](https://www.elastic.co/) query plugin queries endpoints -to obtain metrics from data stored in an Elasticsearch cluster. +This plugin allows to query an [Elasticsearch][elastic] instance to obtain +metrics from data stored in the cluster. The plugins supports counting the +number of hits for a search query, calculating statistics for numeric fields, +filtered by a query, aggregated per tag and to count the number of terms for a +particular field. -The following is supported: +> [!IMPORTANT] +> This plugins supports Elasticsearch 5.x and 6.x but is known to break on 7.x +> or higher. -- return number of hits for a search query -- calculate the avg/max/min/sum for a numeric field, filtered by a query, - aggregated per tag -- count number of terms for a particular field +⭐ Telegraf v1.20.0 +🏷️ datastore +💻 all -## Elasticsearch Support +[elastic]: https://www.elastic.co/ -This plugins is tested against Elasticsearch 5.x and 6.x releases. -Currently it is known to break on 7.x or greater versions. +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -46,6 +56,13 @@ Currently it is known to break on 7.x or greater versions. # tls_key = "/etc/telegraf/key.pem" ## Use TLS but skip chain & host verification # insecure_skip_verify = false + + ## If 'use_system_proxy' is set to true, Telegraf will check env vars such as + ## HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or their lowercase counterparts). + ## If 'use_system_proxy' is set to false (default) and 'http_proxy_url' is + ## provided, Telegraf will use the specified URL as HTTP proxy. + # use_system_proxy = false + # http_proxy_url = "http://localhost:8888" [[inputs.elasticsearch_query.aggregation]] ## measurement name for the results of the aggregation query @@ -170,7 +187,7 @@ of the examples below. - `filter_query`: Lucene query to filter the results (default: "\*") - `metric_fields`: The list of fields to perform metric aggregation (these must be indexed as numeric fields) -- `metric_funcion`: The single-value metric aggregation function to be performed +- `metric_function`: The single-value metric aggregation function to be performed on the `metric_fields` defined. Currently supported aggregations are "avg", "min", "max", "sum". (see the [aggregation docs][agg] - `tags`: The list of fields to be used as tags (these must be indexed as @@ -184,3 +201,7 @@ of the examples below. [joda]: https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-aggregations-bucket-daterange-aggregation.html#date-format-pattern [agg]: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics.html + +## Metrics + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/ethtool.md b/src/writeData/components/telegrafPlugins/ethtool.md index e92fcf24ef..f01fec0f98 100644 --- a/src/writeData/components/telegrafPlugins/ethtool.md +++ b/src/writeData/components/telegrafPlugins/ethtool.md @@ -1,12 +1,26 @@ # Ethtool Input Plugin -The ethtool input plugin pulls ethernet device stats. Fields pulled will depend -on the network device and driver. +This plugin collects ethernet device statistics. The available information +strongly depends on the network device and driver. + +⭐ Telegraf v1.13.0 +🏷️ system, network +💻 linux + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Returns ethtool statistics for given interfaces +# This plugin ONLY supports Linux [[inputs.ethtool]] ## List of interfaces to pull metrics for # interface_include = ["eth0"] @@ -14,6 +28,29 @@ on the network device and driver. ## List of interfaces to ignore when pulling metrics. # interface_exclude = ["eth1"] + ## Plugin behavior for downed interfaces + ## Available choices: + ## - expose: collect & report metrics for down interfaces + ## - skip: ignore interfaces that are marked down + # down_interfaces = "expose" + + ## Reading statistics from interfaces in additional namespaces is also + ## supported, so long as the namespaces are named (have a symlink in + ## /var/run/netns). The telegraf process will also need the CAP_SYS_ADMIN + ## permission. + ## By default, only the current namespace will be used. For additional + ## namespace support, at least one of `namespace_include` and + ## `namespace_exclude` must be provided. + ## To include all namespaces, set `namespace_include` to `["*"]`. + ## The initial namespace (if anonymous) can be specified with the empty + ## string (""). + + ## List of namespaces to pull metrics for + # namespace_include = [] + + ## List of namespace to ignore when pulling metrics. + # namespace_exclude = [] + ## Some drivers declare statistics with extra whitespace, different spacing, ## and mix cases. This list, when enabled, can be used to clean the keys. ## Here are the current possible normalizations: @@ -31,13 +68,43 @@ Interfaces can be included or ignored using: Note that loopback interfaces will be automatically ignored. +## Namespaces + +Metrics from interfaces in additional namespaces will be retrieved if either +`namespace_include` or `namespace_exclude` is configured (to a non-empty list). +This requires `CAP_SYS_ADMIN` permissions to switch namespaces, which can be +granted to telegraf in several ways. The two recommended ways are listed below: + +### Using systemd capabilities + +If you are using systemd to run Telegraf, you may run +`systemctl edit telegraf.service` and add the following: + +```text +[Service] +AmbientCapabilities=CAP_SYS_ADMIN +``` + +### Configuring executable capabilities + +If you are not using systemd to run Telegraf, you can configure the Telegraf +executable to have `CAP_SYS_ADMIN` when run. + +```sh +sudo setcap CAP_SYS_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). + ## Metrics Metrics are dependent on the network device and driver. ## Example Output -```shell -ethtool,driver=igb,host=test01,interface=mgmt0 tx_queue_1_packets=280782i,rx_queue_5_csum_err=0i,tx_queue_4_restart=0i,tx_multicast=7i,tx_queue_1_bytes=39674885i,rx_queue_2_alloc_failed=0i,tx_queue_5_packets=173970i,tx_single_coll_ok=0i,rx_queue_1_drops=0i,tx_queue_2_restart=0i,tx_aborted_errors=0i,rx_queue_6_csum_err=0i,tx_queue_5_restart=0i,tx_queue_4_bytes=64810835i,tx_abort_late_coll=0i,tx_queue_4_packets=109102i,os2bmc_tx_by_bmc=0i,tx_bytes=427527435i,tx_queue_7_packets=66665i,dropped_smbus=0i,rx_queue_0_csum_err=0i,tx_flow_control_xoff=0i,rx_packets=25926536i,rx_queue_7_csum_err=0i,rx_queue_3_bytes=84326060i,rx_multicast=83771i,rx_queue_4_alloc_failed=0i,rx_queue_3_drops=0i,rx_queue_3_csum_err=0i,rx_errors=0i,tx_errors=0i,tx_queue_6_packets=183236i,rx_broadcast=24378893i,rx_queue_7_packets=88680i,tx_dropped=0i,rx_frame_errors=0i,tx_queue_3_packets=161045i,tx_packets=1257017i,rx_queue_1_csum_err=0i,tx_window_errors=0i,tx_dma_out_of_sync=0i,rx_length_errors=0i,rx_queue_5_drops=0i,tx_timeout_count=0i,rx_queue_4_csum_err=0i,rx_flow_control_xon=0i,tx_heartbeat_errors=0i,tx_flow_control_xon=0i,collisions=0i,tx_queue_0_bytes=29465801i,rx_queue_6_drops=0i,rx_queue_0_alloc_failed=0i,tx_queue_1_restart=0i,rx_queue_0_drops=0i,tx_broadcast=9i,tx_carrier_errors=0i,tx_queue_7_bytes=13777515i,tx_queue_7_restart=0i,rx_queue_5_bytes=50732006i,rx_queue_7_bytes=35744457i,tx_deferred_ok=0i,tx_multi_coll_ok=0i,rx_crc_errors=0i,rx_fifo_errors=0i,rx_queue_6_alloc_failed=0i,tx_queue_2_packets=175206i,tx_queue_0_packets=107011i,rx_queue_4_bytes=201364548i,rx_queue_6_packets=372573i,os2bmc_rx_by_host=0i,multicast=83771i,rx_queue_4_drops=0i,rx_queue_5_packets=130535i,rx_queue_6_bytes=139488035i,tx_fifo_errors=0i,tx_queue_5_bytes=84899130i,rx_queue_0_packets=24529563i,rx_queue_3_alloc_failed=0i,rx_queue_7_drops=0i,tx_queue_6_bytes=96288614i,tx_queue_2_bytes=22132949i,tx_tcp_seg_failed=0i,rx_queue_1_bytes=246703840i,rx_queue_0_bytes=1506870738i,tx_queue_0_restart=0i,rx_queue_2_bytes=111344804i,tx_tcp_seg_good=0i,tx_queue_3_restart=0i,rx_no_buffer_count=0i,rx_smbus=0i,rx_queue_1_packets=273865i,rx_over_errors=0i,os2bmc_tx_by_host=0i,rx_queue_1_alloc_failed=0i,rx_queue_7_alloc_failed=0i,rx_short_length_errors=0i,tx_hwtstamp_timeouts=0i,tx_queue_6_restart=0i,rx_queue_2_packets=207136i,tx_queue_3_bytes=70391970i,rx_queue_3_packets=112007i,rx_queue_4_packets=212177i,tx_smbus=0i,rx_long_byte_count=2480280632i,rx_queue_2_csum_err=0i,rx_missed_errors=0i,rx_bytes=2480280632i,rx_queue_5_alloc_failed=0i,rx_queue_2_drops=0i,os2bmc_rx_by_bmc=0i,rx_align_errors=0i,rx_long_length_errors=0i,interface_up=1i,rx_hwtstamp_cleared=0i,rx_flow_control_xoff=0i 1564658080000000000 -ethtool,driver=igb,host=test02,interface=mgmt0 rx_queue_2_bytes=111344804i,tx_queue_3_bytes=70439858i,multicast=83771i,rx_broadcast=24378975i,tx_queue_0_packets=107011i,rx_queue_6_alloc_failed=0i,rx_queue_6_drops=0i,rx_hwtstamp_cleared=0i,tx_window_errors=0i,tx_tcp_seg_good=0i,rx_queue_1_drops=0i,tx_queue_1_restart=0i,rx_queue_7_csum_err=0i,rx_no_buffer_count=0i,tx_queue_1_bytes=39675245i,tx_queue_5_bytes=84899130i,tx_broadcast=9i,rx_queue_1_csum_err=0i,tx_flow_control_xoff=0i,rx_queue_6_csum_err=0i,tx_timeout_count=0i,os2bmc_tx_by_bmc=0i,rx_queue_6_packets=372577i,rx_queue_0_alloc_failed=0i,tx_flow_control_xon=0i,rx_queue_2_drops=0i,tx_queue_2_packets=175206i,rx_queue_3_csum_err=0i,tx_abort_late_coll=0i,tx_queue_5_restart=0i,tx_dropped=0i,rx_queue_2_alloc_failed=0i,tx_multi_coll_ok=0i,rx_queue_1_packets=273865i,rx_flow_control_xon=0i,tx_single_coll_ok=0i,rx_length_errors=0i,rx_queue_7_bytes=35744457i,rx_queue_4_alloc_failed=0i,rx_queue_6_bytes=139488395i,rx_queue_2_csum_err=0i,rx_long_byte_count=2480288216i,rx_queue_1_alloc_failed=0i,tx_queue_0_restart=0i,rx_queue_0_csum_err=0i,tx_queue_2_bytes=22132949i,rx_queue_5_drops=0i,tx_dma_out_of_sync=0i,rx_queue_3_drops=0i,rx_queue_4_packets=212177i,tx_queue_6_restart=0i,rx_packets=25926650i,rx_queue_7_packets=88680i,rx_frame_errors=0i,rx_queue_3_bytes=84326060i,rx_short_length_errors=0i,tx_queue_7_bytes=13777515i,rx_queue_3_alloc_failed=0i,tx_queue_6_packets=183236i,rx_queue_0_drops=0i,rx_multicast=83771i,rx_queue_2_packets=207136i,rx_queue_5_csum_err=0i,rx_queue_5_packets=130535i,rx_queue_7_alloc_failed=0i,tx_smbus=0i,tx_queue_3_packets=161081i,rx_queue_7_drops=0i,tx_queue_2_restart=0i,tx_multicast=7i,tx_fifo_errors=0i,tx_queue_3_restart=0i,rx_long_length_errors=0i,tx_queue_6_bytes=96288614i,tx_queue_1_packets=280786i,tx_tcp_seg_failed=0i,rx_align_errors=0i,tx_errors=0i,rx_crc_errors=0i,rx_queue_0_packets=24529673i,rx_flow_control_xoff=0i,tx_queue_0_bytes=29465801i,rx_over_errors=0i,rx_queue_4_drops=0i,os2bmc_rx_by_bmc=0i,rx_smbus=0i,dropped_smbus=0i,tx_hwtstamp_timeouts=0i,rx_errors=0i,tx_queue_4_packets=109102i,tx_carrier_errors=0i,tx_queue_4_bytes=64810835i,tx_queue_4_restart=0i,rx_queue_4_csum_err=0i,tx_queue_7_packets=66665i,tx_aborted_errors=0i,rx_missed_errors=0i,tx_bytes=427575843i,collisions=0i,rx_queue_1_bytes=246703840i,rx_queue_5_bytes=50732006i,rx_bytes=2480288216i,os2bmc_rx_by_host=0i,rx_queue_5_alloc_failed=0i,rx_queue_3_packets=112007i,tx_deferred_ok=0i,os2bmc_tx_by_host=0i,tx_heartbeat_errors=0i,rx_queue_0_bytes=1506877506i,tx_queue_7_restart=0i,tx_packets=1257057i,rx_queue_4_bytes=201364548i,interface_up=0i,rx_fifo_errors=0i,tx_queue_5_packets=173970i 1564658090000000000 +```text +ethtool,driver=igb,host=test01,interface=mgmt0 tx_queue_1_packets=280782i,rx_queue_5_csum_err=0i,tx_queue_4_restart=0i,tx_multicast=7i,tx_queue_1_bytes=39674885i,rx_queue_2_alloc_failed=0i,tx_queue_5_packets=173970i,tx_single_coll_ok=0i,rx_queue_1_drops=0i,tx_queue_2_restart=0i,tx_aborted_errors=0i,rx_queue_6_csum_err=0i,tx_queue_5_restart=0i,tx_queue_4_bytes=64810835i,tx_abort_late_coll=0i,tx_queue_4_packets=109102i,os2bmc_tx_by_bmc=0i,tx_bytes=427527435i,tx_queue_7_packets=66665i,dropped_smbus=0i,rx_queue_0_csum_err=0i,tx_flow_control_xoff=0i,rx_packets=25926536i,rx_queue_7_csum_err=0i,rx_queue_3_bytes=84326060i,rx_multicast=83771i,rx_queue_4_alloc_failed=0i,rx_queue_3_drops=0i,rx_queue_3_csum_err=0i,rx_errors=0i,tx_errors=0i,tx_queue_6_packets=183236i,rx_broadcast=24378893i,rx_queue_7_packets=88680i,tx_dropped=0i,rx_frame_errors=0i,tx_queue_3_packets=161045i,tx_packets=1257017i,rx_queue_1_csum_err=0i,tx_window_errors=0i,tx_dma_out_of_sync=0i,rx_length_errors=0i,rx_queue_5_drops=0i,tx_timeout_count=0i,rx_queue_4_csum_err=0i,rx_flow_control_xon=0i,tx_heartbeat_errors=0i,tx_flow_control_xon=0i,collisions=0i,tx_queue_0_bytes=29465801i,rx_queue_6_drops=0i,rx_queue_0_alloc_failed=0i,tx_queue_1_restart=0i,rx_queue_0_drops=0i,tx_broadcast=9i,tx_carrier_errors=0i,tx_queue_7_bytes=13777515i,tx_queue_7_restart=0i,rx_queue_5_bytes=50732006i,rx_queue_7_bytes=35744457i,tx_deferred_ok=0i,tx_multi_coll_ok=0i,rx_crc_errors=0i,rx_fifo_errors=0i,rx_queue_6_alloc_failed=0i,tx_queue_2_packets=175206i,tx_queue_0_packets=107011i,rx_queue_4_bytes=201364548i,rx_queue_6_packets=372573i,os2bmc_rx_by_host=0i,multicast=83771i,rx_queue_4_drops=0i,rx_queue_5_packets=130535i,rx_queue_6_bytes=139488035i,tx_fifo_errors=0i,tx_queue_5_bytes=84899130i,rx_queue_0_packets=24529563i,rx_queue_3_alloc_failed=0i,rx_queue_7_drops=0i,tx_queue_6_bytes=96288614i,tx_queue_2_bytes=22132949i,tx_tcp_seg_failed=0i,rx_queue_1_bytes=246703840i,rx_queue_0_bytes=1506870738i,tx_queue_0_restart=0i,rx_queue_2_bytes=111344804i,tx_tcp_seg_good=0i,tx_queue_3_restart=0i,rx_no_buffer_count=0i,rx_smbus=0i,rx_queue_1_packets=273865i,rx_over_errors=0i,os2bmc_tx_by_host=0i,rx_queue_1_alloc_failed=0i,rx_queue_7_alloc_failed=0i,rx_short_length_errors=0i,tx_hwtstamp_timeouts=0i,tx_queue_6_restart=0i,rx_queue_2_packets=207136i,tx_queue_3_bytes=70391970i,rx_queue_3_packets=112007i,rx_queue_4_packets=212177i,tx_smbus=0i,rx_long_byte_count=2480280632i,rx_queue_2_csum_err=0i,rx_missed_errors=0i,rx_bytes=2480280632i,rx_queue_5_alloc_failed=0i,rx_queue_2_drops=0i,os2bmc_rx_by_bmc=0i,rx_align_errors=0i,rx_long_length_errors=0i,interface_up=1i,rx_hwtstamp_cleared=0i,rx_flow_control_xoff=0i,speed=1000i,link=1i,duplex=1i,autoneg=1i 1564658080000000000 +ethtool,driver=igb,host=test02,interface=mgmt0 rx_queue_2_bytes=111344804i,tx_queue_3_bytes=70439858i,multicast=83771i,rx_broadcast=24378975i,tx_queue_0_packets=107011i,rx_queue_6_alloc_failed=0i,rx_queue_6_drops=0i,rx_hwtstamp_cleared=0i,tx_window_errors=0i,tx_tcp_seg_good=0i,rx_queue_1_drops=0i,tx_queue_1_restart=0i,rx_queue_7_csum_err=0i,rx_no_buffer_count=0i,tx_queue_1_bytes=39675245i,tx_queue_5_bytes=84899130i,tx_broadcast=9i,rx_queue_1_csum_err=0i,tx_flow_control_xoff=0i,rx_queue_6_csum_err=0i,tx_timeout_count=0i,os2bmc_tx_by_bmc=0i,rx_queue_6_packets=372577i,rx_queue_0_alloc_failed=0i,tx_flow_control_xon=0i,rx_queue_2_drops=0i,tx_queue_2_packets=175206i,rx_queue_3_csum_err=0i,tx_abort_late_coll=0i,tx_queue_5_restart=0i,tx_dropped=0i,rx_queue_2_alloc_failed=0i,tx_multi_coll_ok=0i,rx_queue_1_packets=273865i,rx_flow_control_xon=0i,tx_single_coll_ok=0i,rx_length_errors=0i,rx_queue_7_bytes=35744457i,rx_queue_4_alloc_failed=0i,rx_queue_6_bytes=139488395i,rx_queue_2_csum_err=0i,rx_long_byte_count=2480288216i,rx_queue_1_alloc_failed=0i,tx_queue_0_restart=0i,rx_queue_0_csum_err=0i,tx_queue_2_bytes=22132949i,rx_queue_5_drops=0i,tx_dma_out_of_sync=0i,rx_queue_3_drops=0i,rx_queue_4_packets=212177i,tx_queue_6_restart=0i,rx_packets=25926650i,rx_queue_7_packets=88680i,rx_frame_errors=0i,rx_queue_3_bytes=84326060i,rx_short_length_errors=0i,tx_queue_7_bytes=13777515i,rx_queue_3_alloc_failed=0i,tx_queue_6_packets=183236i,rx_queue_0_drops=0i,rx_multicast=83771i,rx_queue_2_packets=207136i,rx_queue_5_csum_err=0i,rx_queue_5_packets=130535i,rx_queue_7_alloc_failed=0i,tx_smbus=0i,tx_queue_3_packets=161081i,rx_queue_7_drops=0i,tx_queue_2_restart=0i,tx_multicast=7i,tx_fifo_errors=0i,tx_queue_3_restart=0i,rx_long_length_errors=0i,tx_queue_6_bytes=96288614i,tx_queue_1_packets=280786i,tx_tcp_seg_failed=0i,rx_align_errors=0i,tx_errors=0i,rx_crc_errors=0i,rx_queue_0_packets=24529673i,rx_flow_control_xoff=0i,tx_queue_0_bytes=29465801i,rx_over_errors=0i,rx_queue_4_drops=0i,os2bmc_rx_by_bmc=0i,rx_smbus=0i,dropped_smbus=0i,tx_hwtstamp_timeouts=0i,rx_errors=0i,tx_queue_4_packets=109102i,tx_carrier_errors=0i,tx_queue_4_bytes=64810835i,tx_queue_4_restart=0i,rx_queue_4_csum_err=0i,tx_queue_7_packets=66665i,tx_aborted_errors=0i,rx_missed_errors=0i,tx_bytes=427575843i,collisions=0i,rx_queue_1_bytes=246703840i,rx_queue_5_bytes=50732006i,rx_bytes=2480288216i,os2bmc_rx_by_host=0i,rx_queue_5_alloc_failed=0i,rx_queue_3_packets=112007i,tx_deferred_ok=0i,os2bmc_tx_by_host=0i,tx_heartbeat_errors=0i,rx_queue_0_bytes=1506877506i,tx_queue_7_restart=0i,tx_packets=1257057i,rx_queue_4_bytes=201364548i,interface_up=0i,rx_fifo_errors=0i,tx_queue_5_packets=173970i,speed=1000i,link=1i,duplex=1i,autoneg=1i 1564658090000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/eventhub_consumer.md b/src/writeData/components/telegrafPlugins/eventhub_consumer.md index 8cbd337012..24fef28566 100644 --- a/src/writeData/components/telegrafPlugins/eventhub_consumer.md +++ b/src/writeData/components/telegrafPlugins/eventhub_consumer.md @@ -1,6 +1,14 @@ -# Event Hub Consumer Input Plugin +# Azure Event Hub Consumer Input Plugin -This plugin provides a consumer for use with Azure Event Hubs and Azure IoT Hub. +This plugin allows consuming messages from [Azure Event Hubs][eventhub] and +[Azure IoT Hub][iothub] instances. + +⭐ Telegraf v1.14.0 +🏷️ iot, messaging +💻 all + +[eventhub]: https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-about +[iothub]: https://azure.microsoft.com/en-us/products/iot-hub ## IoT Hub Setup @@ -13,6 +21,26 @@ The main focus for development of this plugin is Azure IoT hub: 3. The connection string needed for the plugin is located under *Shared access policies*, both the *iothubowner* and *service* policies should work +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -69,6 +97,15 @@ The main focus for development of this plugin is Azure IoT hub: # partition_ids = ["0","1"] ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. + ## + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Set either option below to true to use a system property as timestamp. @@ -107,3 +144,7 @@ The main focus for development of this plugin is Azure IoT hub: [Full documentation of the available environment variables][envvar]. [envvar]: https://github.com/Azure/azure-event-hubs-go#environment-variables + +## Metrics + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/exec.md b/src/writeData/components/telegrafPlugins/exec.md index 383e755a0e..a6bc6ab6c0 100644 --- a/src/writeData/components/telegrafPlugins/exec.md +++ b/src/writeData/components/telegrafPlugins/exec.md @@ -1,22 +1,31 @@ # Exec Input Plugin -The `exec` plugin executes all the `commands` in parallel on every interval and -parses metrics from their output in any one of the accepted [Input Data -Formats](https://github.com/influxdata/telegraf/tree/master/docs/DATA_FORMATS_INPUT.md). - +This plugin executes the given `commands` on every interval and parses metrics +from their output in any one of the supported [data formats][data_formats]. This plugin can be used to poll for custom metrics from any source. +⭐ Telegraf v0.1.5 +🏷️ system +💻 all + +[data_formats]: /docs/DATA_FORMATS_INPUT.md + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf # Read metrics from one or more commands that can output to stdout [[inputs.exec]] ## Commands array - commands = [ - "/tmp/test.sh", - "/usr/bin/mycollector --foo=bar", - "/tmp/collect_*.sh" - ] + commands = [] ## Environment variables ## Array of "key=value" pairs to pass as environment variables @@ -25,16 +34,24 @@ This plugin can be used to poll for custom metrics from any source. # environment = [] ## Timeout for each command to complete. - timeout = "5s" - - ## measurement name suffix (for separating different commands) - name_suffix = "_mycollector" - - ## Data format to consume. - ## Each data format has its own unique set of configuration options, read - ## more about them here: + # timeout = "5s" + + ## Measurement name suffix + ## Used for separating different commands + # name_suffix = "" + + ## Ignore Error Code + ## If set to true, a non-zero error code in not considered an error and the + ## plugin will continue to parse the output. + # ignore_error = false + + ## Data format + ## By default, exec expects JSON. This was done for historical reasons and is + ## different than other inputs that use the influx line protocol. Each data + ## format has its own unique set of configuration options, read more about + ## them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md - data_format = "influx" + # data_format = "json" ``` Glob patterns in the `command` option are matched on every run, so adding new @@ -77,3 +94,7 @@ available for output: ```shell $host.UI.RawUI.BufferSize = new-object System.Management.Automation.Host.Size(1024,50) ``` + +## Metrics + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/execd.md b/src/writeData/components/telegrafPlugins/execd.md index c0a4c50455..6e456defbf 100644 --- a/src/writeData/components/telegrafPlugins/execd.md +++ b/src/writeData/components/telegrafPlugins/execd.md @@ -1,17 +1,42 @@ # Execd Input Plugin -The `execd` plugin runs an external program as a long-running daemon. The -programs must output metrics in any one of the accepted [Input Data Formats][] -on the process's STDOUT, and is expected to stay running. If you'd instead like -the process to collect metrics and then exit, check out the [inputs.exec][] -plugin. +This plugin runs the given external program as a long-running daemon and collects +the metrics in one of the supported [data formats][data_formats] on the +process's `stdout`. The program is expected to stay running and output data +when receiving the configured `signal`. -The `signal` can be configured to send a signal the running daemon on each -collection interval. This is used for when you want to have Telegraf notify the -plugin when it's time to run collection. STDIN is recommended, which writes a -new line to the process's STDIN. +The `stderr` output of the process will be relayed to Telegraf's logging +facilities and will be logged as _error_ by default. However, you can log to +other levels by prefixing your message with `E!` for error, `W!` for warning, +`I!` for info, `D!` for debugging and `T!` for trace levels followed by a space +and the actual message. For example outputting `I! A log message` will create a +`info` log line in your Telegraf logging output. -STDERR from the process will be relayed to Telegraf as errors in the logs. +⭐ Telegraf v1.14.0 +🏷️ system +💻 all + +[data_formats]: /docs/DATA_FORMATS_INPUT.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -36,94 +61,40 @@ STDERR from the process will be relayed to Telegraf as errors in the logs. ## "SIGHUP" : Send a HUP signal. Not available on Windows. (not recommended) ## "SIGUSR1" : Send a USR1 signal. Not available on Windows. ## "SIGUSR2" : Send a USR2 signal. Not available on Windows. - signal = "none" + # signal = "none" ## Delay before the process is restarted after an unexpected termination - restart_delay = "10s" + # restart_delay = "10s" + + ## Buffer size used to read from the command output stream + ## Optional parameter. Default is 64 Kib, minimum is 16 bytes + # buffer_size = "64Kib" + + ## Disable automatic restart of the program and stop if the program exits + ## with an error (i.e. non-zero error code) + # stop_on_error = false ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md - data_format = "influx" + # data_format = "influx" ``` ## Example -### Daemon written in bash using STDIN signaling - -```bash -#!/bin/bash - -counter=0 - -while IFS= read -r LINE; do - echo "counter_bash count=${counter}" - let counter=counter+1 -done -``` - -```toml -[[inputs.execd]] - command = ["plugins/inputs/execd/examples/count.sh"] - signal = "STDIN" -``` - -### Go daemon using SIGHUP +See the examples directory for basic examples in different languages expecting +various signals from Telegraf: -```go -package main +- [Go](./examples/count.go): Example expects `signal = "SIGHUP"` +- [Python](./examples/count.py): Example expects `signal = "none"` +- [Ruby](./examples/count.rb): Example expects `signal = "none"` +- [shell](./examples/count.sh): Example expects `signal = "STDIN"` -import ( - "fmt" - "os" - "os/signal" - "syscall" -) +## Metrics -func main() { - c := make(chan os.Signal, 1) - signal.Notify(c, syscall.SIGHUP) +Varies depending on the users data. - counter := 0 - - for { - <-c - - fmt.Printf("counter_go count=%d\n", counter) - counter++ - } -} - -``` - -```toml -[[inputs.execd]] - command = ["plugins/inputs/execd/examples/count.go.exe"] - signal = "SIGHUP" -``` - -### Ruby daemon running standalone - -```ruby -#!/usr/bin/env ruby - -counter = 0 - -loop do - puts "counter_ruby count=#{counter}" - STDOUT.flush - - counter += 1 - sleep 1 -end -``` - -```toml -[[inputs.execd]] - command = ["plugins/inputs/execd/examples/count.rb"] - signal = "none" -``` +## Example Output -[Input Data Formats]: ../../../docs/DATA_FORMATS_INPUT.md -[inputs.exec]: ../exec/README.md +Varies depending on the users data. diff --git a/src/writeData/components/telegrafPlugins/fail2ban.md b/src/writeData/components/telegrafPlugins/fail2ban.md index 88f0f56e2b..3a4abeb348 100644 --- a/src/writeData/components/telegrafPlugins/fail2ban.md +++ b/src/writeData/components/telegrafPlugins/fail2ban.md @@ -1,13 +1,27 @@ # Fail2ban Input Plugin -The fail2ban plugin gathers the count of failed and banned ip addresses using -[fail2ban](https://www.fail2ban.org). +This plugin gathers the count of failed and banned IP addresses using +[fail2ban][fail2ban] by running the `fail2ban-client` command. -This plugin runs the `fail2ban-client` command which generally requires root -access. Acquiring the required permissions can be done using several methods: +> [!NOTE] +> The `fail2ban-client` requires root access, so please make sure to either +> allow Telegraf to run that command using `sudo` without a password or by +> running telegraf as root (not recommended). -- [Use sudo](#using-sudo) run fail2ban-client. -- Run telegraf as root. (not recommended) +⭐ Telegraf v1.4.0 +🏷️ network, system +💻 all + +[fail2ban]: https://www.fail2ban.org + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -15,7 +29,10 @@ access. Acquiring the required permissions can be done using several methods: # Read metrics from fail2ban. [[inputs.fail2ban]] ## Use sudo to run fail2ban-client - use_sudo = false + # use_sudo = false + + ## Use the given socket instead of the default one + # socket = "/var/run/fail2ban/fail2ban.sock" ``` ## Using sudo @@ -51,6 +68,12 @@ Defaults!FAIL2BAN !logfile, !syslog, !pam_session ## Example Output +```text +fail2ban,jail=sshd failed=5i,banned=2i 1495868667000000000 +``` + +### Execute the binary directly + ```shell # fail2ban-client status sshd Status for the jail: sshd @@ -63,7 +86,3 @@ Status for the jail: sshd |- Total banned: 10 `- Banned IP list: 192.168.0.1 192.168.0.2 ``` - -```shell -fail2ban,jail=sshd failed=5i,banned=2i 1495868667000000000 -``` diff --git a/src/writeData/components/telegrafPlugins/fibaro.md b/src/writeData/components/telegrafPlugins/fibaro.md index f1831ba690..d866098aae 100644 --- a/src/writeData/components/telegrafPlugins/fibaro.md +++ b/src/writeData/components/telegrafPlugins/fibaro.md @@ -1,8 +1,24 @@ # Fibaro Input Plugin -The Fibaro plugin makes HTTP calls to the Fibaro controller API to gather values -of hooked devices. Those values could be true (1) or false (0) for switches, -percentage for dimmers, temperature, etc. +This plugin gathers data from devices connected to a [Fibaro][fibaro] +controller. Those values could be true (1) or false (0) for switches, percentage +for dimmers, temperature, etc. Both _Home Center 2_ and _Home Center 3_ devices +are supported. + +⭐ Telegraf v1.7.0 +🏷️ iot +💻 all + +[fibaro]: https://www.fibaro.com + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -19,6 +35,11 @@ percentage for dimmers, temperature, etc. ## Amount of time allowed to complete the HTTP request # timeout = "5s" + + ## Fibaro Device Type + ## By default, this plugin will attempt to read using the HC2 API. For HC3 + ## devices, set this to "HC3" + # device_type = "HC2" ``` ## Metrics @@ -39,7 +60,7 @@ percentage for dimmers, temperature, etc. ## Example Output -```shell +```text fibaro,deviceId=9,host=vm1,name=Fenêtre\ haute,room=Cuisine,section=Cuisine,type=com.fibaro.FGRM222 energy=2.04,power=0.7,value=99,value2=99 1529996807000000000 fibaro,deviceId=10,host=vm1,name=Escaliers,room=Dégagement,section=Pièces\ communes,type=com.fibaro.binarySwitch value=0 1529996807000000000 fibaro,deviceId=13,host=vm1,name=Porte\ fenêtre,room=Salon,section=Pièces\ communes,type=com.fibaro.FGRM222 energy=4.33,power=0.7,value=99,value2=99 1529996807000000000 diff --git a/src/writeData/components/telegrafPlugins/file.md b/src/writeData/components/telegrafPlugins/file.md index 707bff42e9..45be2b5cfa 100644 --- a/src/writeData/components/telegrafPlugins/file.md +++ b/src/writeData/components/telegrafPlugins/file.md @@ -1,10 +1,28 @@ # File Input Plugin -The file plugin parses the **complete** contents of a file **every interval** -using the selected [input data format][]. +This plugin reads the __complete__ contents of the configured files in +__every__ interval. The file content is split line-wise and parsed according to +one of the supported [data formats][data_formats]. -**Note:** If you wish to parse only newly appended lines use the [tail][] input -plugin instead. +> [!TIP] +> If you wish to only process newly appended lines use the [tail][tail] input +> plugin instead. + +⭐ Telegraf v1.8.0 +🏷️ system +💻 all + +[data_formats]: /docs/DATA_FORMATS_INPUT.md +[tail]: /plugins/inputs/tail + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -28,11 +46,19 @@ plugin instead. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md - data_format = "influx", ## Name a tag containing the name of the file the data was parsed from. Leave empty - ## to disable. Cautious when file name variation is high, this can increase the cardinality - ## significantly. Read more about cardinality here: + data_format = "influx" + + ## Please use caution when using the following options: when file name + ## variation is high, this can increase the cardinality significantly. Read + ## more about cardinality here: ## https://docs.influxdata.com/influxdb/cloud/reference/glossary/#series-cardinality + + ## Name of tag to store the name of the file. Disabled if not set. # file_tag = "" + + ## Name of tag to store the absolute path and name of the file. Disabled if + ## not set. + # file_path_tag = "" ``` ## Metrics @@ -40,5 +66,4 @@ plugin instead. The format of metrics produced by this plugin depends on the content and data format of the file. -[input data format]: /docs/DATA_FORMATS_INPUT.md -[tail]: /plugins/inputs/tail +## Example Output diff --git a/src/writeData/components/telegrafPlugins/filecount.md b/src/writeData/components/telegrafPlugins/filecount.md index 0842a4722c..a2afd77f5d 100644 --- a/src/writeData/components/telegrafPlugins/filecount.md +++ b/src/writeData/components/telegrafPlugins/filecount.md @@ -1,6 +1,19 @@ # Filecount Input Plugin -Reports the number and total size of files in specified directories. +This plugin reports the number and total size of files in specified directories. + +⭐ Telegraf v1.8.0 +🏷️ system +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -47,10 +60,12 @@ Reports the number and total size of files in specified directories. - fields: - count (integer) - size_bytes (integer) + - oldest_file_timestamp (int, unix time nanoseconds) + - newest_file_timestamp (int, unix time nanoseconds) ## Example Output -```shell -filecount,directory=/var/cache/apt count=7i,size_bytes=7438336i 1530034445000000000 -filecount,directory=/tmp count=17i,size_bytes=28934786i 1530034445000000000 +```text +filecount,directory=/var/cache/apt count=7i,size_bytes=7438336i,oldest_file_timestamp=1507152973123456789i,newest_file_timestamp=1507152973123456789i 1530034445000000000 +filecount,directory=/tmp count=17i,size_bytes=28934786i,oldest_file_timestamp=1507152973123456789i,newest_file_timestamp=1507152973123456789i 1530034445000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/filestat.md b/src/writeData/components/telegrafPlugins/filestat.md index 63ed975e66..03629b21b6 100644 --- a/src/writeData/components/telegrafPlugins/filestat.md +++ b/src/writeData/components/telegrafPlugins/filestat.md @@ -1,6 +1,20 @@ -# Filestat Input Plugin +# File statistics Input Plugin -The filestat plugin gathers metrics about file existence, size, and other stats. +This plugin gathers metrics about file existence, size, and other file +statistics. + +⭐ Telegraf v0.13.0 +🏷️ system +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -16,7 +30,9 @@ The filestat plugin gathers metrics about file existence, size, and other stats. md5 = false ``` -## Measurements & Fields +## Metrics + +### Measurements & Fields - filestat - exists (int, 0 | 1) @@ -24,16 +40,14 @@ The filestat plugin gathers metrics about file existence, size, and other stats. - modification_time (int, unix time nanoseconds) - md5 (optional, string) -## Tags +### Tags - All measurements have the following tags: - file (the path the to file, as specified in the config) -### Example +## Example Output -```shell -$ telegraf --config /etc/telegraf/telegraf.conf --input-filter filestat --test -* Plugin: filestat, Collection 1 -> filestat,file=/tmp/foo/bar,host=tyrion exists=0i 1507218518192154351 -> filestat,file=/Users/sparrc/ws/telegraf.conf,host=tyrion exists=1i,size=47894i,modification_time=1507152973123456789i 1507218518192154351 +```text +filestat,file=/tmp/foo/bar,host=tyrion exists=0i 1507218518192154351 +filestat,file=/Users/sparrc/ws/telegraf.conf,host=tyrion exists=1i,size=47894i,modification_time=1507152973123456789i 1507218518192154351 ``` diff --git a/src/writeData/components/telegrafPlugins/fireboard.md b/src/writeData/components/telegrafPlugins/fireboard.md index 2c46a6e6fd..13d75036c8 100644 --- a/src/writeData/components/telegrafPlugins/fireboard.md +++ b/src/writeData/components/telegrafPlugins/fireboard.md @@ -1,8 +1,27 @@ # Fireboard Input Plugin -The fireboard plugin gathers the real time temperature data from fireboard -thermometers. In order to use this input plugin, you'll need to sign up to use -the [Fireboard REST API](https://docs.fireboard.io/reference/restapi.html). +This plugin gathers real-time temperature data from [fireboard][fireboard] +thermometers. + +> [!NOTE] +> You will need to sign up to for the [Fireboard REST API][api] in order to use +> this plugin. + +⭐ Telegraf v1.12.0 +🏷️ iot +💻 all + +[fireboard]: https://www.fireboard.com +[api]: https://docs.fireboard.io/reference/restapi.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -44,18 +63,18 @@ values are included if they are less than a minute old. - fireboard - tags: - channel - - scale (Celcius; Farenheit) + - scale (Celcius; Fahrenheit) - title (name of the Fireboard) - uuid (UUID of the Fireboard) - fields: - temperature (float, unit) -## Example +## Example Output This section shows example output in Line Protocol format. You can often use `telegraf --input-filter --test` or use the `file` output to get this information. -```shell -fireboard,channel=2,host=patas-mbp,scale=Farenheit,title=telegraf-FireBoard,uuid=b55e766c-b308-49b5-93a4-df89fe31efd0 temperature=78.2 1561690040000000000 +```text +fireboard,channel=2,host=patas-mbp,scale=Fahrenheit,title=telegraf-FireBoard,uuid=b55e766c-b308-49b5-93a4-df89fe31efd0 temperature=78.2 1561690040000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/fluentd.md b/src/writeData/components/telegrafPlugins/fluentd.md index 9dc87ffc08..b96f1f0996 100644 --- a/src/writeData/components/telegrafPlugins/fluentd.md +++ b/src/writeData/components/telegrafPlugins/fluentd.md @@ -1,27 +1,32 @@ # Fluentd Input Plugin -The fluentd plugin gathers metrics from plugin endpoint provided by [in_monitor -plugin][1]. This plugin understands data provided by /api/plugin.json resource -(/api/config.json is not covered). +This plugin gathers internal metrics of a [fluentd][fluentd] instance provided +by fluentd's [monitor agent plugin][monitor_agent]. Data provided +by the `/api/plugin.json` resource, `/api/config.json` is not covered. -You might need to adjust your fluentd configuration, in order to reduce series -cardinality in case your fluentd restarts frequently. Every time fluentd starts, -`plugin_id` value is given a new random value. According to [fluentd -documentation][2], you are able to add `@id` parameter for each plugin to avoid -this behaviour and define custom `plugin_id`. +> [!IMPORTANT] +> This plugin might produce high-cardinality series as the `plugin_id` value is +> random after each restart of fluentd. You might need to adjust your fluentd +> configuration, in order to reduce series cardinality in case your fluentd +> restarts frequently by adding the `@id` parameter to each plugin. +> See [fluentd's documentation][docs] for details. -example configuration with `@id` parameter for http plugin: +⭐ Telegraf v1.4.0 +🏷️ server +💻 all -```text - - @type http - @id http - port 8888 - -``` +[fluentd]: https://www.fluentd.org/ +[monitor_agent]: https://docs.fluentd.org/input/monitor_agent +[docs]: https://docs.fluentd.org/configuration/config-file#common-plugin-parameter + +## Global configuration options -[1]: https://docs.fluentd.org/input/monitor_agent -[2]: https://docs.fluentd.org/configuration/config-file#common-plugin-parameter +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -42,7 +47,9 @@ example configuration with `@id` parameter for http plugin: ] ``` -## Measurements & Fields +## Metrics + +### Measurements & Fields Fields may vary depending on the plugin type @@ -60,9 +67,9 @@ Fields may vary depending on the plugin type - buffer_stage_length (float, unit) - buffer_queue_byte_size (float, unit) - buffer_stage_byte_size (float, unit) - - buffer_available_buffer_space_ratios (float, unit) + - buffer_available_buffer_space_ratios (float, unit) -## Tags +### Tags - All measurements have the following tags: - plugin_id (unique plugin id) @@ -71,13 +78,11 @@ Fields may vary depending on the plugin type ## Example Output -```shell -$ telegraf --config fluentd.conf --input-filter fluentd --test -* Plugin: inputs.fluentd, Collection 1 -> fluentd,host=T440s,plugin_id=object:9f748c,plugin_category=input,plugin_type=dummy buffer_total_queued_size=0,buffer_queue_length=0,retry_count=0 1492006105000000000 -> fluentd,plugin_category=input,plugin_type=dummy,host=T440s,plugin_id=object:8da98c buffer_queue_length=0,retry_count=0,buffer_total_queued_size=0 1492006105000000000 -> fluentd,plugin_id=object:820190,plugin_category=input,plugin_type=monitor_agent,host=T440s retry_count=0,buffer_total_queued_size=0,buffer_queue_length=0 1492006105000000000 -> fluentd,plugin_id=object:c5e054,plugin_category=output,plugin_type=stdout,host=T440s buffer_queue_length=0,retry_count=0,buffer_total_queued_size=0 1492006105000000000 -> fluentd,plugin_type=s3,host=T440s,plugin_id=object:bd7a90,plugin_category=output buffer_queue_length=0,retry_count=0,buffer_total_queued_size=0 1492006105000000000 -> fluentd,plugin_id=output_td, plugin_category=output,plugin_type=tdlog, host=T440s buffer_available_buffer_space_ratios=100,buffer_queue_byte_size=0,buffer_queue_length=0,buffer_stage_byte_size=0,buffer_stage_length=0,buffer_total_queued_size=0,emit_count=0,emit_records=0,flush_time_count=0,retry_count=0,rollback_count=0,slow_flush_count=0,write_count=0 1651474085000000000 +```text +fluentd,host=T440s,plugin_id=object:9f748c,plugin_category=input,plugin_type=dummy buffer_total_queued_size=0,buffer_queue_length=0,retry_count=0 1492006105000000000 +fluentd,plugin_category=input,plugin_type=dummy,host=T440s,plugin_id=object:8da98c buffer_queue_length=0,retry_count=0,buffer_total_queued_size=0 1492006105000000000 +fluentd,plugin_id=object:820190,plugin_category=input,plugin_type=monitor_agent,host=T440s retry_count=0,buffer_total_queued_size=0,buffer_queue_length=0 1492006105000000000 +fluentd,plugin_id=object:c5e054,plugin_category=output,plugin_type=stdout,host=T440s buffer_queue_length=0,retry_count=0,buffer_total_queued_size=0 1492006105000000000 +fluentd,plugin_type=s3,host=T440s,plugin_id=object:bd7a90,plugin_category=output buffer_queue_length=0,retry_count=0,buffer_total_queued_size=0 1492006105000000000 +fluentd,plugin_id=output_td, plugin_category=output,plugin_type=tdlog, host=T440s buffer_available_buffer_space_ratios=100,buffer_queue_byte_size=0,buffer_queue_length=0,buffer_stage_byte_size=0,buffer_stage_length=0,buffer_total_queued_size=0,emit_count=0,emit_records=0,flush_time_count=0,retry_count=0,rollback_count=0,slow_flush_count=0,write_count=0 1651474085000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/github.md b/src/writeData/components/telegrafPlugins/github.md index 06491e95ba..a1bc7d8e35 100644 --- a/src/writeData/components/telegrafPlugins/github.md +++ b/src/writeData/components/telegrafPlugins/github.md @@ -1,9 +1,27 @@ # GitHub Input Plugin -Gather repository information from [GitHub][] hosted repositories. +This plugin gathers information from projects and repositories hosted on +[GitHub][github]. -**Note:** Telegraf also contains the [webhook][] input which can be used as an -alternative method for collecting repository information. +> [!NOTE] +> Telegraf also contains the [webhook input plugin][webhook] which can be used +> as an alternative method for collecting repository information. + +⭐ Telegraf v1.11.0 +🏷️ applications +💻 all + +[github]: https://www.github.com +[webhook]: /plugins/inputs/webhooks/github + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -51,11 +69,11 @@ alternative method for collecting repository information. - stars (int) - watchers (int) -When the [internal][] input is enabled: +When the [internal][internal] input is enabled: - internal_github - tags: - - access_token - An obfuscated reference to the configured access token or "Unauthenticated" + - access_token - obfuscated reference to access token or "Unauthenticated" - fields: - limit - How many requests you are limited to (per hour) - remaining - How many requests you have remaining (per hour) @@ -74,11 +92,9 @@ options with the required API-calls and the resulting fields ## Example Output -```shell +```text github_repository,language=Go,license=MIT\ License,name=telegraf,owner=influxdata forks=2679i,networks=2679i,open_issues=794i,size=23263i,stars=7091i,subscribers=316i,watchers=7091i 1563901372000000000 internal_github,access_token=Unauthenticated closed_pull_requests=3522i,rate_limit_remaining=59i,rate_limit_limit=60i,rate_limit_blocks=0i,open_pull_requests=260i 1552653551000000000 ``` -[GitHub]: https://www.github.com [internal]: /plugins/inputs/internal -[webhook]: /plugins/inputs/webhooks/github diff --git a/src/writeData/components/telegrafPlugins/gnmi.md b/src/writeData/components/telegrafPlugins/gnmi.md index 15991e9604..bd01df2ce7 100644 --- a/src/writeData/components/telegrafPlugins/gnmi.md +++ b/src/writeData/components/telegrafPlugins/gnmi.md @@ -1,15 +1,46 @@ # gNMI (gRPC Network Management Interface) Input Plugin -This plugin consumes telemetry data based on the [gNMI][1] Subscribe method. TLS -is supported for authentication and encryption. This input plugin is -vendor-agnostic and is supported on any platform that supports the gNMI spec. +This plugin consumes telemetry data based on [gNMI][gnmi] subscriptions. TLS is +supported for authentication and encryption. This plugin is vendor-agnostic and +is supported on any platform that supports the gNMI specification. -For Cisco devices: +For Cisco devices the plugin has been optimized to support gNMI telemetry as +produced by Cisco IOS XR (64-bit) version 6.5.1, Cisco NX-OS 9.3 and +Cisco IOS XE 16.12 and later. -It has been optimized to support gNMI telemetry as produced by Cisco IOS XR -(64-bit) version 6.5.1, Cisco NX-OS 9.3 and Cisco IOS XE 16.12 and later. +⭐ Telegraf v1.15.0 +🏷️ network +💻 all -[1]: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md +[gnmi]: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `username` and +`password` options. See the [secret-store documentation][SECRETSTORE] for more +details on how to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -27,19 +58,76 @@ It has been optimized to support gNMI telemetry as produced by Cisco IOS XR # encoding = "proto" ## redial in case of failures after - redial = "10s" + # redial = "10s" + + ## gRPC Keepalive settings + ## See https://pkg.go.dev/google.golang.org/grpc/keepalive + ## The client will ping the server to see if the transport is still alive if it has + ## not see any activity for the given time. + ## If not set, none of the keep-alive setting (including those below) will be applied. + ## If set and set below 10 seconds, the gRPC library will apply a minimum value of 10s will be used instead. + # keepalive_time = "" + + ## Timeout for seeing any activity after the keep-alive probe was + ## sent. If no activity is seen the connection is closed. + # keepalive_timeout = "" - ## enable client-side TLS and define CA to authenticate the device - # enable_tls = true - # tls_ca = "/etc/telegraf/ca.pem" + ## gRPC Maximum Message Size + # max_msg_size = "4MB" + + ## Subtree depth for depth extension (disables if < 1) + ## see https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-depth.md + # depth = 0 + + ## Enable to get the canonical path as field-name + # canonical_field_names = false + + ## Remove leading slashes and dots in field-name + # trim_field_names = false + + ## Only receive updates for the state, also suppresses receiving the initial state + # updates_only = false + + ## Enforces the namespace of the first element as origin for aliases and + ## response paths, required for backward compatibility. + ## NOTE: Set to 'false' if possible but be aware that this might change the path tag! + # enforce_first_namespace_as_origin = true + + ## Guess the path-tag if an update does not contain a prefix-path + ## Supported values are + ## none -- do not add a 'path' tag + ## common path -- use the common path elements of all fields in an update + ## subscription -- use the subscription path + # path_guessing_strategy = "none" + + ## Prefix tags from path keys with the path element + # prefix_tag_key_with_path = false + + ## Optional client-side TLS to authenticate the device + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" ## Minimal TLS version to accept by the client # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" ## Use TLS but skip chain & host verification - # insecure_skip_verify = true - - ## define client-side TLS certificate & key to authenticate to the device - # tls_cert = "/etc/telegraf/cert.pem" - # tls_key = "/etc/telegraf/key.pem" + # insecure_skip_verify = false ## gNMI subscription prefix (optional, can usually be left empty) ## See: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md#222-paths @@ -47,7 +135,20 @@ It has been optimized to support gNMI telemetry as produced by Cisco IOS XR # prefix = "" # target = "" - ## Define additional aliases to map telemetry encoding paths to simple measurement names + ## Vendor specific options + ## This defines what vendor specific options to load. + ## * Juniper Header Extension (juniper_header): some sensors are directly managed by + ## Linecard, which adds the Juniper GNMI Header Extension. Enabling this + ## allows the decoding of the Extension header if present. Currently this knob + ## adds component, component_id & sub_component_id as additional tags + # vendor_specific = [] + + ## YANG model paths for decoding IETF JSON payloads + ## Model files are loaded recursively from the given directories. Disabled if + ## no models are specified. + # yang_model_paths = [] + + ## Define additional aliases to map encoding paths to measurement names # [inputs.gnmi.aliases] # ifcounters = "openconfig:/interfaces/interface/state/counters" @@ -59,12 +160,13 @@ It has been optimized to support gNMI telemetry as produced by Cisco IOS XR ## See: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md#222-paths ## ## origin usually refers to a (YANG) data model implemented by the device - ## and path to a specific substructure inside it that should be subscribed to (similar to an XPath) - ## YANG models can be found e.g. here: https://github.com/YangModels/yang/tree/master/vendor/cisco/xr + ## and path to a specific substructure inside it that should be subscribed + ## to (similar to an XPath). YANG models can be found e.g. here: + ## https://github.com/YangModels/yang/tree/master/vendor/cisco/xr origin = "openconfig-interfaces" path = "/interfaces/interface/state/counters" - # Subscription mode (one of: "target_defined", "sample", "on_change") and interval + ## Subscription mode ("target_defined", "sample", "on_change") and interval subscription_mode = "sample" sample_interval = "10s" @@ -74,17 +176,33 @@ It has been optimized to support gNMI telemetry as produced by Cisco IOS XR ## If suppression is enabled, send updates at least every X seconds anyway # heartbeat_interval = "60s" - #[[inputs.gnmi.subscription]] - # name = "descr" - # origin = "openconfig-interfaces" - # path = "/interfaces/interface/state/description" - # subscription_mode = "on_change" - - ## If tag_only is set, the subscription in question will be utilized to maintain a map of - ## tags to apply to other measurements emitted by the plugin, by matching path keys - ## All fields from the tag-only subscription will be applied as tags to other readings, - ## in the format _. - # tag_only = true + ## Tag subscriptions are applied as tags to other subscriptions. + # [[inputs.gnmi.tag_subscription]] + # ## When applying this value as a tag to other metrics, use this tag name + # name = "descr" + # + # ## All other subscription fields are as normal + # origin = "openconfig-interfaces" + # path = "/interfaces/interface/state" + # subscription_mode = "on_change" + # + # ## Match strategy to use for the tag. + # ## Tags are only applied for metrics of the same address. The following + # ## settings are valid: + # ## unconditional -- always match + # ## name -- match by the "name" key + # ## This resembles the previous 'tag-only' behavior. + # ## elements -- match by the keys in the path filtered by the path + # ## parts specified `elements` below + # ## By default, 'elements' is used if the 'elements' option is provided, + # ## otherwise match by 'name'. + # # match = "" + # + # ## For the 'elements' match strategy, at least one path-element name must + # ## be supplied containing at least one key to match on. Multiple path + # ## elements can be specified in any order. All given keys must be equal + # ## for a match. + # # elements = ["description", "interface"] ``` ## Metrics @@ -95,7 +213,64 @@ measurement. GNMI PathElement keys for leaves will attach tags to the field(s). ## Example Output -```shell +```text ifcounters,path=openconfig-interfaces:/interfaces/interface/state/counters,host=linux,name=MgmtEth0/RP0/CPU0/0,source=10.49.234.115,descr/description=Foo in-multicast-pkts=0i,out-multicast-pkts=0i,out-errors=0i,out-discards=0i,in-broadcast-pkts=0i,out-broadcast-pkts=0i,in-discards=0i,in-unknown-protos=0i,in-errors=0i,out-unicast-pkts=0i,in-octets=0i,out-octets=0i,last-clear="2019-05-22T16:53:21Z",in-unicast-pkts=0i 1559145777425000000 ifcounters,path=openconfig-interfaces:/interfaces/interface/state/counters,host=linux,name=GigabitEthernet0/0/0/0,source=10.49.234.115,descr/description=Bar out-multicast-pkts=0i,out-broadcast-pkts=0i,in-errors=0i,out-errors=0i,in-discards=0i,out-octets=0i,in-unknown-protos=0i,in-unicast-pkts=0i,in-octets=0i,in-multicast-pkts=0i,in-broadcast-pkts=0i,last-clear="2019-05-22T16:54:50Z",out-unicast-pkts=0i,out-discards=0i 1559145777425000000 ``` + +## Troubleshooting + +### Empty metric-name warning + +Some devices (e.g. Juniper) report spurious data with response paths not +corresponding to any subscription. In those cases, Telegraf will not be able +to determine the metric name for the response and you get an +*empty metric-name warning* + +For example if you subscribe to `/junos/system/linecard/cpu/memory` but the +corresponding response arrives with path +`/components/component/properties/property/...` To avoid those issues, you can +manually map the response to a metric name using the `aliases` option like + +```toml +[[inputs.gnmi]] + addresses = ["..."] + + [inputs.gnmi.aliases] + memory = "/components" + + [[inputs.gnmi.subscription]] + name = "memory" + origin = "openconfig" + path = "/junos/system/linecard/cpu/memory" + subscription_mode = "sample" + sample_interval = "60s" +``` + +If this does *not* solve the issue, please follow the warning instructions and +open an issue with the response, your configuration and the metric you expect. + +### Missing `path` tag + +Some devices (e.g. Arista) omit the prefix and specify the path in the update +if there is only one value reported. This leads to a missing `path` tag for +the resulting metrics. In those cases you should set `path_guessing_strategy` +to `subscription` to use the subscription path as `path` tag. + +Other devices might omit the prefix in updates altogether. Here setting +`path_guessing_strategy` to `common path` can help to infer the `path` tag by +using the part of the path that is common to all values in the update. + +### TLS handshake failure + +When receiving an error like + +```text +2024-01-01T00:00:00Z E! [inputs.gnmi] Error in plugin: failed to setup subscription: rpc error: code = Unavailable desc = connection error: desc = "transport: authentication handshake failed: remote error: tls: handshake failure" +``` + +this might be due to insecure TLS configurations in the GNMI server. Please +check the minimum TLS version provided by the server as well as the cipher suite +used. You might want to use the `tls_min_version` or `tls_cipher_suites` setting +respectively to work-around the issue. Please be careful to not undermine the +security of the connection between the plugin and the device! diff --git a/src/writeData/components/telegrafPlugins/graylog.md b/src/writeData/components/telegrafPlugins/graylog.md index a50e8615fc..987e06ff4f 100644 --- a/src/writeData/components/telegrafPlugins/graylog.md +++ b/src/writeData/components/telegrafPlugins/graylog.md @@ -1,17 +1,32 @@ # GrayLog Input Plugin -The Graylog plugin can collect data from remote Graylog service URLs. +This plugin collects data from [Graylog servers][graylog], currently supporting +two type of end points `multiple` +(e.g. `http://:9000/api/system/metrics/multiple`) and `namespace` +(e.g. `http://:9000/api/system/metrics/namespace/{namespace}`). -Plugin currently support two type of end points:- +Multiple endpoint can be queried and mixing `multiple` and serveral `namespace` +end points is possible. Check `http://:9000/api/api-browser` for the full +list of available endpoints. -- multiple (e.g. `http://[graylog-server-ip]:9000/api/system/metrics/multiple`) -- namespace (e.g. `http://[graylog-server-ip]:9000/api/system/metrics/namespace/{namespace}`) +> [!NOTE] +> When specifying a `namespace` endpoint without an actual namespace, the +> metrics array will be ignored. -End Point can be a mix of one multiple end point and several namespaces end -points +⭐ Telegraf v1.0.0 +🏷️ logging +💻 all -Note: if namespace end point specified metrics array will be ignored for that -call. +[graylog]: https://graylog.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -56,5 +71,9 @@ call. # insecure_skip_verify = false ``` -Please refer to GrayLog metrics api browser for full metric end points: +Please refer to GrayLog metrics API browser for full metric end points: `http://host:9000/api/api-browser` + +## Metrics + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/haproxy.md b/src/writeData/components/telegrafPlugins/haproxy.md index ac584972fb..22acf44cdb 100644 --- a/src/writeData/components/telegrafPlugins/haproxy.md +++ b/src/writeData/components/telegrafPlugins/haproxy.md @@ -1,34 +1,41 @@ # HAProxy Input Plugin -The [HAProxy](http://www.haproxy.org/) input plugin gathers [statistics][1] -using the [stats socket][2] or [HTTP statistics page][3] of a HAProxy server. +This plugin gathers statistics of [HAProxy][haproxy] servers using sockets or +the HTTP protocol. -[1]: https://cbonte.github.io/haproxy-dconv/1.9/intro.html#3.3.16 -[2]: https://cbonte.github.io/haproxy-dconv/1.9/management.html#9.3 -[3]: https://cbonte.github.io/haproxy-dconv/1.9/management.html#9 +⭐ Telegraf v0.1.5 +🏷️ network, server +💻 all + +[haproxy]: http://www.haproxy.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf -# Read metrics of HAProxy, via socket or HTTP stats page +# Read metrics of HAProxy, via stats socket or http endpoints [[inputs.haproxy]] - ## An array of address to gather stats about. Specify an ip on hostname - ## with optional port. ie localhost, 10.10.3.33:1936, etc. - ## Make sure you specify the complete path to the stats endpoint - ## including the protocol, ie http://10.10.3.33:1936/haproxy?stats - - ## Credentials for basic HTTP authentication - # username = "admin" - # password = "admin" - - ## If no servers are specified, then default to 127.0.0.1:1936/haproxy?stats + ## List of stats endpoints. Metrics can be collected from both http and socket + ## endpoints. Examples of valid endpoints: + ## - http://myhaproxy.com:1936/haproxy?stats + ## - https://myhaproxy.com:8000/stats + ## - socket:/run/haproxy/admin.sock + ## - /run/haproxy/*.sock + ## - tcp://127.0.0.1:1936 + ## + ## Server addresses not starting with 'http://', 'https://', 'tcp://' will be + ## treated as possible sockets. When specifying local socket, glob patterns are + ## supported. servers = ["http://myhaproxy.com:1936/haproxy?stats"] - ## You can also use local socket with standard wildcard globbing. - ## Server address not starting with 'http' will be treated as a possible - ## socket, so both examples below are valid. - # servers = ["socket:/run/haproxy/admin.sock", "/run/haproxy/*.sock"] - ## By default, some of the fields are renamed from what haproxy calls them. ## Setting this option to true results in the plugin keeping the original ## field names. @@ -116,6 +123,6 @@ documentation][6]. ## Example Output -```shell +```text haproxy,server=/run/haproxy/admin.sock,proxy=public,sv=FRONTEND,type=frontend http_response.other=0i,req_rate_max=1i,comp_byp=0i,status="OPEN",rate_lim=0i,dses=0i,req_rate=0i,comp_rsp=0i,bout=9287i,comp_in=0i,mode="http",smax=1i,slim=2000i,http_response.1xx=0i,conn_rate=0i,dreq=0i,ereq=0i,iid=2i,rate_max=1i,http_response.2xx=1i,comp_out=0i,intercepted=1i,stot=2i,pid=1i,http_response.5xx=1i,http_response.3xx=0i,http_response.4xx=0i,conn_rate_max=1i,conn_tot=2i,dcon=0i,bin=294i,rate=0i,sid=0i,req_tot=2i,scur=0i,dresp=0i 1513293519000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/hddtemp.md b/src/writeData/components/telegrafPlugins/hddtemp.md index 0a9631db42..a528a8aa9f 100644 --- a/src/writeData/components/telegrafPlugins/hddtemp.md +++ b/src/writeData/components/telegrafPlugins/hddtemp.md @@ -1,8 +1,35 @@ # HDDtemp Input Plugin -This plugin reads data from hddtemp daemon. +This plugin reads data from a [hddtemp][hddtemp] daemon. -Hddtemp should be installed and its daemon running. +> [!IMPORTANT] +> This plugin requires `hddtemp` to be installed and running as a daemon. + +As the upstream project is not activly maintained anymore and various +distributions (e.g. Debian Bookwork and later) don't ship packages for `hddtemp` +anymore, the binary might not be available (e.g. in Ubuntu 22.04 or later). + +> [!TIP] +> As an alternative consider using the [smartctl][smartctl] relying on +> SMART information or [sensors][sensors] plugins to retrieve temperature data +> of your hard-drive. + +⭐ Telegraf v1.0.0 +🏷️ hardware, system +💻 all + +[hddtemp]: https://savannah.nongnu.org/projects/hddtemp/ +[smartctl]: /plugins/inputs/smartctl/README.md +[sensors]: /plugins/inputs/sensors/README.md + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -32,9 +59,9 @@ Hddtemp should be installed and its daemon running. - fields: - temperature -## Example output +## Example Output -```shell +```text hddtemp,source=server1,unit=C,status=,device=sdb,model=WDC\ WD740GD-00FLA1 temperature=43i 1481655647000000000 hddtemp,device=sdc,model=SAMSUNG\ HD103UI,unit=C,source=server1,status= temperature=38i 148165564700000000 hddtemp,device=sdd,model=SAMSUNG\ HD103UI,unit=C,source=server1,status= temperature=36i 1481655647000000000 diff --git a/src/writeData/components/telegrafPlugins/http.md b/src/writeData/components/telegrafPlugins/http.md index 6dfefe3493..db6bbd20c3 100644 --- a/src/writeData/components/telegrafPlugins/http.md +++ b/src/writeData/components/telegrafPlugins/http.md @@ -1,19 +1,41 @@ # HTTP Input Plugin -The HTTP input plugin collects metrics from one or more HTTP(S) endpoints. The -endpoint should have metrics formatted in one of the supported [input data -formats](https://github.com/influxdata/telegraf/tree/master/docs/DATA_FORMATS_INPUT.md). Each data format has its own -unique set of configuration options which can be added to the input -configuration. +This plugin collects metrics from one or more HTTP endpoints providing data in +one of the supported [data formats][data_formats]. + +⭐ Telegraf v1.6.0 +🏷️ applications, server +💻 all + +[data_formats]: /docs/DATA_FORMATS_INPUT.md + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `username`, `password`, +`token`, `headers`, and `cookie_auth_headers` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration ```toml @sample.conf # Read formatted metrics from one or more HTTP endpoints [[inputs.http]] - ## One or more URLs from which to read formatted metrics + ## One or more URLs from which to read formatted metrics. urls = [ - "http://localhost/metrics" + "http://localhost/metrics", + "http+unix:///run/user/420/podman/podman.sock:/d/v4.0.0/libpod/pods/json" ] ## HTTP method @@ -29,9 +51,10 @@ configuration. ## compress body or "identity" to apply no encoding. # content_encoding = "identity" - ## Optional file with Bearer token - ## file content is added as an Authorization header - # bearer_token = "/path/to/file" + ## Optional Bearer token settings to use for the API calls. + ## Use either the token itself or the token file if you need a token. + # token = "eyJhbGc...Qssw5c" + # token_file = "/path/to/file" ## Optional HTTP Basic Auth Credentials # username = "username" @@ -44,14 +67,32 @@ configuration. # scopes = ["urn:opc:idm:__myscopes__"] ## HTTP Proxy support + # use_system_proxy = false # http_proxy_url = "" ## Optional TLS Config - # tls_ca = "/etc/telegraf/ca.pem" - # tls_cert = "/etc/telegraf/cert.pem" - # tls_key = "/etc/telegraf/key.pem" + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = + ## Trusted root certificates for server + # tls_ca = "/path/to/cafile" + ## Used for TLS client certificate authentication + # tls_cert = "/path/to/certfile" + ## Used for TLS client certificate authentication + # tls_key = "/path/to/keyfile" + ## Password for the key file if it is encrypted + # tls_key_pwd = "" + ## Send the specified TLS server name via SNI + # tls_server_name = "kubernetes.example.com" ## Minimal TLS version to accept by the client # tls_min_version = "TLS12" + ## List of ciphers to accept, by default all secure ciphers will be accepted + ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values. + ## Use "all", "secure" and "insecure" to add all support ciphers, secure + ## suites or insecure suites respectively. + # tls_cipher_suites = ["secure"] + ## Renegotiation method, "never", "once" or "freely" + # tls_renegotiation_method = "never" ## Use TLS but skip chain & host verification # insecure_skip_verify = false @@ -79,13 +120,24 @@ configuration. ``` +HTTP requests over Unix domain sockets can be specified via the "http+unix" or +"https+unix" schemes. +Request URLs should have the following form: + +```text +http+unix:///path/to/service.sock:/api/endpoint +``` + +Note: The path to the Unix domain socket and the request endpoint are separated +by a colon (":"). + ## Example Output This example output was taken from [this instructional article][1]. -[1]: https://docs.influxdata.com/telegraf/latest/configure_plugins/input_plugins/using_http/ +[1]: https://docs.influxdata.com/telegraf/v1/configure_plugins/input_plugins/using_http/ -```shell +```text citibike,station_id=4703 eightd_has_available_keys=false,is_installed=1,is_renting=1,is_returning=1,legacy_id="4703",num_bikes_available=6,num_bikes_disabled=2,num_docks_available=26,num_docks_disabled=0,num_ebikes_available=0,station_status="active" 1641505084000000000 citibike,station_id=4704 eightd_has_available_keys=false,is_installed=1,is_renting=1,is_returning=1,legacy_id="4704",num_bikes_available=10,num_bikes_disabled=2,num_docks_available=36,num_docks_disabled=0,num_ebikes_available=0,station_status="active" 1641505084000000000 citibike,station_id=4711 eightd_has_available_keys=false,is_installed=1,is_renting=1,is_returning=1,legacy_id="4711",num_bikes_available=9,num_bikes_disabled=0,num_docks_available=36,num_docks_disabled=0,num_ebikes_available=1,station_status="active" 1641505084000000000 diff --git a/src/writeData/components/telegrafPlugins/http_listener_v2.md b/src/writeData/components/telegrafPlugins/http_listener_v2.md index 9f7abea70a..8bf744fbc7 100644 --- a/src/writeData/components/telegrafPlugins/http_listener_v2.md +++ b/src/writeData/components/telegrafPlugins/http_listener_v2.md @@ -1,23 +1,60 @@ # HTTP Listener v2 Input Plugin -HTTP Listener v2 is a service input plugin that listens for metrics sent via -HTTP. Metrics may be sent in any supported [data format][data_format]. For -metrics in [InfluxDB Line Protocol][line_protocol] it's recommended to use the -[`influxdb_listener`][influxdb_listener] or -[`influxdb_v2_listener`][influxdb_v2_listener] instead. +This plugin listens for metrics sent via HTTP in any of the supported +[data formats][data_formats]. -**Note:** The plugin previously known as `http_listener` has been renamed -`influxdb_listener`. If you would like Telegraf to act as a proxy/relay for -InfluxDB it is recommended to use [`influxdb_listener`][influxdb_listener] or -[`influxdb_v2_listener`][influxdb_v2_listener]. +> [!NOTE] +> If you would like Telegraf to act as a proxy/relay for InfluxDB v1 or +> InfluxDB v2 it is recommended to use the +> [influxdb__listener][influxdb_listener] or +> [influxdb_v2_listener][influxdb_v2_listener] plugin instead. + +⭐ Telegraf v1.9.0 +🏷️ server +💻 all + +[data_formats]: /docs/DATA_FORMATS_INPUT.md +[influxdb_listener]: /plugins/inputs/influxdb_listener/README.md +[influxdb_v2_listener]: /plugins/inputs/influxdb_v2_listener/README.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Generic HTTP write listener [[inputs.http_listener_v2]] - ## Address and port to host HTTP listener on - service_address = ":8080" + ## Address to host HTTP listener on + ## can be prefixed by protocol tcp, or unix if not provided defaults to tcp + ## if unix network type provided it should be followed by absolute path for unix socket + service_address = "tcp://:8080" + ## service_address = "tcp://:8443" + ## service_address = "unix:///tmp/telegraf.sock" + + ## Permission for unix sockets (only available for unix sockets) + ## This setting may not be respected by some platforms. To safely restrict + ## permissions it is recommended to place the socket into a previously + ## created directory with the desired permissions. + ## ex: socket_mode = "777" + # socket_mode = "" ## Paths to listen to. # paths = ["/telegraf"] @@ -28,6 +65,15 @@ InfluxDB it is recommended to use [`influxdb_listener`][influxdb_listener] or ## HTTP methods to accept. # methods = ["POST", "PUT"] + ## Optional HTTP headers + ## These headers are applied to the server that is listening for HTTP + ## requests and included in responses. + # http_headers = {"HTTP_HEADER" = "TAG_NAME"} + + ## HTTP Return Success Code + ## This is the HTTP code that will be returned on success + # http_success_code = 204 + ## maximum duration before timing out read of the request # read_timeout = "10s" ## maximum duration before timing out write of the response @@ -95,8 +141,3 @@ Send query params: ```shell curl -i -XGET 'http://localhost:8080/telegraf?host=server01&value=0.42' ``` - -[data_format]: /docs/DATA_FORMATS_INPUT.md -[influxdb_listener]: /plugins/inputs/influxdb_listener/README.md -[line_protocol]: https://docs.influxdata.com/influxdb/cloud/reference/syntax/line-protocol/ -[influxdb_v2_listener]: /plugins/inputs/influxdb_v2_listener/README.md diff --git a/src/writeData/components/telegrafPlugins/http_response.md b/src/writeData/components/telegrafPlugins/http_response.md index 780b836658..6a5eb8843b 100644 --- a/src/writeData/components/telegrafPlugins/http_response.md +++ b/src/writeData/components/telegrafPlugins/http_response.md @@ -1,6 +1,29 @@ # HTTP Response Input Plugin -This input plugin checks HTTP/HTTPS connections. +This plugin generates metrics from HTTP responses including the status code and +response statistics. + +⭐ Telegraf v0.12.1 +🏷️ server +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `username` and +`password` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -36,6 +59,12 @@ This input plugin checks HTTP/HTTPS connections. # {'fake':'data'} # ''' + ## Optional HTTP Request Body Form + ## Key value pairs to encode and set at URL form. Can be used with the POST + ## method + application/x-www-form-urlencoded content type to replicate the + ## POSTFORM method. + # body_form = { "key": "value" } + ## Optional name of the field that will contain the body of the response. ## By default it is set to an empty String indicating that the body's ## content won't be added @@ -67,6 +96,8 @@ This input plugin checks HTTP/HTTPS connections. # insecure_skip_verify = false ## Use the given name as the SNI server name on each URL # tls_server_name = "" + ## TLS renegotiation method, choose from "never", "once", "freely" + # tls_renegotiation_method = "never" ## HTTP Request Headers (all values must be strings) # [inputs.http_response.headers] @@ -80,6 +111,15 @@ This input plugin checks HTTP/HTTPS connections. ## Interface to use when dialing an address # interface = "eth0" + + ## Optional Cookie authentication + # cookie_auth_url = "https://localhost/authMe" + # cookie_auth_method = "POST" + # cookie_auth_username = "username" + # cookie_auth_password = "pa$$word" + # cookie_auth_body = '{"username": "user", "password": "pa$$word", "authenticate": "me"}' + ## cookie_auth_renewal not set or set to "0" will auth once and never renew the cookie + # cookie_auth_renewal = "5m" ``` ## Metrics @@ -110,7 +150,7 @@ This tag is used to expose network and plugin errors. HTTP errors are considered a successful connection. |Tag value |Corresponding field value|Description| --------------------------------|-------------------------|-----------| +|------------------------------|-------------------------|-----------| |success | 0 |The HTTP request completed, even if the HTTP code represents an error| |response_string_mismatch | 1 |The option `response_string_match` was used, and the body of the response didn't match the regex. HTTP errors with content in their body (like 4xx, 5xx) will trigger this error| |body_read_error | 2 |The option `response_string_match` was used, but the plugin wasn't able to read the body of the response. Responses with empty bodies (like 3xx, HEAD, etc) will trigger this error. Or the option `response_body_field` was used and the content of the response body was not a valid utf-8. Or the size of the body of the response exceeded the `response_body_max_size` | @@ -121,6 +161,17 @@ a successful connection. ## Example Output -```shell +```text http_response,method=GET,result=success,server=http://github.com,status_code=200 content_length=87878i,http_response_code=200i,response_time=0.937655534,result_code=0i,result_type="success" 1565839598000000000 ``` + +## Optional Cookie Authentication Settings + +The optional Cookie Authentication Settings will retrieve a cookie from the +given authorization endpoint, and use it in subsequent API requests. This is +useful for services that do not provide OAuth or Basic Auth authentication, +e.g. the [Tesla Powerwall API][tesla], which uses a Cookie Auth Body to retrieve +an authorization cookie. The Cookie Auth Renewal interval will renew the +authorization by retrieving a new cookie at the given interval. + +[tesla]: https://www.tesla.com/support/energy/powerwall/own/monitoring-from-home-network diff --git a/src/writeData/components/telegrafPlugins/hugepages.md b/src/writeData/components/telegrafPlugins/hugepages.md index fcd1d197fe..ecc84162e5 100644 --- a/src/writeData/components/telegrafPlugins/hugepages.md +++ b/src/writeData/components/telegrafPlugins/hugepages.md @@ -1,17 +1,30 @@ # Hugepages Input Plugin -Transparent Huge Pages (THP) is a Linux memory management system that reduces +This plugin gathers metrics from the Linux' +[Transparent Huge Pages (THP) memory management system][hugetlb] that reduces the overhead of Translation Lookaside Buffer (TLB) lookups on machines with -large amounts of memory by using larger memory pages. +large amounts of memory. -Consult [the website][website] for more details. +⭐ Telegraf v1.22.0 +🏷️ system +💻 linux -[website]: https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html +[hugetlb]: https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Gathers huge pages measurements. +# This plugin ONLY supports Linux [[inputs.hugepages]] ## Supported huge page types: ## - "root" - based on root huge page control directory: @@ -22,7 +35,9 @@ Consult [the website][website] for more details. # types = ["root", "per_node"] ``` -## Measurements +## Metrics + +### Measurements **The following measurements are supported by Hugepages plugin:** @@ -61,12 +76,11 @@ Consult [the website][website] for more details. ## Example Output ```text -$ ./telegraf -config telegraf.conf -input-filter hugepages -test -> hugepages_root,host=ubuntu,size_kb=1048576 free=0i,mempolicy=8i,overcommit=0i,reserved=0i,surplus=0i,total=8i 1646258020000000000 -> hugepages_root,host=ubuntu,size_kb=2048 free=883i,mempolicy=2048i,overcommit=0i,reserved=0i,surplus=0i,total=2048i 1646258020000000000 -> hugepages_per_node,host=ubuntu,size_kb=1048576,node=0 free=0i,surplus=0i,total=4i 1646258020000000000 -> hugepages_per_node,host=ubuntu,size_kb=2048,node=0 free=434i,surplus=0i,total=1024i 1646258020000000000 -> hugepages_per_node,host=ubuntu,size_kb=1048576,node=1 free=0i,surplus=0i,total=4i 1646258020000000000 -> hugepages_per_node,host=ubuntu,size_kb=2048,node=1 free=449i,surplus=0i,total=1024i 1646258020000000000 -> hugepages_meminfo,host=ubuntu anonymous_kb=0i,file_kb=0i,free=883i,reserved=0i,shared_kb=0i,size_kb=2048i,surplus=0i,tlb_kb=12582912i,total=2048i 1646258020000000000 +hugepages_root,host=ubuntu,size_kb=1048576 free=0i,mempolicy=8i,overcommit=0i,reserved=0i,surplus=0i,total=8i 1646258020000000000 +hugepages_root,host=ubuntu,size_kb=2048 free=883i,mempolicy=2048i,overcommit=0i,reserved=0i,surplus=0i,total=2048i 1646258020000000000 +hugepages_per_node,host=ubuntu,size_kb=1048576,node=0 free=0i,surplus=0i,total=4i 1646258020000000000 +hugepages_per_node,host=ubuntu,size_kb=2048,node=0 free=434i,surplus=0i,total=1024i 1646258020000000000 +hugepages_per_node,host=ubuntu,size_kb=1048576,node=1 free=0i,surplus=0i,total=4i 1646258020000000000 +hugepages_per_node,host=ubuntu,size_kb=2048,node=1 free=449i,surplus=0i,total=1024i 1646258020000000000 +hugepages_meminfo,host=ubuntu anonymous_kb=0i,file_kb=0i,free=883i,reserved=0i,shared_kb=0i,size_kb=2048i,surplus=0i,tlb_kb=12582912i,total=2048i 1646258020000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/icinga2.md b/src/writeData/components/telegrafPlugins/icinga2.md index 0d1fc74122..d2e8aa053c 100644 --- a/src/writeData/components/telegrafPlugins/icinga2.md +++ b/src/writeData/components/telegrafPlugins/icinga2.md @@ -1,12 +1,22 @@ # Icinga2 Input Plugin -This plugin gather services & hosts status using Icinga2 Remote API. +This plugin gather services and hosts status information using the +[Icinga2 remote API][remote_api]. -The icinga2 plugin uses the icinga2 remote API to gather status on running -services and hosts. You can read Icinga2's documentation for their remote API -[here][1]. +⭐ Telegraf v1.8.0 +🏷️ network, server, system +💻 all -[1]: https://docs.icinga.com/icinga2/latest/doc/module/icinga2/chapter/icinga2-api +[remote_api]: https://docs.icinga.com/icinga2/latest/doc/module/icinga2/chapter/icinga2-api + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -15,9 +25,15 @@ services and hosts. You can read Icinga2's documentation for their remote API [[inputs.icinga2]] ## Required Icinga2 server address # server = "https://localhost:5665" - - ## Required Icinga2 object type ("services" or "hosts") - # object_type = "services" + + ## Collected Icinga2 objects ("services", "hosts") + ## Specify at least one object to collect from /v1/objects endpoint. + # objects = ["services"] + + ## Collect metrics from /v1/status endpoint + ## Choose from: + ## "ApiListener", "CIB", "IdoMysqlConnection", "IdoPgsqlConnection" + # status = [] ## Credentials for basic HTTP authentication # username = "admin" @@ -34,22 +50,118 @@ services and hosts. You can read Icinga2's documentation for their remote API # insecure_skip_verify = true ``` -## Measurements & Fields - -- All measurements have the following fields: - - name (string) - - state_code (int) - -## Tags - -- All measurements have the following tags: - - check_command - The short name of the check command - - display_name - The name of the service or host - - state - The state: UP/DOWN for hosts, OK/WARNING/CRITICAL/UNKNOWN for services - - source - The icinga2 host - - port - The icinga2 port - - scheme - The icinga2 protocol (http/https) - - server - The server the check_command is running for +## Metrics + +- `icinga2_hosts` + - tags + - `check_command` - The short name of the check command + - `display_name` - The name of the host + - `state` - The state: UP/DOWN + - `source` - The icinga2 host + - `port` - The icinga2 port + - `scheme` - The icinga2 protocol (http/https) + - `server` - The server the check_command is running for + - fields + - `name` (string) + - `state_code` (int) +- `icinga2_services` + - tags + - `check_command` - The short name of the check command + - `display_name` - The name of the service + - `state` - The state: OK/WARNING/CRITICAL/UNKNOWN for services + - `source` - The icinga2 host + - `port` - The icinga2 port + - `scheme` - The icinga2 protocol (http/https) + - `server` - The server the check_command is running for + - fields + - `name` (string) + - `state_code` (int) +- `icinga2_status` + - component: + - `ApiListener` + - tags + - `component` name + - fields + - `api_num_conn_endpoints` + - `api_num_endpoint` + - `api_num_http_clients` + - `api_num_json_rpc_anonymous_clients` + - `api_num_json_rpc_relay_queue_item_rate` + - `api_num_json_rpc_relay_queue_items` + - `api_num_json_rpc_sync_queue_item_rate` + - `api_num_json_rpc_sync_queue_items` + - `api_num_json_rpc_work_queue_item_rate` + - `api_num_not_conn_endpoints` + - `CIB` + - tags + - `component` name + - fields + - `active_host_checks` + - `active_host_checks_15min` + - `active_host_checks_1min` + - `active_host_checks_5min` + - `active_service_checks` + - `active_service_checks_15min` + - `active_service_checks_1min` + - `active_service_checks_5min` + - `avg_execution_time` + - `avg_latency` + - `current_concurrent_checks` + - `current_pending_callbacks` + - `max_execution_time` + - `max_latency` + - `min_execution_time` + - `min_latency` + - `num_hosts_acknowledged` + - `num_hosts_down` + - `num_hosts_flapping` + - `num_hosts_handled` + - `num_hosts_in_downtime` + - `num_hosts_pending` + - `num_hosts_problem` + - `num_hosts_unreachable` + - `num_hosts_up` + - `num_services_acknowledged` + - `num_services_critical` + - `num_services_flapping` + - `num_services_handled` + - `num_services_in_downtime` + - `num_services_ok` + - `num_services_pending` + - `num_services_problem` + - `num_services_unknown` + - `num_services_unreachable` + - `num_services_warning` + - `passive_host_checks` + - `passive_host_checks_15min` + - `passive_host_checks_1min` + - `passive_host_checks_5min` + - `passive_service_checks` + - `passive_service_checks_15min` + - `passive_service_checks_1min` + - `passive_service_checks_5min` + - `remote_check_queue` + - `uptime` + - `IdoMysqlConnection` + - tags + - `component` name + - fields + - `mysql_queries_1min` + - `mysql_queries_5mins` + - `mysql_queries_15mins` + - `mysql_queries_rate` + - `mysql_query_queue_item_rate` + - `mysql_query_queue_items` + - `IdoPgsqlConnection` + - tags + - `component` name + - fields + - `pgsql_queries_1min` + - `pgsql_queries_5mins` + - `pgsql_queries_15mins` + - `pgsql_queries_rate` + - `pgsql_query_queue_item_rate` + - `pgsql_query_queue_items` ## Sample Queries @@ -63,6 +175,5 @@ SELECT * FROM "icinga2_services" WHERE state_code = 3 AND time > now() - 24h // ## Example Output ```text -$ ./telegraf -config telegraf.conf -input-filter icinga2 -test icinga2_hosts,display_name=router-fr.eqx.fr,check_command=hostalive-custom,host=test-vm,source=localhost,port=5665,scheme=https,state=ok name="router-fr.eqx.fr",state=0 1492021603000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/infiniband.md b/src/writeData/components/telegrafPlugins/infiniband.md index fb630ae3a4..f305f6a076 100644 --- a/src/writeData/components/telegrafPlugins/infiniband.md +++ b/src/writeData/components/telegrafPlugins/infiniband.md @@ -3,15 +3,32 @@ This plugin gathers statistics for all InfiniBand devices and ports on the system. These are the counters that can be found in `/sys/class/infiniband//port//counters/` +and RDMA counters can be found in +`/sys/class/infiniband//ports//hw_counters/` -**Supported Platforms**: Linux +⭐ Telegraf v1.14.0 +🏷️ network +💻 linux + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Gets counters from all InfiniBand cards and ports installed +# This plugin ONLY supports Linux [[inputs.infiniband]] # no configuration + + ## Collect RDMA counters + # gather_rdma = false ``` ## Metrics @@ -19,15 +36,20 @@ system. These are the counters that can be found in Actual metrics depend on the InfiniBand devices, the plugin uses a simple mapping from counter -> counter value. -[Information about the counters][counters] collected is provided by Mellanox. +[Information about the counters][counters] collected is provided by Nvidia. + +[counters]: https://enterprise-support.nvidia.com/s/article/understanding-mlx5-linux-counters-and-status-parameters -[counters]: https://community.mellanox.com/s/article/understanding-mlx5-linux-counters-and-status-parameters +The following fields are emitted by the plugin when selecting `counters`: - infiniband - tags: - device - port - fields: + + ### Infiniband Counters + - excessive_buffer_overrun_errors (integer) - link_downed (integer) - link_error_recovery (integer) @@ -50,8 +72,41 @@ mapping from counter -> counter value. - unicast_xmit_packets (integer) - VL15_dropped (integer) + ### Infiniband RDMA counters + + - duplicate_request (integer) + - implied_nak_seq_err (integer) + - lifespan (integer) + - local_ack_timeout_err (integer) + - np_cnp_sent (integer) + - np_ecn_marked_roce_packets (integer) + - out_of_buffer (integer) + - out_of_sequence (integer) + - packet_seq_err (integer) + - req_cqe_error (integer) + - req_cqe_flush_error (integer) + - req_remote_access_errors (integer) + - req_remote_invalid_request (integer) + - resp_cqe_error (integer) + - resp_cqe_flush_error (integer) + - resp_local_length_error (integer) + - resp_remote_access_errors (integer) + - rnr_nak_retry_err (integer) + - roce_adp_retrans (integer) + - roce_adp_retrans_to (integer) + - roce_slow_restart (integer) + - roce_slow_restart_cnps (integer) + - roce_slow_restart_trans (integer) + - rp_cnp_handled (integer) + - rp_cnp_ignored (integer) + - rx_atomic_requests (integer) + - rx_icrc_encapsulated (integer) + - rx_read_requests (integer) + - rx_write_requests (integer) + ## Example Output -```shell -infiniband,device=mlx5_0,port=1 VL15_dropped=0i,excessive_buffer_overrun_errors=0i,link_downed=0i,link_error_recovery=0i,local_link_integrity_errors=0i,multicast_rcv_packets=0i,multicast_xmit_packets=0i,port_rcv_constraint_errors=0i,port_rcv_data=237159415345822i,port_rcv_errors=0i,port_rcv_packets=801977655075i,port_rcv_remote_physical_errors=0i,port_rcv_switch_relay_errors=0i,port_xmit_constraint_errors=0i,port_xmit_data=238334949937759i,port_xmit_discards=0i,port_xmit_packets=803162651391i,port_xmit_wait=4294967295i,symbol_error=0i,unicast_rcv_packets=801977655075i,unicast_xmit_packets=803162651391i 1573125558000000000 +```text +infiniband,device=mlx5_bond_0,host=hop-r640-12,port=1 port_xmit_data=85378896588i,VL15_dropped=0i,port_rcv_packets=34914071i,port_rcv_data=34600185253i,port_xmit_discards=0i,link_downed=0i,local_link_integrity_errors=0i,symbol_error=0i,link_error_recovery=0i,multicast_rcv_packets=0i,multicast_xmit_packets=0i,unicast_xmit_packets=82002535i,excessive_buffer_overrun_errors=0i,port_rcv_switch_relay_errors=0i,unicast_rcv_packets=34914071i,port_xmit_constraint_errors=0i,port_rcv_errors=0i,port_xmit_wait=0i,port_rcv_remote_physical_errors=0i,port_rcv_constraint_errors=0i,port_xmit_packets=82002535i 1737652060000000000 +infiniband,device=mlx5_bond_0,host=hop-r640-12,port=1 local_ack_timeout_err=0i,lifespan=10i,out_of_buffer=0i,resp_remote_access_errors=0i,resp_local_length_error=0i,np_cnp_sent=0i,roce_slow_restart=0i,rx_read_requests=6000i,duplicate_request=0i,resp_cqe_error=0i,rx_write_requests=19000i,roce_slow_restart_cnps=0i,rx_icrc_encapsulated=0i,rnr_nak_retry_err=0i,roce_adp_retrans=0i,out_of_sequence=0i,req_remote_access_errors=0i,roce_slow_restart_trans=0i,req_remote_invalid_request=0i,req_cqe_error=0i,resp_cqe_flush_error=0i,packet_seq_err=0i,roce_adp_retrans_to=0i,np_ecn_marked_roce_packets=0i,rp_cnp_handled=0i,implied_nak_seq_err=0i,rp_cnp_ignored=0i,req_cqe_flush_error=0i,rx_atomic_requests=0i 1737652060000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/influxdb.md b/src/writeData/components/telegrafPlugins/influxdb.md index f5449298a1..933fae2737 100644 --- a/src/writeData/components/telegrafPlugins/influxdb.md +++ b/src/writeData/components/telegrafPlugins/influxdb.md @@ -1,12 +1,38 @@ # InfluxDB Input Plugin -The InfluxDB plugin will collect metrics on the given InfluxDB servers. Read -our [documentation][1] for detailed information about `influxdb` metrics. +This plugin collects metrics on the given InfluxDB v1 servers from the +`/debug/vars` endpoint. Read the [documentation][doc_v1] for detailed +information about `influxdb` metrics. -This plugin can also gather metrics from endpoints that expose -InfluxDB-formatted endpoints. See below for more information. +Additionally, this plugin can gather metrics from endpoints exposing +InfluxDB-formatted endpoints. -[1]: https://docs.influxdata.com/platform/monitoring/influxdata-platform/tools/measurements-internal/ +> [!TIP] +> To gather [InfluxDB v2 metrics][docs_v2] use the +> [prometheus plugin][prometheus] with +> +> ```toml +> [[inputs.prometheus]] +> urls = ["http://localhost:8086/metrics"] +> metric_version = 1 +> ``` + +⭐ Telegraf v0.2.5 +🏷️ datastore +💻 all + +[doc_v1]: https://docs.influxdata.com/platform/monitoring/influxdata-platform/tools/measurements-internal/ +[docs_v2]: https://docs.influxdata.com/influxdb/latest/reference/internals/metrics/ +[prometheus]: /plugins/inputs/prometheus/README.md + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -38,10 +64,26 @@ InfluxDB-formatted endpoints. See below for more information. timeout = "5s" ``` -## Measurements & Fields +## InfluxDB-formatted endpoints -**Note:** The measurements and fields included in this plugin are dynamically -built from the InfluxDB source, and may vary between versions: +The influxdb plugin can collect InfluxDB-formatted data from JSON endpoints. +Whether associated with an Influx database or not. + +With a configuration of: + +```toml +[[inputs.influxdb]] + urls = [ + "http://127.0.0.1:8086/debug/vars", + "http://192.168.2.1:8086/debug/vars" + ] +``` + +## Metrics + +> [!NOTE] +> The measurements and fields included in this plugin are dynamically +> built from the InfluxDB source, and may vary between versions. - **influxdb_ae** _(Enterprise Only)_ : Statistics related to the Anti-Entropy (AE) engine in InfluxDB Enterprise clusters. @@ -384,47 +426,34 @@ built from the InfluxDB source, and may vary between versions: ```sh telegraf --config ~/ws/telegraf.conf --input-filter influxdb --test -* Plugin: influxdb, Collection 1 -> influxdb_database,database=_internal,host=tyrion,url=http://localhost:8086/debug/vars numMeasurements=10,numSeries=29 1463590500247354636 -> influxdb_httpd,bind=:8086,host=tyrion,url=http://localhost:8086/debug/vars req=7,reqActive=1,reqDurationNs=14227734 1463590500247354636 -> influxdb_measurement,database=_internal,host=tyrion,measurement=database,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 -> influxdb_measurement,database=_internal,host=tyrion,measurement=httpd,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 -> influxdb_measurement,database=_internal,host=tyrion,measurement=measurement,url=http://localhost:8086/debug/vars numSeries=10 1463590500247354636 -> influxdb_measurement,database=_internal,host=tyrion,measurement=runtime,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 -> influxdb_measurement,database=_internal,host=tyrion,measurement=shard,url=http://localhost:8086/debug/vars numSeries=4 1463590500247354636 -> influxdb_measurement,database=_internal,host=tyrion,measurement=subscriber,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 -> influxdb_measurement,database=_internal,host=tyrion,measurement=tsm1_cache,url=http://localhost:8086/debug/vars numSeries=4 1463590500247354636 -> influxdb_measurement,database=_internal,host=tyrion,measurement=tsm1_filestore,url=http://localhost:8086/debug/vars numSeries=2 1463590500247354636 -> influxdb_measurement,database=_internal,host=tyrion,measurement=tsm1_wal,url=http://localhost:8086/debug/vars numSeries=4 1463590500247354636 -> influxdb_measurement,database=_internal,host=tyrion,measurement=write,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 -> influxdb_memstats,host=tyrion,url=http://localhost:8086/debug/vars alloc=7642384i,buck_hash_sys=1463471i,frees=1169558i,gc_sys=653312i,gc_cpu_fraction=0.00003825652361068311,heap_alloc=7642384i,heap_idle=9912320i,heap_inuse=9125888i,heap_objects=48276i,heap_released=0i,heap_sys=19038208i,last_gc=1463590480877651621i,lookups=90i,mallocs=1217834i,mcache_inuse=4800i,mcache_sys=16384i,mspan_inuse=70920i,mspan_sys=81920i,next_gc=11679787i,num_gc=141i,other_sys=1244233i,pause_total_ns=24034027i,stack_inuse=884736i,stack_sys=884736i,sys=23382264i,total_alloc=679012200i 1463590500277918755 -> influxdb_shard,database=_internal,engine=tsm1,host=tyrion,id=4,path=/Users/sparrc/.influxdb/data/_internal/monitor/4,retentionPolicy=monitor,url=http://localhost:8086/debug/vars fieldsCreate=65,seriesCreate=26,writePointsOk=7274,writeReq=280 1463590500247354636 -> influxdb_subscriber,host=tyrion,url=http://localhost:8086/debug/vars pointsWritten=7274 1463590500247354636 -> influxdb_tsm1_cache,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/1,retentionPolicy=monitor,url=http://localhost:8086/debug/vars WALCompactionTimeMs=0,cacheAgeMs=2809192,cachedBytes=0,diskBytes=0,memBytes=0,snapshotCount=0 1463590500247354636 -> influxdb_tsm1_cache,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/2,retentionPolicy=monitor,url=http://localhost:8086/debug/vars WALCompactionTimeMs=0,cacheAgeMs=2809184,cachedBytes=0,diskBytes=0,memBytes=0,snapshotCount=0 1463590500247354636 -> influxdb_tsm1_cache,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/3,retentionPolicy=monitor,url=http://localhost:8086/debug/vars WALCompactionTimeMs=0,cacheAgeMs=2809180,cachedBytes=0,diskBytes=0,memBytes=42368,snapshotCount=0 1463590500247354636 -> influxdb_tsm1_cache,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/4,retentionPolicy=monitor,url=http://localhost:8086/debug/vars WALCompactionTimeMs=0,cacheAgeMs=2799155,cachedBytes=0,diskBytes=0,memBytes=331216,snapshotCount=0 1463590500247354636 -> influxdb_tsm1_filestore,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/1,retentionPolicy=monitor,url=http://localhost:8086/debug/vars diskBytes=37892 1463590500247354636 -> influxdb_tsm1_filestore,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/2,retentionPolicy=monitor,url=http://localhost:8086/debug/vars diskBytes=52907 1463590500247354636 -> influxdb_tsm1_wal,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/wal/_internal/monitor/1,retentionPolicy=monitor,url=http://localhost:8086/debug/vars currentSegmentDiskBytes=0,oldSegmentsDiskBytes=0 1463590500247354636 -> influxdb_tsm1_wal,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/wal/_internal/monitor/2,retentionPolicy=monitor,url=http://localhost:8086/debug/vars currentSegmentDiskBytes=0,oldSegmentsDiskBytes=0 1463590500247354636 -> influxdb_tsm1_wal,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/wal/_internal/monitor/3,retentionPolicy=monitor,url=http://localhost:8086/debug/vars currentSegmentDiskBytes=0,oldSegmentsDiskBytes=65651 1463590500247354636 -> influxdb_tsm1_wal,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/wal/_internal/monitor/4,retentionPolicy=monitor,url=http://localhost:8086/debug/vars currentSegmentDiskBytes=495687,oldSegmentsDiskBytes=0 1463590500247354636 -> influxdb_write,host=tyrion,url=http://localhost:8086/debug/vars pointReq=7274,pointReqLocal=7274,req=280,subWriteOk=280,writeOk=280 1463590500247354636 -> influxdb_shard,host=tyrion n_shards=4i 1463590500247354636 ``` -## InfluxDB-formatted endpoints - -The influxdb plugin can collect InfluxDB-formatted data from JSON endpoints. -Whether associated with an Influx database or not. - -With a configuration of: - -```toml -[[inputs.influxdb]] - urls = [ - "http://127.0.0.1:8086/debug/vars", - "http://192.168.2.1:8086/debug/vars" - ] +```text +influxdb_database,database=_internal,host=tyrion,url=http://localhost:8086/debug/vars numMeasurements=10,numSeries=29 1463590500247354636 +influxdb_httpd,bind=:8086,host=tyrion,url=http://localhost:8086/debug/vars req=7,reqActive=1,reqDurationNs=14227734 1463590500247354636 +influxdb_measurement,database=_internal,host=tyrion,measurement=database,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 +influxdb_measurement,database=_internal,host=tyrion,measurement=httpd,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 +influxdb_measurement,database=_internal,host=tyrion,measurement=measurement,url=http://localhost:8086/debug/vars numSeries=10 1463590500247354636 +influxdb_measurement,database=_internal,host=tyrion,measurement=runtime,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 +influxdb_measurement,database=_internal,host=tyrion,measurement=shard,url=http://localhost:8086/debug/vars numSeries=4 1463590500247354636 +influxdb_measurement,database=_internal,host=tyrion,measurement=subscriber,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 +influxdb_measurement,database=_internal,host=tyrion,measurement=tsm1_cache,url=http://localhost:8086/debug/vars numSeries=4 1463590500247354636 +influxdb_measurement,database=_internal,host=tyrion,measurement=tsm1_filestore,url=http://localhost:8086/debug/vars numSeries=2 1463590500247354636 +influxdb_measurement,database=_internal,host=tyrion,measurement=tsm1_wal,url=http://localhost:8086/debug/vars numSeries=4 1463590500247354636 +influxdb_measurement,database=_internal,host=tyrion,measurement=write,url=http://localhost:8086/debug/vars numSeries=1 1463590500247354636 +influxdb_memstats,host=tyrion,url=http://localhost:8086/debug/vars alloc=7642384i,buck_hash_sys=1463471i,frees=1169558i,gc_sys=653312i,gc_cpu_fraction=0.00003825652361068311,heap_alloc=7642384i,heap_idle=9912320i,heap_inuse=9125888i,heap_objects=48276i,heap_released=0i,heap_sys=19038208i,last_gc=1463590480877651621i,lookups=90i,mallocs=1217834i,mcache_inuse=4800i,mcache_sys=16384i,mspan_inuse=70920i,mspan_sys=81920i,next_gc=11679787i,num_gc=141i,other_sys=1244233i,pause_total_ns=24034027i,stack_inuse=884736i,stack_sys=884736i,sys=23382264i,total_alloc=679012200i 1463590500277918755 +influxdb_shard,database=_internal,engine=tsm1,host=tyrion,id=4,path=/Users/sparrc/.influxdb/data/_internal/monitor/4,retentionPolicy=monitor,url=http://localhost:8086/debug/vars fieldsCreate=65,seriesCreate=26,writePointsOk=7274,writeReq=280 1463590500247354636 +influxdb_subscriber,host=tyrion,url=http://localhost:8086/debug/vars pointsWritten=7274 1463590500247354636 +influxdb_tsm1_cache,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/1,retentionPolicy=monitor,url=http://localhost:8086/debug/vars WALCompactionTimeMs=0,cacheAgeMs=2809192,cachedBytes=0,diskBytes=0,memBytes=0,snapshotCount=0 1463590500247354636 +influxdb_tsm1_cache,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/2,retentionPolicy=monitor,url=http://localhost:8086/debug/vars WALCompactionTimeMs=0,cacheAgeMs=2809184,cachedBytes=0,diskBytes=0,memBytes=0,snapshotCount=0 1463590500247354636 +influxdb_tsm1_cache,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/3,retentionPolicy=monitor,url=http://localhost:8086/debug/vars WALCompactionTimeMs=0,cacheAgeMs=2809180,cachedBytes=0,diskBytes=0,memBytes=42368,snapshotCount=0 1463590500247354636 +influxdb_tsm1_cache,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/4,retentionPolicy=monitor,url=http://localhost:8086/debug/vars WALCompactionTimeMs=0,cacheAgeMs=2799155,cachedBytes=0,diskBytes=0,memBytes=331216,snapshotCount=0 1463590500247354636 +influxdb_tsm1_filestore,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/1,retentionPolicy=monitor,url=http://localhost:8086/debug/vars diskBytes=37892 1463590500247354636 +influxdb_tsm1_filestore,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/data/_internal/monitor/2,retentionPolicy=monitor,url=http://localhost:8086/debug/vars diskBytes=52907 1463590500247354636 +influxdb_tsm1_wal,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/wal/_internal/monitor/1,retentionPolicy=monitor,url=http://localhost:8086/debug/vars currentSegmentDiskBytes=0,oldSegmentsDiskBytes=0 1463590500247354636 +influxdb_tsm1_wal,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/wal/_internal/monitor/2,retentionPolicy=monitor,url=http://localhost:8086/debug/vars currentSegmentDiskBytes=0,oldSegmentsDiskBytes=0 1463590500247354636 +influxdb_tsm1_wal,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/wal/_internal/monitor/3,retentionPolicy=monitor,url=http://localhost:8086/debug/vars currentSegmentDiskBytes=0,oldSegmentsDiskBytes=65651 1463590500247354636 +influxdb_tsm1_wal,database=_internal,host=tyrion,path=/Users/sparrc/.influxdb/wal/_internal/monitor/4,retentionPolicy=monitor,url=http://localhost:8086/debug/vars currentSegmentDiskBytes=495687,oldSegmentsDiskBytes=0 1463590500247354636 +influxdb_write,host=tyrion,url=http://localhost:8086/debug/vars pointReq=7274,pointReqLocal=7274,req=280,subWriteOk=280,writeOk=280 1463590500247354636 +influxdb_shard,host=tyrion n_shards=4i 1463590500247354636 ``` diff --git a/src/writeData/components/telegrafPlugins/influxdb_listener.md b/src/writeData/components/telegrafPlugins/influxdb_listener.md index 7fb12b358e..71a7d45ad2 100644 --- a/src/writeData/components/telegrafPlugins/influxdb_listener.md +++ b/src/writeData/components/telegrafPlugins/influxdb_listener.md @@ -1,22 +1,50 @@ # InfluxDB Listener Input Plugin -InfluxDB Listener is a service input plugin that listens for requests sent -according to the [InfluxDB HTTP API][influxdb_http_api]. The intent of the -plugin is to allow Telegraf to serve as a proxy/router for the `/write` -endpoint of the InfluxDB HTTP API. +This plugin listens for requests sent according to the +[InfluxDB HTTP v1 API][influxdb_http_api]. This allows Telegraf to serve as a +proxy/router for the `/write` endpoint of the InfluxDB HTTP API. -**Note:** This plugin was previously known as `http_listener`. If you wish to -send general metrics via HTTP it is recommended to use the -[`http_listener_v2`][http_listener_v2] instead. +> [!NOTE] +> This plugin was previously known as `http_listener`. If you wish to +> send general metrics via HTTP it is recommended to use the +> [`http_listener_v2`][http_listener_v2] instead. The `/write` endpoint supports the `precision` query parameter and can be set to one of `ns`, `u`, `ms`, `s`, `m`, `h`. All other parameters are ignored and defer to the output plugins configuration. -When chaining Telegraf instances using this plugin, CREATE DATABASE requests -receive a 200 OK response with message body `{"results":[]}` but they are not -relayed. The output configuration of the Telegraf instance which ultimately -submits data to InfluxDB determines the destination database. +> [!IMPORTANT] +> When chaining Telegraf instances using this plugin, `CREATE DATABASE` requests +> receive a `200 OK` response with message body `{"results":[]}` but they are +> not relayed. The configuration of the output plugin ultimately submits data +> to InfluxDB determines the destination database. + +⭐ Telegraf v1.9.0 +🏷️ datastore +💻 all + +[influxdb_http_api]: https://docs.influxdata.com/influxdb/v1.8/guides/write_data/ +[http_listener_v2]: /plugins/inputs/http_listener_v2/README.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -35,10 +63,6 @@ submits data to InfluxDB determines the destination database. ## 0 means to use the default of 32MiB. max_body_size = 0 - ## Maximum line size allowed to be sent in bytes. - ## deprecated in 1.14; parser now handles lines of unlimited length and option is ignored - # max_line_size = 0 - ## Set one or more allowed client CA certificate file names to ## enable mutually authenticated TLS connections tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] @@ -59,11 +83,23 @@ submits data to InfluxDB determines the destination database. ## the value of this tag name. # retention_policy_tag = "" - ## Optional username and password to accept for HTTP basic authentication. + ## Optional username and password to accept for HTTP basic authentication + ## or authentication token. ## You probably want to make sure you have TLS configured above for this. + ## Use these options for the authentication token in the form + ## Authentication: Token : # basic_username = "foobar" # basic_password = "barfoo" + ## Optional JWT token authentication for HTTP requests + ## Please see the documentation at + ## https://docs.influxdata.com/influxdb/v1.8/administration/authentication_and_authorization/#authenticate-using-jwt-tokens + ## for further details. + ## Please note: Token authentication and basic authentication cannot be used + ## at the same time. + # token_shared_secret = "" + # token_username = "" + ## Influx line protocol parser ## 'internal' is the default. 'upstream' is a newer parser that is faster ## and more memory efficient. @@ -74,13 +110,16 @@ submits data to InfluxDB determines the destination database. Metrics are created from InfluxDB Line Protocol in the request body. -## Troubleshooting +## Example Output -**Example Query:** +Using ```sh curl -i -XPOST 'http://localhost:8186/write' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000' ``` -[influxdb_http_api]: https://docs.influxdata.com/influxdb/latest/write_data/ -[http_listener_v2]: /plugins/inputs/http_listener_v2/README.md +will produce the following metric + +```text +cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/influxdb_v2_listener.md b/src/writeData/components/telegrafPlugins/influxdb_v2_listener.md index 0da74db360..2c35eb940e 100644 --- a/src/writeData/components/telegrafPlugins/influxdb_v2_listener.md +++ b/src/writeData/components/telegrafPlugins/influxdb_v2_listener.md @@ -1,15 +1,46 @@ # InfluxDB V2 Listener Input Plugin -InfluxDB V2 Listener is a service input plugin that listens for requests sent -according to the [InfluxDB HTTP API][influxdb_http_api]. The intent of the -plugin is to allow Telegraf to serve as a proxy/router for the `/api/v2/write` -endpoint of the InfluxDB HTTP API. +This plugin listens for requests sent according to the +[InfluxDB HTTP v2 API][influxdb_http_api]. This allows Telegraf to serve as a +proxy/router for the `/api/v2/write` endpoint of the InfluxDB HTTP API. The `/api/v2/write` endpoint supports the `precision` query parameter and can be set to one of `ns`, `us`, `ms`, `s`. All other parameters are ignored and defer to the output plugins configuration. -Telegraf minimum version: Telegraf 1.16.0 +⭐ Telegraf v1.16.0 +🏷️ datastore +💻 all + +[influxdb_http_api]: https://docs.influxdata.com/influxdb/v2/api/ + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `token` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -20,6 +51,16 @@ Telegraf minimum version: Telegraf 1.16.0 ## (Double check the port. Could be 9999 if using OSS Beta) service_address = ":8086" + ## Maximum undelivered metrics before rate limit kicks in. + ## When the rate limit kicks in, HTTP status 429 will be returned. + ## 0 disables rate limiting + # max_undelivered_metrics = 0 + + ## Maximum duration before timing out read of the request + # read_timeout = "10s" + ## Maximum duration before timing out write of the response + # write_timeout = "10s" + ## Maximum allowed HTTP request body size in bytes. ## 0 means to use the default of 32MiB. # max_body_size = "32MiB" @@ -52,12 +93,16 @@ Telegraf minimum version: Telegraf 1.16.0 Metrics are created from InfluxDB Line Protocol in the request body. -## Troubleshooting +## Example Output -**Example Query:** +Using ```sh curl -i -XPOST 'http://localhost:8186/api/v2/write' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000' ``` -[influxdb_http_api]: https://docs.influxdata.com/influxdb/latest/api/ +will produce the following metric + +```text +cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/intel_pmu.md b/src/writeData/components/telegrafPlugins/intel_pmu.md index 659e4fa475..9a51754e05 100644 --- a/src/writeData/components/telegrafPlugins/intel_pmu.md +++ b/src/writeData/components/telegrafPlugins/intel_pmu.md @@ -1,27 +1,59 @@ # Intel Performance Monitoring Unit Plugin -This input plugin exposes Intel PMU (Performance Monitoring Unit) metrics -available through [Linux Perf](https://perf.wiki.kernel.org/index.php/Main_Page) -subsystem. +This plugin gathers Intel Performance Monitoring Unit metrics available via the +[Linux Perf][linux_perf] subsystem. -PMU metrics gives insight into performance and health of IA processor's internal -components, including core and uncore units. With the number of cores increasing -and processor topology getting more complex the insight into those metrics is -vital to assure the best CPU performance and utilization. +PMU metrics provide insights into performance and health of IA processors' +internal components, including core and uncore units. With the number of cores +increasing and processor topology getting more complex the insight into those +metrics is vital to assure the best CPU performance and utilization. Performance counters are CPU hardware registers that count hardware events such as instructions executed, cache-misses suffered, or branches mispredicted. They form a basis for profiling applications to trace dynamic control flow and identify hotspots. +⭐ Telegraf v1.21.0 +🏷️ hardware, system +💻 linux + +[linux_perf]: https://perf.wiki.kernel.org/index.php/Main_Page + +## Requirements + +The plugin uses the [iaevents library][iaevents_lib] that eases accessing the +Linux kernel's perf interface. + +> [!IMPORTANT] +> The Intel PMU plugin is only intended for use on **Linux 64-bit** systems. + +Event definition JSON files for specific architectures can be found at the +[Github repository][repo]. Download the event definitions appropriate for your +system e.g. using the [`event_download.py` PMU tool][pmu_tools] and keep them +in a safe place on your system. + +[iaevents_lib]: https://github.com/intel/iaevents +[repo]: https://github.com/intel/perfmon +[pmu_tools]: https://github.com/andikleen/pmu-tools + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf # Intel Performance Monitoring Unit plugin exposes Intel PMU metrics available through Linux Perf subsystem +# This plugin ONLY supports Linux on amd64 [[inputs.intel_pmu]] ## List of filesystem locations of JSON files that contain PMU event definitions. event_definitions = ["/var/cache/pmu/GenuineIntel-6-55-4-core.json", "/var/cache/pmu/GenuineIntel-6-55-4-uncore.json"] - + ## List of core events measurement entities. There can be more than one core_events sections. [[inputs.intel_pmu.core_events]] ## List of events to be counted. Event names shall match names from event_definitions files. @@ -94,20 +126,6 @@ where: | G | perf_event_attr.exclude_hv | don't count hypervisor | | D | perf_event_attr.pinned | must always be on PMU | -## Requirements - -The plugin is using [iaevents](https://github.com/intel/iaevents) library which -is a golang package that makes accessing the Linux kernel's perf interface -easier. - -Intel PMU plugin, is only intended for use on **linux 64-bit** systems. - -Event definition JSON files for specific architectures can be found at -[01.org](https://download.01.org/perfmon/). A script to download the event -definitions that are appropriate for your system (event_download.py) is -available at [pmu-tools](https://github.com/andikleen/pmu-tools). Please keep -these files in a safe place on your system. - ## Measuring Plugin allows measuring both core and uncore events. During plugin @@ -192,7 +210,7 @@ On each Telegraf interval, Intel PMU plugin transmits following data: | unit | name of event-capable PMU that the event was counted for, as listed in /sys/bus/event_source/devices/ e.g. uncore_cbox_1, uncore_imc_1 etc. Present for non-aggregated uncore events only | | events_tag| (optional) tag as defined in "intel_pmu.uncore_events" configuration element | -## Example outputs +## Example Output Event group: @@ -219,7 +237,7 @@ pmu_metric,event=UNC_CBO_XSNP_RESPONSE.MISS_XCORE,host=xyz,socket=0,unit=uncore_ Uncore event aggregated: ```text -pmu_metric,event=UNC_CBO_XSNP_RESPONSE.MISS_XCORE,host=xyz,socket=0,unit_type=cbox enabled=13199712335i,running=13199712335i,raw=467485i,scaled=467485i 1621254412000000000 +pmu_metric,event=UNC_CBO_XSNP_RESPONSE.MISS_XCORE,host=xyz,socket=0,unit_type=cbox enabled=13199712335i,running=13199712335i,raw=467485i,scaled=467485i 1621254412000000000 ``` Time multiplexing: @@ -234,3 +252,10 @@ pmu_metric,cpu=0,event=L1D_PEND_MISS.PENDING_CYCLES,host=xyz raw=18767833i,scale ``` [man]: https://man7.org/linux/man-pages/man2/perf_event_open.2.html + +## Changelog + +| Version | Description | +| --- | --- | +| v1.0.0 | Initial version | +| v1.1.0 | Added support for [new perfmon event format](https://github.com/intel/perfmon/issues/22). Old event format is still accepted (warn message will be printed in the log) | diff --git a/src/writeData/components/telegrafPlugins/intel_powerstat.md b/src/writeData/components/telegrafPlugins/intel_powerstat.md index 0eba8f4862..6d03d16179 100644 --- a/src/writeData/components/telegrafPlugins/intel_powerstat.md +++ b/src/writeData/components/telegrafPlugins/intel_powerstat.md @@ -1,30 +1,234 @@ # Intel PowerStat Input Plugin -This input plugin monitors power statistics on Intel-based platforms and -assumes presence of Linux based OS. +This plugin gathers power statistics on Intel-based platforms providing insights +into power saving and workload migration. Those are beneficial for Monitoring +and Analytics systems to take preventive or corrective actions based on platform +busyness, CPU temperature, actual CPU utilization and power statistics. -Main use cases are power saving and workload migration. Telemetry frameworks -allow users to monitor critical platform level metrics. Key source of platform -telemetry is power domain that is beneficial for MANO Monitoring&Analytics -systems to take preventive/corrective actions based on platform busyness, CPU -temperature, actual CPU utilization and power statistics. +⭐ Telegraf v1.17.0 +🏷️ hardware, system +💻 linux + +## Requirements + +### Kernel modules + +Plugin is mostly based on Linux Kernel modules that expose specific metrics over +`sysfs` or `devfs` interfaces. The following dependencies are expected: + +- `intel-rapl` kernel module which exposes Intel Runtime Power Limiting metrics over + `sysfs` (`/sys/devices/virtual/powercap/intel-rapl`), +- `msr` kernel module that provides access to processor model specific + registers over `devfs` (`/dev/cpu/cpu%d/msr`), +- `cpufreq` kernel module - which exposes per-CPU Frequency over `sysfs` + (`/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq`), +- `intel-uncore-frequency` kernel module exposes Intel uncore frequency metrics + over `sysfs` (`/sys/devices/system/cpu/intel_uncore_frequency`). + +Make sure the required kernel modules are loaded and running. Modules might have +to be manually enabled by using `modprobe`. Depending on the kernel version, +run the following commands: + +```sh +# rapl modules: +## kernel < 4.0 +sudo modprobe intel_rapl +## kernel >= 4.0 +sudo modprobe rapl +sudo modprobe intel_rapl_common +sudo modprobe intel_rapl_msr + +# msr module: +sudo modprobe msr + +# cpufreq module: +### integrated in kernel + +# intel-uncore-frequency module: +## only for kernel >= 5.6.0 +sudo modprobe intel-uncore-frequency +``` + +### Kernel's perf interface + +For perf-related metrics, when Telegraf is not running as root, the following +capability should be added to the Telegraf executable: + +```sh +sudo setcap cap_sys_admin+ep +``` + +Alternatively, `/proc/sys/kernel/perf_event_paranoid` has to be set to value +less than 1. + +Depending on environment and configuration (number of monitored CPUs and number +of enabled metrics), it might be required to increase the limit on the number of +open file descriptors allowed. This can be done for example by using `ulimit -n` +command. + +### Root privileges + +> [!IMPORTANT] +> Telegraf with Intel PowerStat plugin enabled may require root privileges to +> read all the metrics (depending on OS type or configuration). + +Alternatively, the following capabilities can be added to the Telegraf +executable: + +```sh +#without perf-related metrics: +sudo setcap cap_sys_rawio,cap_dac_read_search+ep + +#with perf-related metrics: +sudo setcap cap_sys_rawio,cap_dac_read_search,cap_sys_admin+ep +``` + +### Supported hardware + +Specific metrics require certain processor features to be present, otherwise +Intel PowerStat plugin won't be able to read them. The user can detect supported +processor features by reading `/proc/cpuinfo` file. +Plugin assumes crucial properties are the same for all CPU cores in the system. + +The following `processor` properties are examined in more detail +in this section: + +- `vendor_id` +- `cpu family` +- `model` +- `flags` + +The following processor properties are required by the plugin: + +- Processor `vendor_id` must be `GenuineIntel` and `cpu family` must be `6` - + since data used by the plugin are Intel-specific. +- The following processor flags shall be present: + - `msr` shall be present for plugin to read platform data from processor + model specific registers and collect the following metrics: + - `cpu_c0_state_residency` + - `cpu_c1_state_residency` + - `cpu_c3_state_residency` + - `cpu_c6_state_residency` + - `cpu_c7_state_residency` + - `cpu_busy_frequency` + - `cpu_temperature` + - `cpu_base_frequency` + - `max_turbo_frequency` + - `uncore_frequency` (for kernel < 5.18) + - `aperfmperf` shall be present to collect the following metrics: + - `cpu_c0_state_residency` + - `cpu_c1_state_residency` + - `cpu_busy_frequency` + - `dts` shall be present to collect: + - `cpu_temperature` +- supported CPU model. To see which metrics are supported by your `model`. The + following metrics exist: + - `cpu_c1_state_residency` + - `cpu_c3_state_residency` + - `cpu_c6_state_residency` + - `cpu_c7_state_residency` + - `cpu_temperature` + - `cpu_base_frequency` + - `uncore_frequency` + +### Supported CPU models + +| Model number | Processor name | `cpu_c1_state_residency`
`cpu_c6_state_residency`
`cpu_temperature`
`cpu_base_frequency` | `cpu_c3_state_residency` | `cpu_c7_state_residency` | `uncore_frequency` | +|--------------|---------------------------------|:----------------------------------------------------------------------------------------------------:|:------------------------:|:------------------------:|:------------------:| +| 0x1E | Intel Nehalem | ✓ | ✓ | | | +| 0x1F | Intel Nehalem-G | ✓ | ✓ | | | +| 0x1A | Intel Nehalem-EP | ✓ | ✓ | | | +| 0x2E | Intel Nehalem-EX | ✓ | ✓ | | | +| 0x25 | Intel Westmere | ✓ | ✓ | | | +| 0x2C | Intel Westmere-EP | ✓ | ✓ | | | +| 0x2F | Intel Westmere-EX | ✓ | ✓ | | | +| 0x2A | Intel Sandybridge | ✓ | ✓ | ✓ | | +| 0x2D | Intel Sandybridge-X | ✓ | ✓ | ✓ | | +| 0x3A | Intel Ivybridge | ✓ | ✓ | ✓ | | +| 0x3E | Intel Ivybridge-X | ✓ | ✓ | ✓ | | +| 0x3C | Intel Haswell | ✓ | ✓ | ✓ | | +| 0x3F | Intel Haswell-X | ✓ | ✓ | ✓ | | +| 0x45 | Intel Haswell-L | ✓ | ✓ | ✓ | | +| 0x46 | Intel Haswell-G | ✓ | ✓ | ✓ | | +| 0x3D | Intel Broadwell | ✓ | ✓ | ✓ | | +| 0x47 | Intel Broadwell-G | ✓ | ✓ | ✓ | ✓ | +| 0x4F | Intel Broadwell-X | ✓ | ✓ | | ✓ | +| 0x56 | Intel Broadwell-D | ✓ | ✓ | | ✓ | +| 0x4E | Intel Skylake-L | ✓ | ✓ | ✓ | | +| 0x5E | Intel Skylake | ✓ | ✓ | ✓ | | +| 0x55 | Intel Skylake-X | ✓ | | | ✓ | +| 0x8E | Intel KabyLake-L | ✓ | ✓ | ✓ | | +| 0x9E | Intel KabyLake | ✓ | ✓ | ✓ | | +| 0xA5 | Intel CometLake | ✓ | ✓ | ✓ | | +| 0xA6 | Intel CometLake-L | ✓ | ✓ | ✓ | | +| 0x66 | Intel CannonLake-L | ✓ | | ✓ | | +| 0x6A | Intel IceLake-X | ✓ | | | ✓ | +| 0x6C | Intel IceLake-D | ✓ | | | ✓ | +| 0x7D | Intel IceLake | ✓ | | | | +| 0x7E | Intel IceLake-L | ✓ | | ✓ | | +| 0x9D | Intel IceLake-NNPI | ✓ | | ✓ | | +| 0xA7 | Intel RocketLake | ✓ | | ✓ | | +| 0x8C | Intel TigerLake-L | ✓ | | ✓ | | +| 0x8D | Intel TigerLake | ✓ | | ✓ | | +| 0x8F | Intel Sapphire Rapids X | ✓ | | | ✓ | +| 0xCF | Intel Emerald Rapids X | ✓ | | | ✓ | +| 0xAD | Intel Granite Rapids X | ✓ | | | | +| 0xAE | Intel Granite Rapids D | ✓ | | | | +| 0x8A | Intel Lakefield | ✓ | | ✓ | | +| 0x97 | Intel AlderLake | ✓ | | ✓ | ✓ | +| 0x9A | Intel AlderLake-L | ✓ | | ✓ | ✓ | +| 0xB7 | Intel RaptorLake | ✓ | | ✓ | ✓ | +| 0xBA | Intel RaptorLake-P | ✓ | | ✓ | ✓ | +| 0xBF | Intel RaptorLake-S | ✓ | | ✓ | ✓ | +| 0xAC | Intel MeteorLake | ✓ | | ✓ | ✓ | +| 0xAA | Intel MeteorLake-L | ✓ | | ✓ | ✓ | +| 0xC6 | Intel ArrowLake | ✓ | | ✓ | | +| 0xBD | Intel LunarLake | ✓ | | ✓ | | +| 0x37 | Intel Atom® Bay Trail | ✓ | | | | +| 0x4D | Intel Atom® Avaton | ✓ | | | | +| 0x4A | Intel Atom® Merrifield | ✓ | | | | +| 0x5A | Intel Atom® Moorefield | ✓ | | | | +| 0x4C | Intel Atom® Airmont | ✓ | ✓ | | | +| 0x5C | Intel Atom® Apollo Lake | ✓ | ✓ | ✓ | | +| 0x5F | Intel Atom® Denverton | ✓ | | | | +| 0x7A | Intel Atom® Goldmont | ✓ | ✓ | ✓ | | +| 0x86 | Intel Atom® Jacobsville | ✓ | | | | +| 0x96 | Intel Atom® Elkhart Lake | ✓ | | ✓ | | +| 0x9C | Intel Atom® Jasper Lake | ✓ | | ✓ | | +| 0xBE | Intel AlderLake-N | ✓ | | ✓ | | +| 0xAF | Intel Sierra Forest | ✓ | | | | +| 0xB6 | Intel Grand Ridge | ✓ | | | | +| 0x57 | Intel Xeon® PHI Knights Landing | ✓ | | | | +| 0x85 | Intel Xeon® PHI Knights Mill | ✓ | | | | + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Intel PowerStat plugin enables monitoring of platform metrics (power, TDP) -# and per-CPU metrics like temperature, power and utilization. +# and per-CPU metrics like temperature, power and utilization. Please see the +# plugin readme for details on software and hardware compatibility. +# This plugin ONLY supports Linux. [[inputs.intel_powerstat]] ## The user can choose which package metrics are monitored by the plugin with ## the package_metrics setting: ## - The default, will collect "current_power_consumption", - ## "current_dram_power_consumption" and "thermal_design_power" - ## - Leaving this setting empty means no package metrics will be collected + ## "current_dram_power_consumption" and "thermal_design_power". + ## - Leaving this setting empty means no package metrics will be collected. ## - Finally, a user can specify individual metrics to capture from the - ## supported options list + ## supported options list. ## Supported options: ## "current_power_consumption", "current_dram_power_consumption", - ## "thermal_design_power", "max_turbo_frequency", "uncore_frequency" + ## "thermal_design_power", "max_turbo_frequency", "uncore_frequency", + ## "cpu_base_frequency" # package_metrics = ["current_power_consumption", "current_dram_power_consumption", "thermal_design_power"] ## The user can choose which per-CPU metrics are monitored by the plugin in @@ -33,13 +237,78 @@ temperature, actual CPU utilization and power statistics. ## by the plugin. ## Supported options: ## "cpu_frequency", "cpu_c0_state_residency", "cpu_c1_state_residency", - ## "cpu_c6_state_residency", "cpu_busy_cycles", "cpu_temperature", - ## "cpu_busy_frequency" - ## ATTENTION: cpu_busy_cycles is DEPRECATED - use cpu_c0_state_residency + ## "cpu_c3_state_residency", "cpu_c6_state_residency", "cpu_c7_state_residency", + ## "cpu_temperature", "cpu_busy_frequency", "cpu_c0_substate_c01", + ## "cpu_c0_substate_c02", "cpu_c0_substate_c0_wait" # cpu_metrics = [] + + ## CPUs metrics to include from those configured in cpu_metrics array + ## Can't be combined with excluded_cpus. Empty means all CPUs are gathered. + ## e.g. ["0-3", "4,5,6"] or ["1-3,4"] + # included_cpus = [] + + ## CPUs metrics to exclude from those configured in cpu_metrics array + ## Can't be combined with included_cpus. Empty means all CPUs are gathered. + ## e.g. ["0-3", "4,5,6"] or ["1-3,4"] + # excluded_cpus = [] + + ## Filesystem location of JSON file that contains PMU event definitions. + ## Mandatory only for perf-related metrics (cpu_c0_substate_c01, cpu_c0_substate_c02, cpu_c0_substate_c0_wait). + # event_definitions = "" + + ## The user can set the timeout duration for MSR reading. + ## Enabling this timeout can be useful in situations where, on heavily loaded systems, + ## the code waits too long for a kernel response to MSR read requests. + ## 0 disables the timeout (default). + # msr_read_timeout = "0ms" ``` -## Example: Configuration with no per-CPU telemetry +1. The configuration of `included_cpus` or `excluded_cpus` may affect the + ability to collect `package_metrics`. Some of them + (`max_turbo_frequency`, `cpu_base_frequency`, and `uncore_frequency`) need to + read data from exactly one processor for each package. If `included_cpus` or + `excluded_cpus` exclude all processors from the package, reading th + mentioned metrics for that package will not be possible. +2. `event_definitions` JSON file for specific architecture can be found at + [perfmon][perfmon]. A script to download the event definition that is + appropriate for current environment (`event_download.py`) is available at + [pmu-tools][pmu_tools]. For perf-related metrics supported by this plugin, + an event definition JSON file with events for the `core` is required, e.g. + `sapphirerapids_core.json` or `GenuineIntel-6-8F-core.json`. + +[perfmon]: https://github.com/intel/perfmon +[pmu_tools]: https://github.com/andikleen/pmu-tools + +### Dependencies of metrics on system configuration + +Details of these dependencies are discussed above: + +| Configuration option | Type | Dependency | +|--------------------------------------------------------------------------|-------------------|-------------------| +| `current_power_consumption` | `package_metrics` | `rapl` module | +| `current_dram_power_consumption` | `package_metrics` | `rapl` module | +| `thermal_design_power` | `package_metrics` | `rapl` module | +| `max_turbo_frequency` | `package_metrics` | `msr` module | +| `uncore_frequency` | `package_metrics` | `intel-uncore-frequency` module* | +| `cpu_base_frequency` | `package_metrics` | `msr` module | +| `cpu_frequency` | `cpu_metrics` | `cpufreq` module | +| `cpu_c0_state_residency` | `cpu_metrics` | `msr` module | +| `cpu_c1_state_residency` | `cpu_metrics` | `msr` module | +| `cpu_c3_state_residency` | `cpu_metrics` | `msr` module | +| `cpu_c6_state_residency` | `cpu_metrics` | `msr` module | +| `cpu_c7_state_residency` | `cpu_metrics` | `msr` module | +| `cpu_temperature` | `cpu_metrics` | `msr` module | +| `cpu_busy_frequency` | `cpu_metrics` | `msr` module | +| `cpu_c0_substate_c01` | `cpu_metrics` | `perf` interface | +| `cpu_c0_substate_c02` | `cpu_metrics` | `perf` interface | +| `cpu_c0_substate_c0_wait` | `cpu_metrics` | `perf` interface | + +*for all metrics enabled by the configuration option `uncore_frequency`, +starting from kernel version 5.18, only the `intel-uncore-frequency` module +is required. For older kernel versions, the metric `uncore_frequency_mhz_cur` +requires the `msr` module to be enabled. + +### Example: Configuration with no per-CPU telemetry This configuration allows getting default processor package specific metrics, no per-CPU metrics are collected: @@ -49,7 +318,7 @@ no per-CPU metrics are collected: cpu_metrics = [] ``` -## Example: Configuration with no per-CPU telemetry - equivalent case +### Example: Configuration with no per-CPU telemetry - equivalent case This configuration allows getting default processor package specific metrics, no per-CPU metrics are collected: @@ -58,240 +327,121 @@ no per-CPU metrics are collected: [[inputs.intel_powerstat]] ``` -## Example: Configuration for CPU Temperature and CPU Frequency +### Example: Configuration for CPU Temperature and CPU Frequency This configuration allows getting default processor package specific metrics, -plus subset of per-CPU metrics (CPU Temperature and CPU Frequency): +plus subset of per-CPU metrics (CPU Temperature and CPU Frequency) which will be +gathered only for `cpu_id = 0`: ```toml [[inputs.intel_powerstat]] cpu_metrics = ["cpu_frequency", "cpu_temperature"] + included_cpus = ["0"] ``` -## Example: Configuration for CPU Temperature and CPU Frequency without default package metrics +### Example: Configuration for CPU Temperature and CPU Frequency without default package metrics -This configuration allows getting only a subset of per-CPU metrics (CPU -Temperature and CPU Frequency): +This configuration allows getting only a subset of per-CPU metrics +(CPU Temperature and CPU Frequency) which will be gathered for +all `cpus` except `cpu_id = ["1-3"]`: ```toml [[inputs.intel_powerstat]] package_metrics = [] cpu_metrics = ["cpu_frequency", "cpu_temperature"] + excluded_cpus = ["1-3"] ``` -## Example: Configuration with all available metrics +### Example: Configuration with all available metrics This configuration allows getting all processor package specific metrics and all per-CPU metrics: ```toml [[inputs.intel_powerstat]] - package_metrics = ["current_power_consumption", "current_dram_power_consumption", "thermal_design_power", "max_turbo_frequency", "uncore_frequency"] - cpu_metrics = ["cpu_frequency", "cpu_busy_frequency", "cpu_temperature", "cpu_c0_state_residency", "cpu_c1_state_residency", "cpu_c6_state_residency"] + package_metrics = ["current_power_consumption", "current_dram_power_consumption", "thermal_design_power", "max_turbo_frequency", "uncore_frequency", "cpu_base_frequency"] + cpu_metrics = ["cpu_frequency", "cpu_c0_state_residency", "cpu_c1_state_residency", "cpu_c3_state_residency", "cpu_c6_state_residency", "cpu_c7_state_residency", "cpu_temperature", "cpu_busy_frequency", "cpu_c0_substate_c01", "cpu_c0_substate_c02", "cpu_c0_substate_c0_wait"] + event_definitions = "/home/telegraf/.cache/pmu-events/GenuineIntel-6-8F-core.json" ``` -## SW Dependencies - -Plugin is based on Linux Kernel modules that expose specific metrics over -`sysfs` or `devfs` interfaces. The following dependencies are expected by -plugin: - -- _intel-rapl_ module which exposes Intel Runtime Power Limiting metrics over - `sysfs` (`/sys/devices/virtual/powercap/intel-rapl`), -- _msr_ kernel module that provides access to processor model specific - registers over `devfs` (`/dev/cpu/cpu%d/msr`), -- _cpufreq_ kernel module - which exposes per-CPU Frequency over `sysfs` - (`/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq`). -- _intel-uncore-frequency_ module exposes Intel uncore frequency metrics - over `sysfs` (`/sys/devices/system/cpu/intel_uncore_frequency`), - -Minimum kernel version required is 3.13 to satisfy most of requirements, -for `uncore_frequency` metrics `intel-uncore-frequency` module is required -(available since kernel 5.6). - -Please make sure that kernel modules are loaded and running (cpufreq is -integrated in kernel). Modules might have to be manually enabled by using -`modprobe`. Depending on the kernel version, run commands: - -```sh -# kernel 5.x.x: -sudo modprobe rapl -subo modprobe msr -sudo modprobe intel_rapl_common -sudo modprobe intel_rapl_msr - -# also for kernel >= 5.6.0 -sudo modprobe intel-uncore-frequency - -# kernel 4.x.x: -sudo modprobe msr -sudo modprobe intel_rapl -``` - -**Telegraf with Intel PowerStat plugin enabled may require root access to read -model specific registers (MSRs)** to retrieve data for calculation of most -critical per-CPU specific metrics: - -- `cpu_busy_frequency_mhz` -- `cpu_temperature_celsius` -- `cpu_c0_state_residency_percent` -- `cpu_c1_state_residency_percent` -- `cpu_c6_state_residency_percent` - -and to retrieve data for calculation per-package specific metric: - -- `max_turbo_frequency_mhz` -- `uncore_frequency_mhz_cur` - -To expose other Intel PowerStat metrics root access may or may not be required -(depending on OS type or configuration). - -## HW Dependencies - -Specific metrics require certain processor features to be present, otherwise -Intel PowerStat plugin won't be able to read them. When using Linux Kernel based -OS, user can detect supported processor features reading `/proc/cpuinfo` file. -Plugin assumes crucial properties are the same for all CPU cores in the system. -The following processor properties are examined in more detail in this section: -processor _cpu family_, _model_ and _flags_. The following processor properties -are required by the plugin: - -- Processor _cpu family_ must be Intel (0x6) - since data used by the plugin - assumes Intel specific model specific registers for all features -- The following processor flags shall be present: - - "_msr_" shall be present for plugin to read platform data from processor - model specific registers and collect the following metrics: - _powerstat\_core.cpu\_temperature_, _powerstat\_core.cpu\_busy\_frequency_, - _powerstat\_core.cpu\_c0\_state\_residency_, - _powerstat\_core.cpu\_c1\_state\_residency_, - _powerstat\_core.cpu\_c6\_state\_residency_ - - "_aperfmperf_" shall be present to collect the following metrics: - _powerstat\_core.cpu\_busy\_frequency_, - _powerstat\_core.cpu\_c0\_state\_residency_, - _powerstat\_core.cpu\_c1\_state\_residency_ - - "_dts_" shall be present to collect _powerstat\_core.cpu\_temperature_ -- Processor _Model number_ must be one of the following values for plugin to - read _powerstat\_core.cpu\_c1\_state\_residency_ and - _powerstat\_core.cpu\_c6\_state\_residency_ metrics: - -| Model number | Processor name | -|-----|-------------| -| 0x37 | Intel Atom® Bay Trail | -| 0x4D | Intel Atom® Avaton | -| 0x5C | Intel Atom® Apollo Lake | -| 0x5F | Intel Atom® Denverton | -| 0x7A | Intel Atom® Goldmont | -| 0x4C | Intel Atom® Airmont | -| 0x86 | Intel Atom® Jacobsville | -| 0x96 | Intel Atom® Elkhart Lake | -| 0x9C | Intel Atom® Jasper Lake | -| 0x1A | Intel Nehalem-EP | -| 0x1E | Intel Nehalem | -| 0x1F | Intel Nehalem-G | -| 0x2E | Intel Nehalem-EX | -| 0x25 | Intel Westmere | -| 0x2C | Intel Westmere-EP | -| 0x2F | Intel Westmere-EX | -| 0x2A | Intel Sandybridge | -| 0x2D | Intel Sandybridge-X | -| 0x3A | Intel Ivybridge | -| 0x3E | Intel Ivybridge-X | -| 0x4E | Intel Atom® Silvermont-MID | -| 0x5E | Intel Skylake | -| 0x55 | Intel Skylake-X | -| 0x8E | Intel Kabylake-L | -| 0x9E | Intel Kabylake | -| 0x6A | Intel Icelake-X | -| 0x6C | Intel Icelake-D | -| 0x7D | Intel Icelake | -| 0x7E | Intel Icelake-L | -| 0x9D | Intel Icelake-NNPI | -| 0x3C | Intel Haswell | -| 0x3F | Intel Haswell-X | -| 0x45 | Intel Haswell-L | -| 0x46 | Intel Haswell-G | -| 0x3D | Intel Broadwell | -| 0x47 | Intel Broadwell-G | -| 0x4F | Intel Broadwell-X | -| 0x56 | Intel Broadwell-D | -| 0x66 | Intel Cannonlake-L | -| 0x57 | Intel Xeon® PHI Knights Landing | -| 0x85 | Intel Xeon® PHI Knights Mill | -| 0xA5 | Intel CometLake | -| 0xA6 | Intel CometLake-L | -| 0x8F | Intel Sapphire Rapids X | -| 0x8C | Intel TigerLake-L | -| 0x8D | Intel TigerLake | - ## Metrics All metrics collected by Intel PowerStat plugin are collected in fixed intervals. Metrics that reports processor C-state residency or power are -calculated over elapsed intervals. When starting to measure metrics, plugin -skips first iteration of metrics if they are based on deltas with previous -value. - -**The following measurements are supported by Intel PowerStat plugin:** - -- powerstat_core - - - The following Tags are returned by plugin with powerstat_core measurements: - - | Tag | Description | - |--------------|-------------------------------| - | `package_id` | ID of platform package/socket | - | `core_id` | ID of physical processor core | - | `cpu_id` | ID of logical processor core | - - Measurement powerstat_core metrics are collected per-CPU (cpu_id is the key) - while core_id and package_id tags are additional topology information. - - - Available metrics for powerstat_core measurement - - | Metric name (field) | Description | Units | - |---------------------|-------------|-------| - | `cpu_frequency_mhz` | Current operational frequency of CPU Core | MHz | - | `cpu_busy_frequency_mhz` | CPU Core Busy Frequency measured as frequency adjusted to CPU Core busy cycles | MHz | - | `cpu_temperature_celsius` | Current temperature of CPU Core | Celsius degrees | - | `cpu_c0_state_residency_percent` | Percentage of time that CPU Core spent in C0 Core residency state | % | - | `cpu_c1_state_residency_percent` | Percentage of time that CPU Core spent in C1 Core residency state | % | - | `cpu_c6_state_residency_percent` | Percentage of time that CPU Core spent in C6 Core residency state | % | - | `cpu_busy_cycles_percent` | (**DEPRECATED** - superseded by cpu_c0_state_residency_percent) CPU Core Busy cycles as a ratio of Cycles spent in C0 state residency to all cycles executed by CPU Core | % | - -- powerstat_package - - The following Tags are returned by plugin with powerstat_package measurements: - - | Tag | Description | - |-----|-------------| - | `package_id` | ID of platform package/socket | - | `active_cores`| Specific tag for `max_turbo_frequency_mhz` metric. The maximum number of activated cores for reachable turbo frequency - | `die`| Specific tag for all `uncore_frequency` metrics. Id of die - | `type`| Specific tag for all `uncore_frequency` metrics. Type of uncore frequency (current or initial) - - Measurement powerstat_package metrics are collected per processor package - _package_id_ tag indicates which package metric refers to. - - Available metrics for powerstat_package measurement - - | Metric name (field) | Description | Units | - |-----|-------------|-----| - | `thermal_design_power_watts` | Maximum Thermal Design Power (TDP) available for processor package | Watts | - | `current_power_consumption_watts` | Current power consumption of processor package | Watts | - | `current_dram_power_consumption_watts` | Current power consumption of processor package DRAM subsystem | Watts | - | `max_turbo_frequency_mhz`| Maximum reachable turbo frequency for number of cores active | MHz - | `uncore_frequency_limit_mhz_min`| Minimum uncore frequency limit for die in processor package | MHz - | `uncore_frequency_limit_mhz_max`| Maximum uncore frequency limit for die in processor package | MHz - | `uncore_frequency_mhz_cur`| Current uncore frequency for die in processor package. Available only with tag `current`. Since this value is not yet available from `intel-uncore-frequency` module it needs to be accessed via MSR. In case of lack of loaded msr, only `uncore_frequency_limit_mhz_min` and `uncore_frequency_limit_mhz_max` metrics will be collected | MHz +calculated over elapsed intervals. + +The following measurements are supported by Intel PowerStat plugin: + +- `powerstat_core` + - The following tags are returned by plugin with + `powerstat_core` measurements: + + | Tag | Description | + |--------------|--------------------------------| + | `package_id` | ID of platform package/socket. | + | `core_id` | ID of physical processor core. | + | `cpu_id` | ID of logical processor core. | + + Measurement `powerstat_core` metrics are collected per-CPU (`cpu_id` is the key) + while `core_id` and `package_id` tags are additional topology information. + + - Available metrics for `powerstat_core` measurement: + + | Metric name (field) | Description | Units | + |-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------| + | `cpu_frequency_mhz` | Current operational frequency of CPU Core. | MHz | + | `cpu_busy_frequency_mhz` | CPU Core Busy Frequency measured as frequency adjusted to CPU Core busy cycles. | MHz | + | `cpu_temperature_celsius` | Current temperature of CPU Core. | Celsius degrees | + | `cpu_c0_state_residency_percent` | Percentage of time that CPU Core spent in C0 Core residency state. | % | + | `cpu_c1_state_residency_percent` | Percentage of time that CPU Core spent in C1 Core residency state. | % | + | `cpu_c3_state_residency_percent` | Percentage of time that CPU Core spent in C3 Core residency state. | % | + | `cpu_c6_state_residency_percent` | Percentage of time that CPU Core spent in C6 Core residency state. | % | + | `cpu_c7_state_residency_percent` | Percentage of time that CPU Core spent in C7 Core residency state. | % | + | `cpu_c0_substate_c01_percent` | Percentage of time that CPU Core spent in C0.1 substate out of the total time in the C0 state. | % | + | `cpu_c0_substate_c02_percent` | Percentage of time that CPU Core spent in C0.2 substate out of the total time in the C0 state. | % | + | `cpu_c0_substate_c0_wait_percent` | Percentage of time that CPU Core spent in C0_Wait substate out of the total time in the C0 state. | % | + +- `powerstat_package` + - The following tags are returned by plugin with `powerstat_package` measurements: + + | Tag | Description | + |----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `package_id` | ID of platform package/socket. | + | `active_cores` | Specific tag for `max_turbo_frequency_mhz` metric. The maximum number of activated cores for reachable turbo frequency. | + | `hybrid` | Specific tag for `max_turbo_frequency_mhz` metric. Available only for hybrid processors. Will be set to `primary` for primary cores of a hybrid architecture, and to `secondary` for secondary cores of a hybrid architecture. | + | `die` | Specific tag for all `uncore_frequency` metrics. Id of die. | + | `type` | Specific tag for all `uncore_frequency` metrics. Type of uncore frequency (`current` or `initial`). | + + Measurement `powerstat_package` metrics are collected per processor package + `package_id` tag indicates which package metric refers to. + + - Available metrics for `powerstat_package` measurement: + + | Metric name (field) | Description | Units | + |----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------| + | `thermal_design_power_watts` | Maximum Thermal Design Power (TDP) available for processor package. | Watts | + | `current_power_consumption_watts` | Current power consumption of processor package. | Watts | + | `current_dram_power_consumption_watts` | Current power consumption of processor package DRAM subsystem. | Watts | + | `max_turbo_frequency_mhz` | Maximum reachable turbo frequency for number of cores active. | MHz | + | `uncore_frequency_limit_mhz_min` | Minimum uncore frequency limit for die in processor package. | MHz | + | `uncore_frequency_limit_mhz_max` | Maximum uncore frequency limit for die in processor package. | MHz | + | `uncore_frequency_mhz_cur` | Current uncore frequency for die in processor package. Available only with tag `current`. This value is available from `intel-uncore-frequency` module for kernel >= 5.18. For older kernel versions it needs to be accessed via MSR. In case of lack of loaded `msr`, only `uncore_frequency_limit_mhz_min` and `uncore_frequency_limit_mhz_max` metrics will be collected. | MHz | + | `cpu_base_frequency_mhz` | CPU Base Frequency (maximum non-turbo frequency) for the processor package. | MHz | ### Known issues -From linux kernel version v5.4.77 with [this kernel change][19f6d91b] resources -like `/sys/class/powercap/intel-rapl*/*/energy_uj` are readable only by root for -security reasons, so this plugin needs root privileges to work properly. +Starting from Linux kernel version v5.4.77, due to +[this kernel change][19f6d91b], resources such as +`/sys/devices/virtual/powercap/intel-rapl//*/energy_uj` +can only be accessed by the root user for security reasons. +Therefore, this plugin requires root privileges to gather +`rapl` metrics correctly. -If such strict security restrictions are not relevant, reading permissions to -files in `/sys/devices/virtual/powercap/intel-rapl/` directory can be manually -changed for example with `chmod` command with custom parameters. For example to -give all users permission to all files in `intel-rapl` directory: +If such strict security restrictions are not relevant, reading permissions for +files in the `/sys/devices/virtual/powercap/intel-rapl/` directory can be +manually altered, for example, using the chmod command with custom parameters. +For instance, read and execute permissions for all files in the +intel-rapl directory can be granted to all users using: ```bash sudo chmod -R a+rx /sys/devices/virtual/powercap/intel-rapl/ @@ -301,9 +451,10 @@ sudo chmod -R a+rx /sys/devices/virtual/powercap/intel-rapl/ ## Example Output -```shell +```text powerstat_package,host=ubuntu,package_id=0 thermal_design_power_watts=160 1606494744000000000 powerstat_package,host=ubuntu,package_id=0 current_power_consumption_watts=35 1606494744000000000 +powerstat_package,host=ubuntu,package_id=0 cpu_base_frequency_mhz=2400i 1669118424000000000 powerstat_package,host=ubuntu,package_id=0 current_dram_power_consumption_watts=13.94 1606494744000000000 powerstat_package,host=ubuntu,package_id=0,active_cores=0 max_turbo_frequency_mhz=3000i 1606494744000000000 powerstat_package,host=ubuntu,package_id=0,active_cores=1 max_turbo_frequency_mhz=2800i 1606494744000000000 @@ -311,8 +462,13 @@ powerstat_package,die=0,host=ubuntu,package_id=0,type=initial uncore_frequency_l powerstat_package,die=0,host=ubuntu,package_id=0,type=current uncore_frequency_mhz_cur=800i,uncore_frequency_limit_mhz_min=800,uncore_frequency_limit_mhz_max=2400 1606494744000000000 powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_frequency_mhz=1200.29 1606494744000000000 powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_temperature_celsius=34i 1606494744000000000 -powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c6_state_residency_percent=92.52 1606494744000000000 -powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c1_state_residency_percent=6.68 1606494744000000000 powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c0_state_residency_percent=0.8 1606494744000000000 +powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c1_state_residency_percent=6.68 1606494744000000000 +powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c3_state_residency_percent=0 1606494744000000000 +powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c6_state_residency_percent=92.52 1606494744000000000 +powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c7_state_residency_percent=0 1606494744000000000 powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_busy_frequency_mhz=1213.24 1606494744000000000 +powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c0_substate_c01_percent=0 1606494744000000000 +powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c0_substate_c02_percent=5.68 1606494744000000000 +powerstat_core,core_id=0,cpu_id=0,host=ubuntu,package_id=0 cpu_c0_substate_c0_wait_percent=43.74 1606494744000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/intel_rdt.md b/src/writeData/components/telegrafPlugins/intel_rdt.md index d8d2cbe510..0bdaf29ba2 100644 --- a/src/writeData/components/telegrafPlugins/intel_rdt.md +++ b/src/writeData/components/telegrafPlugins/intel_rdt.md @@ -1,13 +1,11 @@ # Intel RDT Input Plugin -The `intel_rdt` plugin collects information provided by monitoring features of -the Intel Resource Director Technology (Intel(R) RDT). Intel RDT provides the -hardware framework to monitor and control the utilization of shared resources -(ex: last level cache, memory bandwidth). +This plugin collects information provided by monitoring features of the +[Intel Resource Director Technology][rdt], a hardware framework to monitor and +control the utilization of shared resources (e.g. last level cache, +memory bandwidth). -## About Intel RDT - -Intel’s Resource Director Technology (RDT) framework consists of: +Intel’s Resource Director Technology (RDT) framework consists of: - Cache Monitoring Technology (CMT) - Memory Bandwidth Monitoring (MBM) @@ -20,88 +18,63 @@ single-threaded, multithreaded, or complex virtual machine environments. Intel introduces CMT, MBM, CAT and CDP to manage these workloads across shared resources. -## Prerequsities - PQoS Tool - -To gather Intel RDT metrics, the `intel_rdt` plugin uses _pqos_ cli tool which -is a part of [Intel(R) RDT Software -Package](https://github.com/intel/intel-cmt-cat). Before using this plugin -please be sure _pqos_ is properly installed and configured regarding that the -plugin run _pqos_ to work with `OS Interface` mode. This plugin supports _pqos_ -version 4.0.0 and above. Note: pqos tool needs root privileges to work -properly. - -Metrics will be constantly reported from the following `pqos` commands within -the given interval: - -### If telegraf does not run as the root user - -The `pqos` binary needs to run as root. If telegraf is running as a non-root -user, you may enable sudo to allow `pqos` to run correctly. The `pqos` command -requires root level access to run. There are two options to overcome this if -you run telegraf as a non-root user. +⭐ Telegraf v1.16.0 +🏷️ hardware, system +💻 linux, freebsd, macos -It is possible to update the pqos binary with setuid using `chmod u+s -/path/to/pqos`. This approach is simple and requires no modification to the -Telegraf configuration, however pqos is not a read-only tool and there are -security implications for making such a command setuid root. - -Alternately, you may enable sudo to allow `pqos` to run correctly, as follows: - -Add the following to your sudoers file (assumes telegraf runs as a user named -`telegraf`): - -```sh -telegraf ALL=(ALL) NOPASSWD:/usr/sbin/pqos -r --iface-os --mon-file-type=csv --mon-interval=* -``` +[rdt]: https://www.intel.com/content/www/us/en/architecture-and-technology/resource-director-technology.html -If you wish to use sudo, you must also add `use_sudo = true` to the Telegraf -configuration (see below). +## Requirements -### In case of cores monitoring +The plugin requires the `pqos` cli tool in version 4.0+ to be installed and +configured to work in `OS Interface` mode. The tool is part of the +[Intel(R) RDT Software Package][cmt_cat]. -```sh -pqos -r --iface-os --mon-file-type=csv --mon-interval=INTERVAL --mon-core=all:[CORES]\;mbt:[CORES] -``` +> [!IMPORTANT] +> The `pqos` binary needs to run as root. If telegraf is not running as root +> you need to enable sudo for `pqos` and set the `use_sudo` option to `true`. -where `CORES` is equal to group of cores provided in config. User can provide -many groups. +To setup `pqos` correctly check the [installation guide][install]. For help on +how to configure the tool visit the [wiki][wiki] and read the +[resource control documentation][resctl] -### In case of process monitoring +[cmt_cat]: https://github.com/intel/intel-cmt-cat +[install]: https://github.com/intel/intel-cmt-cat/blob/master/INSTALL +[wiki]: https://github.com/intel/intel-cmt-cat/wiki +[resctl]: https://github.com/intel/intel-cmt-cat/wiki/resctrl -```sh -pqos -r --iface-os --mon-file-type=csv --mon-interval=INTERVAL --mon-pid=all:[PIDS]\;mbt:[PIDS] -``` +## Service Input -where `PIDS` is group of processes IDs which name are equal to provided process -name in a config. User can provide many process names which lead to create many -processes groups. +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: -In both cases `INTERVAL` is equal to sampling_interval from config. +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin -Because PIDs association within system could change in every moment, Intel RDT -plugin provides a functionality to check on every interval if desired processes -change their PIDs association. If some change is reported, plugin will restart -_pqos_ tool with new arguments. If provided by user process name is not equal to -any of available processes, will be omitted and plugin will constantly check for -process availability. +## Global configuration options -## Useful links +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -- Pqos installation process: -- Enabling OS interface: , -- More about Intel RDT: +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read Intel RDT metrics +# This plugin ONLY supports non-Windows [[inputs.intel_rdt]] - ## Optionally set sampling interval to Nx100ms. + ## Optionally set sampling interval to Nx100ms. ## This value is propagated to pqos tool. Interval format is defined by pqos itself. ## If not provided or provided 0, will be set to 10 = 10x100ms = 1s. # sampling_interval = "10" - - ## Optionally specify the path to pqos executable. + + ## Optionally specify the path to pqos executable. ## If not provided, auto discovery will be performed. # pqos_path = "/usr/local/bin/pqos" @@ -109,7 +82,7 @@ process availability. ## If not provided, default value is false. # shortened_metrics = false - ## Specify the list of groups of CPU core(s) to be provided as pqos input. + ## Specify the list of groups of CPU core(s) to be provided as pqos input. ## Mandatory if processes aren't set and forbidden if processes are specified. ## e.g. ["0-3", "4,5,6"] or ["1-3,4"] # cores = ["0-3"] @@ -124,19 +97,6 @@ process availability. # use_sudo = false ``` -## Exposed metrics - -| Name | Full name | Description | -|---------------|-----------------------------------------------|-------------| -| MBL | Memory Bandwidth on Local NUMA Node | Memory bandwidth utilization by the relevant CPU core/process on the local NUMA memory channel | -| MBR | Memory Bandwidth on Remote NUMA Node | Memory bandwidth utilization by the relevant CPU core/process on the remote NUMA memory channel | -| MBT | Total Memory Bandwidth | Total memory bandwidth utilized by a CPU core/process on local and remote NUMA memory channels | -| LLC | L3 Cache Occupancy | Total Last Level Cache occupancy by a CPU core/process | -| LLC_Misses* | L3 Cache Misses | Total Last Level Cache misses by a CPU core/process | -| IPC* | Instructions Per Cycle | Total instructions per cycle executed by a CPU core/process | - -*optional - ## Troubleshooting Pointing to non-existing cores will lead to throwing an error by _pqos_ and the @@ -157,13 +117,26 @@ pidof PROCESS where `PROCESS` is process name. +## Metrics + +| Name | Full name | Description | +|---------------|-----------------------------------------------|-------------| +| MBL | Memory Bandwidth on Local NUMA Node | Memory bandwidth utilization by the relevant CPU core/process on the local NUMA memory channel | +| MBR | Memory Bandwidth on Remote NUMA Node | Memory bandwidth utilization by the relevant CPU core/process on the remote NUMA memory channel | +| MBT | Total Memory Bandwidth | Total memory bandwidth utilized by a CPU core/process on local and remote NUMA memory channels | +| LLC | L3 Cache Occupancy | Total Last Level Cache occupancy by a CPU core/process | +| LLC_Misses* | L3 Cache Misses | Total Last Level Cache misses by a CPU core/process | +| IPC* | Instructions Per Cycle | Total instructions per cycle executed by a CPU core/process | + +*optional + ## Example Output -```shell -> rdt_metric,cores=12\,19,host=r2-compute-20,name=IPC,process=top value=0 1598962030000000000 -> rdt_metric,cores=12\,19,host=r2-compute-20,name=LLC_Misses,process=top value=0 1598962030000000000 -> rdt_metric,cores=12\,19,host=r2-compute-20,name=LLC,process=top value=0 1598962030000000000 -> rdt_metric,cores=12\,19,host=r2-compute-20,name=MBL,process=top value=0 1598962030000000000 -> rdt_metric,cores=12\,19,host=r2-compute-20,name=MBR,process=top value=0 1598962030000000000 -> rdt_metric,cores=12\,19,host=r2-compute-20,name=MBT,process=top value=0 1598962030000000000 +```text +rdt_metric,cores=12\,19,host=r2-compute-20,name=IPC,process=top value=0 1598962030000000000 +rdt_metric,cores=12\,19,host=r2-compute-20,name=LLC_Misses,process=top value=0 1598962030000000000 +rdt_metric,cores=12\,19,host=r2-compute-20,name=LLC,process=top value=0 1598962030000000000 +rdt_metric,cores=12\,19,host=r2-compute-20,name=MBL,process=top value=0 1598962030000000000 +rdt_metric,cores=12\,19,host=r2-compute-20,name=MBR,process=top value=0 1598962030000000000 +rdt_metric,cores=12\,19,host=r2-compute-20,name=MBT,process=top value=0 1598962030000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/internal.md b/src/writeData/components/telegrafPlugins/internal.md index 042dfd7dd7..ef17710751 100644 --- a/src/writeData/components/telegrafPlugins/internal.md +++ b/src/writeData/components/telegrafPlugins/internal.md @@ -1,9 +1,22 @@ # Telegraf Internal Input Plugin -The `internal` plugin collects metrics about the telegraf agent itself. +This plugin collects metrics about the telegraf agent and its plugins. -Note that some metrics are aggregates across all instances of one type of -plugin. +> [!NOTE] +> Some metrics are aggregates across all instances of a plugin type. + +⭐ Telegraf v1.2.0 +🏷️ applications +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -12,12 +25,18 @@ plugin. [[inputs.internal]] ## If true, collect telegraf memory stats. # collect_memstats = true + + ## If true, collect metrics from Go's runtime.metrics. For a full list see: + ## https://pkg.go.dev/runtime/metrics + # collect_gostats = false + + ## Collect statistics per plugin instance and not per plugin type + # per_instance = false ``` ## Metrics -memstats are taken from the Go runtime: - +memstats are collected using the [Go runtime framework][memstats] - internal_memstats - alloc_bytes @@ -38,6 +57,7 @@ agent stats collect aggregate stats on all telegraf plugins. - internal_agent - gather_errors + - gather_timeouts - metrics_dropped - metrics_gathered - metrics_written @@ -49,6 +69,7 @@ that are of the same input type. They are tagged with `input=` - internal_gather - gather_time_ns - metrics_gathered + - gather_timeouts internal_write stats collect aggregate stats on all output plugins that are of the same input type. They are tagged with `output=` @@ -70,19 +91,19 @@ plugin and `version=`. - internal_ - individual plugin-specific fields, such as requests counts. -## Tags - All measurements for specific plugins are tagged with information relevant to each particular plugin and with `version=`. +[memstats]: https://golang.org/pkg/runtime/#MemStats + ## Example Output -```shell +```text internal_memstats,host=tyrion alloc_bytes=4457408i,sys_bytes=10590456i,pointer_lookups=7i,mallocs=17642i,frees=7473i,heap_sys_bytes=6848512i,heap_idle_bytes=1368064i,heap_in_use_bytes=5480448i,heap_released_bytes=0i,total_alloc_bytes=6875560i,heap_alloc_bytes=4457408i,heap_objects_bytes=10169i,num_gc=2i 1480682800000000000 -internal_agent,host=tyrion,go_version=1.12.7,version=1.99.0 metrics_written=18i,metrics_dropped=0i,metrics_gathered=19i,gather_errors=0i 1480682800000000000 +internal_agent,host=tyrion,go_version=1.12.7,version=1.99.0 metrics_written=18i,metrics_dropped=0i,metrics_gathered=19i,gather_errors=0i,gather_timeouts=0i 1480682800000000000 internal_write,output=file,host=tyrion,version=1.99.0 buffer_limit=10000i,write_time_ns=636609i,metrics_added=18i,metrics_written=18i,buffer_size=0i 1480682800000000000 -internal_gather,input=internal,host=tyrion,version=1.99.0 metrics_gathered=19i,gather_time_ns=442114i 1480682800000000000 -internal_gather,input=http_listener,host=tyrion,version=1.99.0 metrics_gathered=0i,gather_time_ns=167285i 1480682800000000000 +internal_gather,input=internal,host=tyrion,version=1.99.0 metrics_gathered=19i,gather_time_ns=442114i,gather_timeouts=0i 1480682800000000000 +internal_gather,input=http_listener,host=tyrion,version=1.99.0 metrics_gathered=0i,gather_time_ns=167285i,gather_timeouts=0i 1480682800000000000 internal_http_listener,address=:8186,host=tyrion,version=1.99.0 queries_received=0i,writes_received=0i,requests_received=0i,buffers_created=0i,requests_served=0i,pings_received=0i,bytes_received=0i,not_founds_served=0i,pings_served=0i,queries_served=0i,writes_served=0i 1480682800000000000 internal_mqtt_consumer,host=tyrion,version=1.99.0 messages_received=622i,payload_size=37942i 1657282270000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/internet_speed.md b/src/writeData/components/telegrafPlugins/internet_speed.md index ae985acb3a..9f35c8b61c 100644 --- a/src/writeData/components/telegrafPlugins/internet_speed.md +++ b/src/writeData/components/telegrafPlugins/internet_speed.md @@ -1,7 +1,22 @@ # Internet Speed Monitor Input Plugin -The `Internet Speed Monitor` collects data about the internet speed on the -system. +This plugin collects metrics about the internet speed on the system like +download/upload speed, latency etc using the [speedtest.net service][speedtest]. + +⭐ Telegraf v1.20.0 +🏷️ network +💻 all + +[speedtest]: https://www.speedtest.net/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -13,25 +28,72 @@ system. ## demand on your internet connection. # interval = "60m" - ## Sets if runs file download test - # enable_file_download = false + ## Enable to reduce memory usage + # memory_saving_mode = false ## Caches the closest server location # cache = false + + ## Number of concurrent connections + ## By default or set to zero, the number of CPU cores is used. Use this to + ## reduce the impact on system performance or to increase the connections on + ## faster connections to ensure the fastest speed. + # connections = 0 + + ## Test mode + ## By default, a single sever is used for testing. This may work for most, + ## however, setting to "multi" will reach out to multiple servers in an + ## attempt to get closer to ideal internet speeds. + ## And "multi" will use all available servers to calculate average packet loss. + # test_mode = "single" + + ## Server ID exclude filter + ## Allows the user to exclude or include specific server IDs received by + ## speedtest-go. Values in the exclude option will be skipped over. Values in + ## the include option are the only options that will be picked from. + ## + ## See the list of servers speedtest-go will return at: + ## https://www.speedtest.net/api/js/servers?engine=js&limit=10 + ## + # server_id_exclude = [] + # server_id_include = [] ``` +> [!TIP] +> On some systems, the default settings may cause speed tests to fail. If this +> affects your system, try enabling `memory_saving_mode`, which reduces the +> memory requirements and the runtime of the test at the cost of a reduced +> accuracy especially for fast (>30Mb/s) connections. Check the +> [upstream documentation][docs] for details + +[docs]: https://github.com/showwin/speedtest-go#memory-saving-mode + ## Metrics -It collects latency, download speed and upload speed +It collects the following fields: + +| Name | Field Name | Type | Unit | +|----------------|-------------|---------|------------| +| Download Speed | download | float64 | Mbps | +| Upload Speed | upload | float64 | Mbps | +| Latency | latency | float64 | ms | +| Jitter | jitter | float64 | ms | +| Packet Loss | packet_loss | float64 | percentage | +| Location | location | string | - | + +The `packet_loss` will return -1, if packet loss not applicable. + +And the following tags: -| Name | filed name | type | Unit | -| -------------- | ---------- | ------- | ---- | -| Download Speed | download | float64 | Mbps | -| Upload Speed | upload | float64 | Mbps | -| Latency | latency | float64 | ms | +| Name | tag name | +|-----------|-----------| +| Source | source | +| Server ID | server_id | +| Test Mode | test_mode | ## Example Output -```sh -internet_speed,host=Sanyam-Ubuntu download=41.791,latency=28.518,upload=59.798 1631031183000000000 +```text +internet_speed,source=speedtest02.z4internet.com:8080,server_id=54619,test_mode=single download=318.37580265897725,upload=30.444407341274385,latency=37.73174,jitter=1.99810,packet_loss=0.05377,location="Somewhere, TX" 1675458921000000000 +internet_speed,source=speedtest02.z4internet.com:8080,server_id=54619,test_mode=multi download=318.37580265897725,upload=30.444407341274385,latency=37.73174,jitter=1.99810,packet_loss=-1,location="Somewhere, TX" 1675458921000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/interrupts.md b/src/writeData/components/telegrafPlugins/interrupts.md index cbebed9773..571572012a 100644 --- a/src/writeData/components/telegrafPlugins/interrupts.md +++ b/src/writeData/components/telegrafPlugins/interrupts.md @@ -1,7 +1,20 @@ # Interrupts Input Plugin -The interrupts plugin gathers metrics about IRQs from `/proc/interrupts` and -`/proc/softirqs`. +This plugin gathers metrics about IRQs from interrupts (`/proc/interrupts`) and +soft-interrupts (`/proc/softirqs`). + +⭐ Telegraf v1.3.0 +🏷️ system +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -71,7 +84,7 @@ With `cpu_as_tag = true`: With `cpu_as_tag = false`: -```shell +```text interrupts,irq=0,type=IO-APIC,device=2-edge\ timer,cpu=cpu0 count=23i 1489346531000000000 interrupts,irq=1,type=IO-APIC,device=1-edge\ i8042,cpu=cpu0 count=9i 1489346531000000000 interrupts,irq=30,type=PCI-MSI,device=65537-edge\ virtio1-input.0,cpu=cpu1 count=1i 1489346531000000000 @@ -80,7 +93,7 @@ soft_interrupts,irq=NET_RX,cpu=cpu0 count=280879i 1489346531000000000 With `cpu_as_tag = true`: -```shell +```text interrupts,cpu=cpu6,irq=PIW,type=Posted-interrupt\ wakeup\ event count=0i 1543539773000000000 interrupts,cpu=cpu7,irq=PIW,type=Posted-interrupt\ wakeup\ event count=0i 1543539773000000000 soft_interrupts,cpu=cpu0,irq=HI count=246441i 1543539773000000000 diff --git a/src/writeData/components/telegrafPlugins/ipmi_sensor.md b/src/writeData/components/telegrafPlugins/ipmi_sensor.md index 64361950d6..cf0eb27b38 100644 --- a/src/writeData/components/telegrafPlugins/ipmi_sensor.md +++ b/src/writeData/components/telegrafPlugins/ipmi_sensor.md @@ -1,76 +1,76 @@ # IPMI Sensor Input Plugin -Get bare metal metrics using the command line utility -[`ipmitool`](https://github.com/ipmitool/ipmitool). +This plugin gathers metrics from the +[Intelligent Platform Management Interface][ipmi_spec] using the +[`ipmitool`][ipmitool] command line utility. -If no servers are specified, the plugin will query the local machine sensor -stats via the following command: - -```sh -ipmitool sdr -``` - -or with the version 2 schema: +> [!IMPORTANT] +> The `ipmitool` requires access to the IPMI device. Please check the +> [permission section](#permissions) for possible solutions. -```sh -ipmitool sdr elist -``` +⭐ Telegraf v0.12.0 +🏷️ hardware, system +💻 all -When one or more servers are specified, the plugin will use the following -command to collect remote host sensor stats: +[ipmi_spec]: https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/ipmi-intelligent-platform-mgt-interface-spec-2nd-gen-v2-0-spec-update.pdf +[ipmitool]: https://github.com/ipmitool/ipmitool -```sh -ipmitool -I lan -H SERVER -U USERID -P PASSW0RD sdr -``` +## Global configuration options -Any of the following parameters will be added to the aformentioned query if -they're configured: +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -```sh --y hex_key -L privilege -``` +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read metrics from the bare metal servers via IPMI [[inputs.ipmi_sensor]] - ## optionally specify the path to the ipmitool executable + ## Specify the path to the ipmitool executable # path = "/usr/bin/ipmitool" - ## + + ## Use sudo ## Setting 'use_sudo' to true will make use of sudo to run ipmitool. ## Sudo must be configured to allow the telegraf user to run ipmitool ## without a password. # use_sudo = false - ## - ## optionally force session privilege level. Can be CALLBACK, USER, OPERATOR, ADMINISTRATOR - # privilege = "ADMINISTRATOR" - ## - ## optionally specify one or more servers via a url matching + + ## Servers + ## Specify one or more servers via a url. If no servers are specified, local + ## machine sensor stats will be queried. Uses the format: ## [username[:password]@][protocol[(address)]] - ## e.g. - ## root:passwd@lan(127.0.0.1) - ## - ## if no servers are specified, local machine sensor stats will be queried - ## + ## e.g. root:passwd@lan(127.0.0.1) # servers = ["USERID:PASSW0RD@lan(192.168.1.1)"] - ## Recommended: use metric 'interval' that is a multiple of 'timeout' to avoid - ## gaps or overlap in pulled data - interval = "30s" + ## Session privilege level + ## Choose from: CALLBACK, USER, OPERATOR, ADMINISTRATOR + # privilege = "ADMINISTRATOR" + + ## Timeout + ## Timeout for the ipmitool command to complete. + # timeout = "20s" - ## Timeout for the ipmitool command to complete. Default is 20 seconds. - timeout = "20s" + ## Metric schema version + ## See the plugin readme for more information on schema versioning. + # metric_version = 1 - ## Schema Version: (Optional, defaults to version 1) - metric_version = 2 + ## Sensors to collect + ## Choose from: + ## * sdr: default, collects sensor data records + ## * chassis_power_status: collects the power status of the chassis + ## * dcmi_power_reading: collects the power readings from the Data Center Management Interface + # sensors = ["sdr"] + ## Hex key ## Optionally provide the hex key for the IMPI connection. # hex_key = "" + ## Cache ## If ipmitool should use a cache - ## for me ipmitool runs about 2 to 10 times faster with cache enabled on HP G10 servers (when using ubuntu20.04) - ## the cache file may not work well for you if some sensors come up late + ## Using a cache can speed up collection times depending on your device. # use_cache = false ## Path to the ipmitools cache file (defaults to OS temp dir) @@ -78,7 +78,45 @@ they're configured: # cache_path = "" ``` -## Measurements +If no servers are specified, the plugin will query the local machine sensor +stats via the following command: + +```sh +ipmitool sdr +``` + +or with the version 2 schema: + +```sh +ipmitool sdr elist +``` + +When one or more servers are specified, the plugin will use the following +command to collect remote host sensor stats: + +```sh +ipmitool -I lan -H SERVER -U USERID -P PASSW0RD sdr +``` + +Any of the following parameters will be added to the aforementioned query if +they're configured: + +```sh +-y hex_key -L privilege +``` + +## Sensors + +By default the plugin collects data via the `sdr` command and returns those +values. However, there are additonal sensor options that be call on: + +- `chassis_power_status` - returns 0 or 1 depending on the output of + `chassis power status` +- `dcmi_power_reading` - Returns the watt values from `dcmi power reading` + +These sensor options are not affected by the metric version. + +## Metrics Version 1 schema: @@ -141,7 +179,7 @@ Defaults!IPMITOOL !logfile, !syslog, !pam_session When retrieving stats from a remote server: -```shell +```text ipmi_sensor,server=10.20.2.203,name=uid_light value=0,status=1i 1517125513000000000 ipmi_sensor,server=10.20.2.203,name=sys._health_led status=1i,value=0 1517125513000000000 ipmi_sensor,server=10.20.2.203,name=power_supply_1,unit=watts status=1i,value=110 1517125513000000000 @@ -152,7 +190,7 @@ ipmi_sensor,server=10.20.2.203,name=fan_1,unit=percent status=1i,value=43.12 151 When retrieving stats from the local machine (no server specified): -```shell +```text ipmi_sensor,name=uid_light value=0,status=1i 1517125513000000000 ipmi_sensor,name=sys._health_led status=1i,value=0 1517125513000000000 ipmi_sensor,name=power_supply_1,unit=watts status=1i,value=110 1517125513000000000 @@ -165,7 +203,7 @@ ipmi_sensor,name=fan_1,unit=percent status=1i,value=43.12 1517125513000000000 When retrieving stats from the local machine (no server specified): -```shell +```text ipmi_sensor,name=uid_light,entity_id=23.1,status_code=ok,status_desc=ok value=0 1517125474000000000 ipmi_sensor,name=sys._health_led,entity_id=23.2,status_code=ok,status_desc=ok value=0 1517125474000000000 ipmi_sensor,entity_id=10.1,name=power_supply_1,status_code=ok,status_desc=presence_detected,unit=watts value=110 1517125474000000000 diff --git a/src/writeData/components/telegrafPlugins/ipset.md b/src/writeData/components/telegrafPlugins/ipset.md index 4fba5a2925..a9eb535bbb 100644 --- a/src/writeData/components/telegrafPlugins/ipset.md +++ b/src/writeData/components/telegrafPlugins/ipset.md @@ -1,40 +1,59 @@ # Ipset Input Plugin -The ipset plugin gathers packets and bytes counters from Linux ipset. -It uses the output of the command "ipset save". -Ipsets created without the "counters" option are ignored. +This plugin gathers packets and bytes counters from [Linux IP sets][ipsets] +using the `ipset` command line tool. -Results are tagged with: +> [!NOTE] +> IP sets created without the "counters" option are ignored. -- ipset name -- ipset entry +⭐ Telegraf v1.6.0 +🏷️ network, system +💻 linux -There are 3 ways to grant telegraf the right to run ipset: +[ipsets]: https://ipset.netfilter.org/ -- Run as root (strongly discouraged) -- Use sudo -- Configure systemd to run telegraf with CAP_NET_ADMIN and CAP_NET_RAW capabilities. +## Global configuration options -## Using systemd capabilities +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -You may run `systemctl edit telegraf.service` and add the following: +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins -```text -[Service] -CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN -AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN -``` +## Configuration -## Using sudo +```toml @sample.conf +# Gather packets and bytes counters from Linux ipsets + [[inputs.ipset]] + ## By default, we only show sets which have already matched at least 1 packet. + ## set include_unmatched_sets = true to gather them all. + # include_unmatched_sets = false + + ## Adjust your sudo settings appropriately if using this option ("sudo ipset save") + ## You can avoid using sudo or root, by setting appropriate privileges for + ## the telegraf.service systemd service. + # use_sudo = false -You will need the following in your telegraf config: + ## Add number of entries and number of individual IPs (resolve CIDR syntax) for each ipset + # count_per_ip_entries = false -```toml -[[inputs.ipset]] - use_sudo = true + ## The default timeout of 1s for ipset execution can be overridden here: + # timeout = "1s" ``` -You will also need to update your sudoers file: +### Permissions + +There are 3 ways to grant telegraf the right to run ipset: + +- Run as root (strongly discouraged) +- Use sudo +- Configure systemd to run telegraf with CAP_NET_ADMIN and CAP_NET_RAW + capabilities + +#### Using sudo + +To use sudo set the `use_sudo` option to `true` and update your sudoers file: ```bash $ visudo @@ -44,23 +63,34 @@ telegraf ALL=(root) NOPASSWD: IPSETSAVE Defaults!IPSETSAVE !logfile, !syslog, !pam_session ``` -## Configuration +#### Using systemd capabilities -```toml @sample.conf -# Gather packets and bytes counters from Linux ipsets - [[inputs.ipset]] - ## By default, we only show sets which have already matched at least 1 packet. - ## set include_unmatched_sets = true to gather them all. - include_unmatched_sets = false - ## Adjust your sudo settings appropriately if using this option ("sudo ipset save") - ## You can avoid using sudo or root, by setting appropriate privileges for - ## the telegraf.service systemd service. - use_sudo = false - ## The default timeout of 1s for ipset execution can be overridden here: - # timeout = "1s" +You may run `systemctl edit telegraf.service` and add the following: +```text +[Service] +CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN +AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN ``` +## Metrics + +- ipset + - tags: + - rule + - set + - fields: + - timeout + - packets + - bytes + +- ipset (for `count_per_ip_entries = true`) + - tags: + - set + - fields: + - entries + - ips + ## Example Output ```sh @@ -69,8 +99,6 @@ create myset hash:net family inet hashsize 1024 maxelem 65536 counters comment add myset 10.69.152.1 packets 8 bytes 672 comment "machine A" ``` -```sh -$ telegraf --config telegraf.conf --input-filter ipset --test --debug -* Plugin: inputs.ipset, Collection 1 -> ipset,rule=10.69.152.1,host=trashme,set=myset bytes_total=8i,packets_total=672i 1507615028000000000 +```text +ipset,rule=10.69.152.1,host=trashme,set=myset bytes_total=8i,packets_total=672i 1507615028000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/iptables.md b/src/writeData/components/telegrafPlugins/iptables.md index fb7a1da09f..44c596707a 100644 --- a/src/writeData/components/telegrafPlugins/iptables.md +++ b/src/writeData/components/telegrafPlugins/iptables.md @@ -1,29 +1,76 @@ # Iptables Input Plugin -The iptables plugin gathers packets and bytes counters for rules within a set -of table and chain from the Linux's iptables firewall. +This plugin gathers packets and bytes counters for rules within a set of table +and chain from the Linux's iptables firewall. -Rules are identified through associated comment. **Rules without comment are -ignored**. Indeed we need a unique ID for the rule and the rule number is not -a constant: it may vary when rules are inserted/deleted at start-up or by -automatic tools (interactive firewalls, fail2ban, ...). Also when the rule set -is becoming big (hundreds of lines) most people are interested in monitoring -only a small part of the rule set. +> [!IMPORTANT] +> Rules are identified through associated comment, so you must ensure that the +> rules you want to monitor do have a **unique** comment using the `--comment` +> flag when adding them. Rules without comments are ignored. -Before using this plugin **you must ensure that the rules you want to monitor -are named with a unique comment**. Comments are added using the `-m comment ---comment "my comment"` iptables options. +The rule number cannot be used as identifier as it is not constant and +may vary when rules are inserted/deleted at start-up or by automatic tools +(interactive firewalls, fail2ban, ...). -The iptables command requires CAP_NET_ADMIN and CAP_NET_RAW capabilities. You -have several options to grant telegraf to run iptables: +> [!IMPORTANT] +> The `iptables` command requires `CAP_NET_ADMIN` and `CAP_NET_RAW` +> capabilities. Check the [permissions section](#permissions) for ways to +> grant them. -* Run telegraf as root. This is strongly discouraged. -* Configure systemd to run telegraf with CAP_NET_ADMIN and CAP_NET_RAW. This is +⭐ Telegraf v1.1.0 +🏷️ network, system +💻 linux + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Configuration + +```toml @sample.conf +# Gather packets and bytes throughput from iptables +# This plugin ONLY supports Linux +[[inputs.iptables]] + ## iptables require root access on most systems. + ## Setting 'use_sudo' to true will make use of sudo to run iptables. + ## Users must configure sudo to allow telegraf user to run iptables with + ## no password. + ## iptables can be restricted to only list command "iptables -nvL". + # use_sudo = false + + ## Setting 'use_lock' to true runs iptables with the "-w" option. + ## Adjust your sudo settings appropriately if using this option + ## ("iptables -w 5 -nvl") + # use_lock = false + + ## Define an alternate executable, such as "ip6tables". Default is "iptables". + # binary = "ip6tables" + ## defines the table to monitor: + table = "filter" + + ## defines the chains to monitor. + ## NOTE: iptables rules without a comment will not be monitored. + ## Read the plugin documentation for more information. + chains = [ "INPUT" ] +``` + +### Permissions + +The `iptables` command requires `CAP_NET_ADMIN` and `CAP_NET_RAW capabilities`. +You have several options to grant permissions to telegraf: + +- Run telegraf as root. This is strongly discouraged. +- Configure systemd to run telegraf with CAP_NET_ADMIN and CAP_NET_RAW. This is the simplest and recommended option. -* Configure sudo to grant telegraf to run iptables. This is the most +- Configure sudo to grant telegraf to run iptables. This is the most restrictive option, but require sudo setup. -## Using systemd capabilities +#### Using systemd capabilities You may run `systemctl edit telegraf.service` and add the following: @@ -36,16 +83,9 @@ AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN Since telegraf will fork a process to run iptables, `AmbientCapabilities` is required to transmit the capabilities bounding set to the forked process. -## Using sudo +#### Using sudo -You will need the following in your telegraf config: - -```toml -[[inputs.iptables]] - use_sudo = true -``` - -You will also need to update your sudoers file: +To use sudo set the `use_sudo` option to `true` and update your sudoers file: ```bash $ visudo @@ -55,7 +95,7 @@ telegraf ALL=(root) NOPASSWD: IPTABLESSHOW Defaults!IPTABLESSHOW !logfile, !syslog, !pam_session ``` -## Using IPtables lock feature +### Using IPtables lock feature Defining multiple instances of this plugin in telegraf.conf can lead to concurrent IPtables access resulting in "ERROR in input [inputs.iptables]: exit @@ -63,58 +103,31 @@ status 4" messages in telegraf.log and missing metrics. Setting 'use_lock = true' in the plugin configuration will run IPtables with the '-w' switch, allowing a lock usage to prevent this error. -## Configuration +## Metrics -```toml @sample.conf -# Gather packets and bytes throughput from iptables -[[inputs.iptables]] - ## iptables require root access on most systems. - ## Setting 'use_sudo' to true will make use of sudo to run iptables. - ## Users must configure sudo to allow telegraf user to run iptables with - ## no password. - ## iptables can be restricted to only list command "iptables -nvL". - use_sudo = false - ## Setting 'use_lock' to true runs iptables with the "-w" option. - ## Adjust your sudo settings appropriately if using this option - ## ("iptables -w 5 -nvl") - use_lock = false - ## Define an alternate executable, such as "ip6tables". Default is "iptables". - # binary = "ip6tables" - ## defines the table to monitor: - table = "filter" - ## defines the chains to monitor. - ## NOTE: iptables rules without a comment will not be monitored. - ## Read the plugin documentation for more information. - chains = [ "INPUT" ] -``` - -## Measurements & Fields - -* iptables - * pkts (integer, count) - * bytes (integer, bytes) - -## Tags - -* All measurements have the following tags: - * table - * chain - * ruleid - -The `ruleid` is the comment associated to the rule. +- iptables + - tags: + - table + - chain + - ruleid (comment associated to the rule) + - fields: + - pkts (integer, count) + - bytes (integer, bytes) ## Example Output +```shell +iptables -nvL INPUT +``` + ```text -$ iptables -nvL INPUT Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 100 1024 ACCEPT tcp -- * * 192.168.0.0/24 0.0.0.0/0 tcp dpt:22 /* ssh */ 42 2048 ACCEPT tcp -- * * 192.168.0.0/24 0.0.0.0/0 tcp dpt:80 /* httpd */ ``` -```shell -$ ./telegraf --config telegraf.conf --input-filter iptables --test +```text iptables,table=filter,chain=INPUT,ruleid=ssh pkts=100i,bytes=1024i 1453831884664956455 iptables,table=filter,chain=INPUT,ruleid=httpd pkts=42i,bytes=2048i 1453831884664956455 ``` diff --git a/src/writeData/components/telegrafPlugins/ipvs.md b/src/writeData/components/telegrafPlugins/ipvs.md index e5779ac907..67643d1880 100644 --- a/src/writeData/components/telegrafPlugins/ipvs.md +++ b/src/writeData/components/telegrafPlugins/ipvs.md @@ -1,25 +1,53 @@ # IPVS Input Plugin -The IPVS input plugin uses the linux kernel netlink socket interface to gather -metrics about ipvs virtual and real servers. +This plugin gathers metrics about the [IPVS virtual and real servers][ipvs] +using the netlink socket interface of the Linux kernel. -**Supported Platforms:** Linux +> [!IMPORTANT] +> The plugin requires `CAP_NET_ADMIN` and `CAP_NET_RAW` capabilities. +> Check the [permissions section](#permissions) for ways to grant them. + +⭐ Telegraf v1.9.0 +🏷️ network, system +💻 linux + +[ipvs]: http://www.linuxvirtualserver.org/software/ipvs.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Collect virtual and real server stats from Linux IPVS +# This plugin ONLY supports Linux [[inputs.ipvs]] # no configuration ``` ### Permissions -Assuming you installed the telegraf package via one of the published packages, +Assuming you installed the Telegraf package via one of the published packages, the process will be running as the `telegraf` user. However, in order for this -plugin to communicate over netlink sockets it needs the telegraf process to be -running as `root` (or some user with `CAP_NET_ADMIN` and `CAP_NET_RAW`). Be sure -to ensure these permissions before running telegraf with this plugin included. +plugin to communicate over netlink sockets it needs the telegraf process to have +`CAP_NET_ADMIN` and `CAP_NET_RAW` capabilities. + +This is the case when running Telegraf as `root` or some user with +`CAP_NET_ADMIN` and `CAP_NET_RAW`. Alternatively, you can add the capabilities +when starting Telegraf via systemd by running `systemctl edit telegraf.service` +and add the following: + +```shell +[Service] +CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN +AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN +``` ## Metrics @@ -71,7 +99,7 @@ configure a virtual server using `ipvsadm`. Virtual server is configured using `fwmark` and backed by 2 real servers: -```shell +```text ipvs_virtual_server,address=172.18.64.234,address_family=inet,netmask=32,port=9000,protocol=tcp,sched=rr bytes_in=0i,bytes_out=0i,pps_in=0i,pps_out=0i,cps=0i,connections=0i,pkts_in=0i,pkts_out=0i 1541019340000000000 ipvs_real_server,address=172.18.64.220,address_family=inet,port=9000,virtual_address=172.18.64.234,virtual_port=9000,virtual_protocol=tcp active_connections=0i,inactive_connections=0i,pkts_in=0i,bytes_out=0i,pps_out=0i,connections=0i,pkts_out=0i,bytes_in=0i,pps_in=0i,cps=0i 1541019340000000000 ipvs_real_server,address=172.18.64.219,address_family=inet,port=9000,virtual_address=172.18.64.234,virtual_port=9000,virtual_protocol=tcp active_connections=0i,inactive_connections=0i,pps_in=0i,pps_out=0i,connections=0i,pkts_in=0i,pkts_out=0i,bytes_in=0i,bytes_out=0i,cps=0i 1541019340000000000 @@ -80,7 +108,7 @@ ipvs_real_server,address=172.18.64.219,address_family=inet,port=9000,virtual_add Virtual server is configured using `proto+addr+port` and backed by 2 real servers: -```shell +```text ipvs_virtual_server,address_family=inet,fwmark=47,netmask=32,sched=rr cps=0i,connections=0i,pkts_in=0i,pkts_out=0i,bytes_in=0i,bytes_out=0i,pps_in=0i,pps_out=0i 1541019340000000000 ipvs_real_server,address=172.18.64.220,address_family=inet,port=9000,virtual_fwmark=47 inactive_connections=0i,pkts_out=0i,bytes_out=0i,pps_in=0i,cps=0i,active_connections=0i,pkts_in=0i,bytes_in=0i,pps_out=0i,connections=0i 1541019340000000000 ipvs_real_server,address=172.18.64.219,address_family=inet,port=9000,virtual_fwmark=47 cps=0i,active_connections=0i,inactive_connections=0i,connections=0i,pkts_in=0i,bytes_out=0i,pkts_out=0i,bytes_in=0i,pps_in=0i,pps_out=0i 1541019340000000000 diff --git a/src/writeData/components/telegrafPlugins/jenkins.md b/src/writeData/components/telegrafPlugins/jenkins.md index c9aed567cb..0571e64d8f 100644 --- a/src/writeData/components/telegrafPlugins/jenkins.md +++ b/src/writeData/components/telegrafPlugins/jenkins.md @@ -1,10 +1,23 @@ # Jenkins Input Plugin -The jenkins plugin gathers information about the nodes and jobs running in a -jenkins instance. +This plugin gathers information about the nodes and jobs running in a +[Jenkins][jenkins] instance. The plugin uses the Jenkins API and does not +require a plugin on the server. -This plugin does not require a plugin on jenkins and it makes use of Jenkins API -to retrieve all the information needed. +⭐ Telegraf v1.9.0 +🏷️ applications +💻 all + +[jenkins]: https://www.jenkins.io/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -56,6 +69,11 @@ to retrieve all the information needed. ## Worker pool for jenkins plugin only ## Empty this field will use default value 5 # max_connections = 5 + + ## When set to true will add node labels as a comma-separated tag. If none, + ## are found, then a tag with the value of 'none' is used. Finally, if a + ## label contains a comma it is replaced with an underscore. + # node_labels_as_tag = false ``` ## Metrics @@ -111,8 +129,7 @@ SELECT mean("duration") AS "mean_duration" FROM "jenkins_job" WHERE time > now() ## Example Output -```shell -$ ./telegraf --config telegraf.conf --input-filter jenkins --test +```text jenkins,host=myhost,port=80,source=my-jenkins-instance busy_executors=4i,total_executors=8i 1580418261000000000 jenkins_node,arch=Linux\ (amd64),disk_path=/var/jenkins_home,temp_path=/tmp,host=myhost,node_name=master,source=my-jenkins-instance,port=8080 swap_total=4294963200,memory_available=586711040,memory_total=6089498624,status=online,response_time=1000i,disk_available=152392036352,temp_available=152392036352,swap_available=3503263744,num_executors=2i 1516031535000000000 jenkins_job,host=myhost,name=JOB1,parents=apps/br1,result=SUCCESS,source=my-jenkins-instance,port=8080 duration=2831i,result_code=0i 1516026630000000000 diff --git a/src/writeData/components/telegrafPlugins/jolokia2_agent.md b/src/writeData/components/telegrafPlugins/jolokia2_agent.md index 5962894624..be7cec2e95 100644 --- a/src/writeData/components/telegrafPlugins/jolokia2_agent.md +++ b/src/writeData/components/telegrafPlugins/jolokia2_agent.md @@ -1,7 +1,22 @@ # Jolokia2 Agent Input Plugin -The `jolokia2_agent` input plugin reads JMX metrics from one or more -[Jolokia agent](https://jolokia.org/agent/jvm.html) REST endpoints. +This plugin reads JMX metrics from one or more [Jolokia agent][jolokia_agent] +REST endpoints. + +⭐ Telegraf v1.5.0 +🏷️ applications, network +💻 all + +[jolokia_agent]: https://jolokia.org/agent/jvm.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -74,7 +89,7 @@ Use `paths` to refine which fields to collect. paths = ["HeapMemoryUsage", "NonHeapMemoryUsage", "ObjectPendingFinalizationCount"] ``` -The preceeding `jvm_memory` `metric` declaration produces the following output: +The preceding `jvm_memory` `metric` declaration produces the following output: ```text jvm_memory HeapMemoryUsage.committed=4294967296,HeapMemoryUsage.init=4294967296,HeapMemoryUsage.max=4294967296,HeapMemoryUsage.used=1750658992,NonHeapMemoryUsage.committed=67350528,NonHeapMemoryUsage.init=2555904,NonHeapMemoryUsage.max=-1,NonHeapMemoryUsage.used=65821352,ObjectPendingFinalizationCount=0 1503762436000000000 @@ -92,7 +107,7 @@ by capturing values into `tag_keys`. ``` Since `name=*` matches both `G1 Old Generation` and `G1 Young Generation`, and -`name` is used as a tag, the preceeding `jvm_garbage_collector` `metric` +`name` is used as a tag, the preceding `jvm_garbage_collector` `metric` declaration produces two metrics. ```shell @@ -111,7 +126,7 @@ Use `tag_prefix` along with `tag_keys` to add detail to tag names. tag_prefix = "pool_" ``` -The preceeding `jvm_memory_pool` `metric` declaration produces six metrics, each +The preceding `jvm_memory_pool` `metric` declaration produces six metrics, each with a distinct `pool_name` tag. ```text @@ -136,7 +151,7 @@ the property-key `name`, and `$2` represents the value of the property-key tag_keys = ["topic"] ``` -The preceeding `kafka_topic` `metric` declaration produces a metric per Kafka +The preceding `kafka_topic` `metric` declaration produces a metric per Kafka topic. The `name` Mbean property-key is used as a field prefix to aid in gathering fields together into the single metric. diff --git a/src/writeData/components/telegrafPlugins/jolokia2_proxy.md b/src/writeData/components/telegrafPlugins/jolokia2_proxy.md index 0402e34855..a886771c4b 100644 --- a/src/writeData/components/telegrafPlugins/jolokia2_proxy.md +++ b/src/writeData/components/telegrafPlugins/jolokia2_proxy.md @@ -1,8 +1,22 @@ # Jolokia2 Proxy Input Plugin -The `jolokia2_proxy` input plugin reads JMX metrics from one or more _targets_ -by interacting with a [Jolokia proxy](https://jolokia.org/features/proxy.html) -REST endpoint. +This plugin reads JMX metrics from one or more _targets_ by interacting with a +[Jolokia proxy][jolokia_proxy] REST endpoint. + +⭐ Telegraf v1.5.0 +🏷️ applications, network +💻 all + +[jolokia_proxy]: https://jolokia.org/features/proxy.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration diff --git a/src/writeData/components/telegrafPlugins/jti_openconfig_telemetry.md b/src/writeData/components/telegrafPlugins/jti_openconfig_telemetry.md index a638c0cbbb..7c52cdb903 100644 --- a/src/writeData/components/telegrafPlugins/jti_openconfig_telemetry.md +++ b/src/writeData/components/telegrafPlugins/jti_openconfig_telemetry.md @@ -1,11 +1,34 @@ -# JTI OpenConfig Telemetry Input Plugin +# Juniper Telemetry Input Plugin -This plugin reads Juniper Networks implementation of OpenConfig telemetry data -from listed sensors using Junos Telemetry Interface. Refer to -[openconfig.net](http://openconfig.net/) for more details about OpenConfig and -[Junos Telemetry Interface (JTI)][1]. +This service plugin reads [OpenConfig][openconfig] telemetry data via the +[Junos Telemetry Interface (JTI)][jti] from configured from listed sensors. -[1]: https://www.juniper.net/documentation/en_US/junos/topics/concept/junos-telemetry-interface-oveview.html +⭐ Telegraf v1.7.0 +🏷️ network, iot +💻 all + +[openconfig]: http://openconfig.net/ +[jti]: https://www.juniper.net/documentation/en_US/junos/topics/concept/junos-telemetry-interface-oveview.html + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -45,8 +68,13 @@ from listed sensors using Junos Telemetry Interface. Refer to "/interfaces", ] + ## Timestamp Source + ## Set to 'collection' for time of collection, and 'data' for using the time + ## provided by the _timestamp field. + # timestamp_source = "collection" + ## Optional TLS Config - # enable_tls = true + # enable_tls = false # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" @@ -59,6 +87,10 @@ from listed sensors using Junos Telemetry Interface. Refer to ## Failed streams/calls will not be retried if 0 is provided retry_delay = "1000ms" + ## Period for sending keep-alive packets on idle connections + ## This is helpful to identify broken connections to the server + # keep_alive_period = "10s" + ## To treat all string values as tags, set this to true str_as_tags = false ``` diff --git a/src/writeData/components/telegrafPlugins/kafka_consumer.md b/src/writeData/components/telegrafPlugins/kafka_consumer.md index 56fdba0000..e6f4888fd1 100644 --- a/src/writeData/components/telegrafPlugins/kafka_consumer.md +++ b/src/writeData/components/telegrafPlugins/kafka_consumer.md @@ -1,10 +1,63 @@ -# Kafka Consumer Input Plugin +# Apache Kafka Consumer Input Plugin -The [Kafka][kafka] consumer plugin reads from Kafka -and creates metrics using one of the supported [input data formats][]. +This service plugin consumes messages from [Kafka brokers][kafka] in one of the +supported [data formats][data_formats]. The plugin uses +[consumer groups][consumer_groups] when talking to the Kafka cluster so multiple +instances of Telegraf can consume messages from the same topic in parallel. -For old kafka version (< 0.8), please use the [kafka_consumer_legacy][] input -plugin and use the old zookeeper connection method. +⭐ Telegraf v0.2.3 +🏷️ messaging +💻 all + +[kafka]: https://kafka.apache.org +[consumer_groups]: http://godoc.org/github.com/wvanbergen/kafka/consumergroup +[data_formats]: /docs/DATA_FORMATS_INPUT.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Startup error behavior options + +In addition to the plugin-specific and global configuration settings the plugin +supports options for specifying the behavior when experiencing startup errors +using the `startup_error_behavior` setting. Available values are: + +- `error`: Telegraf with stop and exit in case of startup errors. This is the + default behavior. +- `ignore`: Telegraf will ignore startup errors for this plugin and disables it + but continues processing for all other plugins. +- `retry`: Telegraf will try to startup the plugin in every gather or write + cycle in case of startup errors. The plugin is disabled until + the startup succeeds. +- `probe`: Telegraf will probe the plugin's function (if possible) and disables + the plugin in case probing fails. If the plugin does not support + probing, Telegraf will behave as if `ignore` was set instead. + +## Secret-store support + +This plugin supports secrets from secret-stores for the `sasl_username`, +`sasl_password` and `sasl_access_token` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -14,38 +67,68 @@ plugin and use the old zookeeper connection method. ## Kafka brokers. brokers = ["localhost:9092"] + ## Set the minimal supported Kafka version. Should be a string contains + ## 4 digits in case if it is 0 version and 3 digits for versions starting + ## from 1.0.0 separated by dot. This setting enables the use of new + ## Kafka features and APIs. Must be 0.10.2.0(used as default) or greater. + ## Please, check the list of supported versions at + ## https://pkg.go.dev/github.com/Shopify/sarama#SupportedVersions + ## ex: kafka_version = "2.6.0" + ## ex: kafka_version = "0.10.2.0" + # kafka_version = "0.10.2.0" + ## Topics to consume. topics = ["telegraf"] + ## Topic regular expressions to consume. Matches will be added to topics. + ## Example: topic_regexps = [ "*test", "metric[0-9A-z]*" ] + # topic_regexps = [ ] + ## When set this tag will be added to all metrics with the topic as the value. # topic_tag = "" + ## The list of Kafka message headers that should be pass as metric tags + ## works only for Kafka version 0.11+, on lower versions the message headers + ## are not available + # msg_headers_as_tags = [] + + ## The name of kafka message header which value should override the metric name. + ## In case when the same header specified in current option and in msg_headers_as_tags + ## option, it will be excluded from the msg_headers_as_tags list. + # msg_header_as_metric_name = "" + + ## Set metric(s) timestamp using the given source. + ## Available options are: + ## metric -- do not modify the metric timestamp + ## inner -- use the inner message timestamp (Kafka v0.10+) + ## outer -- use the outer (compressed) block timestamp (Kafka v0.10+) + # timestamp_source = "metric" + ## Optional Client id # client_id = "Telegraf" - ## Set the minimal supported Kafka version. Setting this enables the use of new - ## Kafka features and APIs. Must be 0.10.2.0 or greater. - ## ex: version = "1.1.0" - # version = "" - ## Optional TLS Config + # enable_tls = false # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" ## Use TLS but skip chain & host verification # insecure_skip_verify = false - ## SASL authentication credentials. These settings should typically be used + ## Period between keep alive probes. + ## Defaults to the OS configuration if not specified or zero. + # keep_alive_period = "15s" + + ## SASL authentication credentials. These settings should typically be used ## with TLS encryption enabled - # sasl_username = "kafka" - # sasl_password = "secret" + # sasl_username = "" + # sasl_password = "" - ## Optional SASL: - ## one of: OAUTHBEARER, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI - ## (defaults to PLAIN) + ## Optional SASL, one of: + ## OAUTHBEARER, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI, AWS-MSK-IAM # sasl_mechanism = "" - ## used if sasl_mechanism is GSSAPI (experimental) + ## used if sasl_mechanism is GSSAPI # sasl_gssapi_service_name = "" # ## One of: KRB5_USER_AUTH and KRB5_KEYTAB_AUTH # sasl_gssapi_auth_type = "KRB5_USER_AUTH" @@ -54,10 +137,22 @@ plugin and use the old zookeeper connection method. # sasl_gssapi_key_tab_path = "" # sasl_gssapi_disable_pafxfast = false - ## used if sasl_mechanism is OAUTHBEARER (experimental) + ## used if sasl_mechanism is OAUTHBEARER # sasl_access_token = "" - ## SASL protocol version. When connecting to Azure EventHub set to 0. + ## used if sasl_mechanism is AWS-MSK-IAM + # sasl_aws_msk_iam_region = "" + ## for profile based auth + ## sasl_aws_msk_iam_profile = "" + ## for role based auth + ## sasl_aws_msk_iam_role = "" + ## sasl_aws_msk_iam_session = "" + + ## Arbitrary key value string pairs to pass as a TOML table. For example: + ## {logicalCluster = "cluster-042", poolId = "pool-027"} + # sasl_extensions = {} + + ## SASL protocol version. When connecting to Azure EventHub set to 0. # sasl_version = 1 # Disable Kafka metadata full fetch @@ -80,18 +175,44 @@ plugin and use the old zookeeper connection method. ## Consumer group partition assignment strategy; one of "range", "roundrobin" or "sticky". # balance_strategy = "range" + ## Maximum number of retries for metadata operations including + ## connecting. Sets Sarama library's Metadata.Retry.Max config value. If 0 or + ## unset, use the Sarama default of 3, + # metadata_retry_max = 0 + + ## Type of retry backoff. Valid options: "constant", "exponential" + # metadata_retry_type = "constant" + + ## Amount of time to wait before retrying. When metadata_retry_type is + ## "constant", each retry is delayed this amount. When "exponential", the + ## first retry is delayed this amount, and subsequent delays are doubled. If 0 + ## or unset, use the Sarama default of 250 ms + # metadata_retry_backoff = 0 + + ## Maximum amount of time to wait before retrying when metadata_retry_type is + ## "exponential". Ignored for other retry types. If 0, there is no backoff + ## limit. + # metadata_retry_max_duration = 0 + + ## When set to true, this turns each bootstrap broker address into a set of + ## IPs, then does a reverse lookup on each one to get its canonical hostname. + ## This list of hostnames then replaces the original address list. + ## resolve_canonical_bootstrap_servers_only = false + ## Maximum length of a message to consume, in bytes (default 0/unlimited); ## larger messages are dropped max_message_len = 1000000 - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Maximum amount of time the consumer should take to process messages. If @@ -114,9 +235,14 @@ plugin and use the old zookeeper connection method. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md - data_format = "influx" + # data_format = "influx" ``` -[kafka]: https://kafka.apache.org -[kafka_consumer_legacy]: /plugins/inputs/kafka_consumer_legacy/README.md -[input data formats]: /docs/DATA_FORMATS_INPUT.md +## Metrics + +The plugin accepts arbitrary input and parses it according to the `data_format` +setting. There is no predefined metric format. + +## Example Output + +There is no predefined metric format, so output depends on plugin input. diff --git a/src/writeData/components/telegrafPlugins/kapacitor.md b/src/writeData/components/telegrafPlugins/kapacitor.md index b8d7cf6e55..0328312e1f 100644 --- a/src/writeData/components/telegrafPlugins/kapacitor.md +++ b/src/writeData/components/telegrafPlugins/kapacitor.md @@ -1,6 +1,22 @@ # Kapacitor Input Plugin -The Kapacitor plugin collects metrics from the given Kapacitor instances. +This plugin collects metrics from the configured +[InfluxData Kapacitor][kapacitor] instances. + +⭐ Telegraf v1.3.0 +🏷️ applications +💻 all + +[kapacitor]: https://www.influxdata.com/time-series-platform/kapacitor/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -24,7 +40,9 @@ The Kapacitor plugin collects metrics from the given Kapacitor instances. # insecure_skip_verify = false ``` -## Measurements and fields +## Metrics + +### Measurements and fields - [kapacitor](#kapacitor) - [num_enabled_tasks](#num_enabled_tasks) _(integer)_ @@ -115,7 +133,7 @@ The total number of Kapacitor tasks. ## kapacitor_alert The `kapacitor_alert` measurement stores fields with information related to -[Kapacitor alerts](https://docs.influxdata.com/kapacitor/latest/working/alerts/). +[Kapacitor alerts](https://docs.influxdata.com/kapacitor/v1.5/working/alerts/). ### notification-dropped @@ -384,74 +402,72 @@ these values. ## Example Output -```shell -$ telegraf --config /etc/telegraf.conf --input-filter kapacitor --test -* Plugin: inputs.kapacitor, Collection 1 -> kapacitor_memstats,host=hostname.local,kap_version=1.1.0~rc2,url=http://localhost:9092/kapacitor/v1/debug/vars alloc_bytes=6974808i,buck_hash_sys_bytes=1452609i,frees=207281i,gc_sys_bytes=802816i,gc_cpu_fraction=0.00004693548939673313,heap_alloc_bytes=6974808i,heap_idle_bytes=6742016i,heap_in_use_bytes=9183232i,heap_objects=23216i,heap_released_bytes=0i,heap_sys_bytes=15925248i,last_gc_ns=1478791460012676997i,lookups=88i,mallocs=230497i,mcache_in_use_bytes=9600i,mcache_sys_bytes=16384i,mspan_in_use_bytes=98560i,mspan_sys_bytes=131072i,next_gc_ns=11467528i,num_gc=8i,other_sys_bytes=2236087i,pause_total_ns=2994110i,stack_in_use_bytes=1900544i,stack_sys_bytes=1900544i,sys_bytes=22464760i,total_alloc_bytes=35023600i 1478791462000000000 -> kapacitor,host=hostname.local,kap_version=1.1.0~rc2,url=http://localhost:9092/kapacitor/v1/debug/vars num_enabled_tasks=5i,num_subscriptions=5i,num_tasks=5i 1478791462000000000 -> kapacitor_edges,child=stream0,host=hostname.local,parent=stream,task=deadman-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=shard,retention_policy=monitor,task_master=main points_received=120 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=subscriber,retention_policy=monitor,task_master=main points_received=60 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=http_out,node=http_out3,task=sys-stats,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_edges,child=window6,host=hostname.local,parent=derivative5,task=deadman-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=from,node=from1,task=sys-stats,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=stream,node=stream0,task=test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=window,node=window6,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=cq,retention_policy=monitor,task_master=main points_received=10 1478791462000000000 -> kapacitor_edges,child=http_out3,host=hostname.local,parent=window2,task=sys-stats,type=batch collected=0,emitted=0 1478791462000000000 -> kapacitor_edges,child=mean4,host=hostname.local,parent=log3,task=deadman-test,type=batch collected=0,emitted=0 1478791462000000000 -> kapacitor_ingress,database=_kapacitor,host=hostname.local,measurement=nodes,retention_policy=autogen,task_master=main points_received=207 1478791462000000000 -> kapacitor_edges,child=stream0,host=hostname.local,parent=stream,task=sys-stats,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_edges,child=log6,host=hostname.local,parent=sum5,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_edges,child=from1,host=hostname.local,parent=stream0,task=sys-stats,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=alert,node=alert2,task=test,type=stream alerts_triggered=0,avg_exec_time_ns=0i,crits_triggered=0,infos_triggered=0,oks_triggered=0,warns_triggered=0 1478791462000000000 -> kapacitor_edges,child=log3,host=hostname.local,parent=derivative2,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_ingress,database=_kapacitor,host=hostname.local,measurement=runtime,retention_policy=autogen,task_master=main points_received=9 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=tsm1_filestore,retention_policy=monitor,task_master=main points_received=120 1478791462000000000 -> kapacitor_edges,child=derivative2,host=hostname.local,parent=from1,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=stream,node=stream0,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=queryExecutor,retention_policy=monitor,task_master=main points_received=10 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=tsm1_wal,retention_policy=monitor,task_master=main points_received=120 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=log,node=log6,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_edges,child=stream,host=hostname.local,parent=stats,task=task_master:main,type=stream collected=598,emitted=598 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=write,retention_policy=monitor,task_master=main points_received=10 1478791462000000000 -> kapacitor_edges,child=stream0,host=hostname.local,parent=stream,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=log,node=log3,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=from,node=from1,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_ingress,database=_kapacitor,host=hostname.local,measurement=ingress,retention_policy=autogen,task_master=main points_received=148 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=eval,node=eval4,task=derivative-test,type=stream avg_exec_time_ns=0i,eval_errors=0 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=derivative,node=derivative2,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=runtime,retention_policy=monitor,task_master=main points_received=10 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=httpd,retention_policy=monitor,task_master=main points_received=10 1478791462000000000 -> kapacitor_edges,child=sum5,host=hostname.local,parent=eval4,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_ingress,database=_kapacitor,host=hostname.local,measurement=kapacitor,retention_policy=autogen,task_master=main points_received=9 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=from,node=from1,task=test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=tsm1_engine,retention_policy=monitor,task_master=main points_received=120 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=window,node=window2,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=stream,node=stream0,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_edges,child=influxdb_out4,host=hostname.local,parent=http_out3,task=sys-stats,type=batch collected=0,emitted=0 1478791462000000000 -> kapacitor_edges,child=window2,host=hostname.local,parent=from1,task=deadman-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=from,node=from1,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_edges,child=from1,host=hostname.local,parent=stream0,task=deadman-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=database,retention_policy=monitor,task_master=main points_received=40 1478791462000000000 -> kapacitor_edges,child=stream,host=hostname.local,parent=write_points,task=task_master:main,type=stream collected=750,emitted=750 1478791462000000000 -> kapacitor_edges,child=log7,host=hostname.local,parent=window6,task=deadman-test,type=batch collected=0,emitted=0 1478791462000000000 -> kapacitor_edges,child=window2,host=hostname.local,parent=from1,task=sys-stats,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=log,node=log7,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_ingress,database=_kapacitor,host=hostname.local,measurement=edges,retention_policy=autogen,task_master=main points_received=225 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=derivative,node=derivative5,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_edges,child=from1,host=hostname.local,parent=stream0,task=test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_edges,child=alert2,host=hostname.local,parent=from1,task=test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=log,node=log3,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=influxdb_out,node=influxdb_out4,task=sys-stats,type=stream avg_exec_time_ns=0i,points_written=0,write_errors=0 1478791462000000000 -> kapacitor_edges,child=stream0,host=hostname.local,parent=stream,task=test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_edges,child=log3,host=hostname.local,parent=window2,task=deadman-test,type=batch collected=0,emitted=0 1478791462000000000 -> kapacitor_edges,child=derivative5,host=hostname.local,parent=mean4,task=deadman-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=stream,node=stream0,task=sys-stats,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=window,node=window2,task=sys-stats,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=mean,node=mean4,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_edges,child=from1,host=hostname.local,parent=stream0,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 -> kapacitor_ingress,database=_internal,host=hostname.local,measurement=tsm1_cache,retention_policy=monitor,task_master=main points_received=120 1478791462000000000 -> kapacitor_nodes,host=hostname.local,kind=sum,node=sum5,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 -> kapacitor_edges,child=eval4,host=hostname.local,parent=log3,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 +```text +kapacitor_memstats,host=hostname.local,kap_version=1.1.0~rc2,url=http://localhost:9092/kapacitor/v1/debug/vars alloc_bytes=6974808i,buck_hash_sys_bytes=1452609i,frees=207281i,gc_sys_bytes=802816i,gc_cpu_fraction=0.00004693548939673313,heap_alloc_bytes=6974808i,heap_idle_bytes=6742016i,heap_in_use_bytes=9183232i,heap_objects=23216i,heap_released_bytes=0i,heap_sys_bytes=15925248i,last_gc_ns=1478791460012676997i,lookups=88i,mallocs=230497i,mcache_in_use_bytes=9600i,mcache_sys_bytes=16384i,mspan_in_use_bytes=98560i,mspan_sys_bytes=131072i,next_gc_ns=11467528i,num_gc=8i,other_sys_bytes=2236087i,pause_total_ns=2994110i,stack_in_use_bytes=1900544i,stack_sys_bytes=1900544i,sys_bytes=22464760i,total_alloc_bytes=35023600i 1478791462000000000 +kapacitor,host=hostname.local,kap_version=1.1.0~rc2,url=http://localhost:9092/kapacitor/v1/debug/vars num_enabled_tasks=5i,num_subscriptions=5i,num_tasks=5i 1478791462000000000 +kapacitor_edges,child=stream0,host=hostname.local,parent=stream,task=deadman-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=shard,retention_policy=monitor,task_master=main points_received=120 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=subscriber,retention_policy=monitor,task_master=main points_received=60 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=http_out,node=http_out3,task=sys-stats,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_edges,child=window6,host=hostname.local,parent=derivative5,task=deadman-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=from,node=from1,task=sys-stats,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=stream,node=stream0,task=test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=window,node=window6,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=cq,retention_policy=monitor,task_master=main points_received=10 1478791462000000000 +kapacitor_edges,child=http_out3,host=hostname.local,parent=window2,task=sys-stats,type=batch collected=0,emitted=0 1478791462000000000 +kapacitor_edges,child=mean4,host=hostname.local,parent=log3,task=deadman-test,type=batch collected=0,emitted=0 1478791462000000000 +kapacitor_ingress,database=_kapacitor,host=hostname.local,measurement=nodes,retention_policy=autogen,task_master=main points_received=207 1478791462000000000 +kapacitor_edges,child=stream0,host=hostname.local,parent=stream,task=sys-stats,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_edges,child=log6,host=hostname.local,parent=sum5,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_edges,child=from1,host=hostname.local,parent=stream0,task=sys-stats,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=alert,node=alert2,task=test,type=stream alerts_triggered=0,avg_exec_time_ns=0i,crits_triggered=0,infos_triggered=0,oks_triggered=0,warns_triggered=0 1478791462000000000 +kapacitor_edges,child=log3,host=hostname.local,parent=derivative2,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_ingress,database=_kapacitor,host=hostname.local,measurement=runtime,retention_policy=autogen,task_master=main points_received=9 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=tsm1_filestore,retention_policy=monitor,task_master=main points_received=120 1478791462000000000 +kapacitor_edges,child=derivative2,host=hostname.local,parent=from1,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=stream,node=stream0,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=queryExecutor,retention_policy=monitor,task_master=main points_received=10 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=tsm1_wal,retention_policy=monitor,task_master=main points_received=120 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=log,node=log6,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_edges,child=stream,host=hostname.local,parent=stats,task=task_master:main,type=stream collected=598,emitted=598 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=write,retention_policy=monitor,task_master=main points_received=10 1478791462000000000 +kapacitor_edges,child=stream0,host=hostname.local,parent=stream,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=log,node=log3,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=from,node=from1,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_ingress,database=_kapacitor,host=hostname.local,measurement=ingress,retention_policy=autogen,task_master=main points_received=148 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=eval,node=eval4,task=derivative-test,type=stream avg_exec_time_ns=0i,eval_errors=0 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=derivative,node=derivative2,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=runtime,retention_policy=monitor,task_master=main points_received=10 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=httpd,retention_policy=monitor,task_master=main points_received=10 1478791462000000000 +kapacitor_edges,child=sum5,host=hostname.local,parent=eval4,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_ingress,database=_kapacitor,host=hostname.local,measurement=kapacitor,retention_policy=autogen,task_master=main points_received=9 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=from,node=from1,task=test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=tsm1_engine,retention_policy=monitor,task_master=main points_received=120 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=window,node=window2,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=stream,node=stream0,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_edges,child=influxdb_out4,host=hostname.local,parent=http_out3,task=sys-stats,type=batch collected=0,emitted=0 1478791462000000000 +kapacitor_edges,child=window2,host=hostname.local,parent=from1,task=deadman-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=from,node=from1,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_edges,child=from1,host=hostname.local,parent=stream0,task=deadman-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=database,retention_policy=monitor,task_master=main points_received=40 1478791462000000000 +kapacitor_edges,child=stream,host=hostname.local,parent=write_points,task=task_master:main,type=stream collected=750,emitted=750 1478791462000000000 +kapacitor_edges,child=log7,host=hostname.local,parent=window6,task=deadman-test,type=batch collected=0,emitted=0 1478791462000000000 +kapacitor_edges,child=window2,host=hostname.local,parent=from1,task=sys-stats,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=log,node=log7,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_ingress,database=_kapacitor,host=hostname.local,measurement=edges,retention_policy=autogen,task_master=main points_received=225 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=derivative,node=derivative5,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_edges,child=from1,host=hostname.local,parent=stream0,task=test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_edges,child=alert2,host=hostname.local,parent=from1,task=test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=log,node=log3,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=influxdb_out,node=influxdb_out4,task=sys-stats,type=stream avg_exec_time_ns=0i,points_written=0,write_errors=0 1478791462000000000 +kapacitor_edges,child=stream0,host=hostname.local,parent=stream,task=test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_edges,child=log3,host=hostname.local,parent=window2,task=deadman-test,type=batch collected=0,emitted=0 1478791462000000000 +kapacitor_edges,child=derivative5,host=hostname.local,parent=mean4,task=deadman-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=stream,node=stream0,task=sys-stats,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=window,node=window2,task=sys-stats,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=mean,node=mean4,task=deadman-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_edges,child=from1,host=hostname.local,parent=stream0,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 +kapacitor_ingress,database=_internal,host=hostname.local,measurement=tsm1_cache,retention_policy=monitor,task_master=main points_received=120 1478791462000000000 +kapacitor_nodes,host=hostname.local,kind=sum,node=sum5,task=derivative-test,type=stream avg_exec_time_ns=0i 1478791462000000000 +kapacitor_edges,child=eval4,host=hostname.local,parent=log3,task=derivative-test,type=stream collected=0,emitted=0 1478791462000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/kernel.md b/src/writeData/components/telegrafPlugins/kernel.md index 7e579d4fc5..f0f77c581f 100644 --- a/src/writeData/components/telegrafPlugins/kernel.md +++ b/src/writeData/components/telegrafPlugins/kernel.md @@ -1,69 +1,121 @@ # Kernel Input Plugin -This plugin is only available on Linux. +This plugin gathers metrics about the [Linux kernel][kernel] including, among +others, the [available entropy][entropy], [Kernel Samepage Merging][ksm] and +[Pressure Stall Information][psi]. -The kernel plugin gathers info about the kernel that doesn't fit into other -plugins. In general, it is the statistics available in `/proc/stat` that are not -covered by other plugins as well as the value of -`/proc/sys/kernel/random/entropy_avail` +⭐ Telegraf v0.11.0 +🏷️ system +💻 linux -The metrics are documented in `man proc` under the `/proc/stat` section. -The metrics are documented in `man 4 random` under the `/proc/stat` section. +[kernel]: https://kernel.org/ +[entropy]: https://www.kernel.org/doc/html/latest/admin-guide/sysctl/kernel.html#random +[ksm]: https://www.kernel.org/doc/html/latest/mm/ksm.html +[psi]: https://www.kernel.org/doc/html/latest/accounting/psi.html -```text,/proc/sys/kernel/random/entropy_avail -Contains the value of available entropy +## Global configuration options -/proc/stat -kernel/system statistics. Varies with architecture. Common entries include: +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -page 5741 1808 -The number of pages the system paged in and the number that were paged out (from disk). - -swap 1 0 -The number of swap pages that have been brought in and out. - -intr 1462898 -This line shows counts of interrupts serviced since boot time, for each of -the possible system interrupts. The first column is the total of all -interrupts serviced; each subsequent column is the total for a particular interrupt. - -ctxt 115315 -The number of context switches that the system underwent. - -btime 769041601 -boot time, in seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). - -processes 86031 -Number of forks since boot. -``` +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf -# Get kernel statistics from /proc/stat +# Plugin to collect various Linux kernel statistics. +# This plugin ONLY supports Linux [[inputs.kernel]] - # no configuration + ## Additional gather options + ## Possible options include: + ## * ksm - kernel same-page merging + ## * psi - pressure stall information + # collect = [] ``` -## Measurements & Fields +Please check the documentation of the underlying kernel interfaces in the +`/proc/stat` section of the [proc man page][man_proc], as well as in the +`/proc interfaces` section of the [random man page][man_random]. -- kernel - - boot_time (integer, seconds since epoch, `btime`) - - context_switches (integer, `ctxt`) - - disk_pages_in (integer, `page (0)`) - - disk_pages_out (integer, `page (1)`) - - interrupts (integer, `intr`) - - processes_forked (integer, `processes`) - - entropy_avail (integer, `entropy_available`) +Kernel Samepage Merging is generally documented in the +[kernel documentation][ksm] and the available metrics exposed via sysfs +are documented in the [admin guide][ksm_admin]. -## Tags +Pressure Stall Information is exposed through `/proc/pressure` and is documented +in [kernel documentation][psi]. Kernel version 4.20+ is required. -None +[ksm_admin]: https://www.kernel.org/doc/html/latest/admin-guide/mm/ksm.html#ksm-daemon-sysfs-interface +[man_proc]: http://man7.org/linux/man-pages/man5/proc.5.html +[man_random]: https://man7.org/linux/man-pages/man4/random.4.html + +## Metrics + +- kernel + - boot_time (int) - seconds since epoch, `btime` + - context_switches (int) - number of context switches `ctxt` + - disk_pages_in (int) - `page (0)` + - disk_pages_out (int) - `page (1)` + - interrupts (int) - number of interrupts `intr` + - processes_forked (int) - number of forked processes `processes` + - entropy_avail (int) - entropy currently available `entropy_available` + - ksm_full_scans (int) - number of scans of all mergeable areas `full_scans` + - ksm_max_page_sharing (int) - maximum sharing allowed for each KSM page `max_page_sharing` + - ksm_merge_across_nodes (int) - flag for merging of pages across NUMA nodes `merge_across_nodes` + - ksm_pages_shared (int) - number of shared pages are being used `pages_shared` + - ksm_pages_sharing (int) - number of sites sharing pages `pages_sharing` + - ksm_pages_to_scan (int) - number of pages to scan before ksmd sleep `pages_to_scan` + - ksm_pages_unshared (int) - number of pages unique but repeatedly checked + for merging `pages_unshared` + - ksm_pages_volatile (int) - number of pages changing too fast to be + placed in a tree `pages_volatile` + - ksm_run (int) - flag for ksm is running or not `run` + - ksm_sleep_millisecs (int) - sleep time for ksmd between scans `sleep_millisecs` + - ksm_stable_node_chains (int) - number of KSM pages hitting the + max_page_sharing limit `stable_node_chains` + - ksm_stable_node_chains_prune_millisecs (int) - frequency for KSM checks of + page metadata hitting the + deduplication limit `stable_node_chains_prune_millisecs` + - ksm_stable_node_dups (int) - number of duplicated KSM pages, `stable_node_dups` + - ksm_use_zero_pages (int) - flag for empty pages being treated specially + `use_zero_pages` + +- pressure (if `psi` is included in `collect`) + - tags: + - resource: cpu, memory, or io + - type: some or full + - floating-point fields: avg10, avg60, avg300 + - integer fields: total ## Example Output -```shell -$ telegraf --config ~/ws/telegraf.conf --input-filter kernel --test -* Plugin: kernel, Collection 1 -> kernel entropy_available=2469i,boot_time=1457505775i,context_switches=2626618i,disk_pages_in=5741i,disk_pages_out=1808i,interrupts=1472736i,processes_forked=10673i 1457613402960879816 +Default config: + +```text +kernel boot_time=1690487872i,context_switches=321398652i,entropy_avail=256i,interrupts=141868628i,processes_forked=946492i 1691339564000000000 +``` + +If `ksm` is included in `collect`: + +```text +kernel boot_time=1690487872i,context_switches=321252729i,entropy_avail=256i,interrupts=141783427i,ksm_full_scans=0i,ksm_max_page_sharing=256i,ksm_merge_across_nodes=1i,ksm_pages_shared=0i,ksm_pages_sharing=0i,ksm_pages_to_scan=100i,ksm_pages_unshared=0i,ksm_pages_volatile=0i,ksm_run=0i,ksm_sleep_millisecs=20i,ksm_stable_node_chains=0i,ksm_stable_node_chains_prune_millisecs=2000i,ksm_stable_node_dups=0i,ksm_use_zero_pages=0i,processes_forked=946467i 1691339522000000000 +``` + +If `psi` is included in `collect`: + +```text +pressure,resource=cpu,type=some avg10=1.53,avg60=1.87,avg300=1.73 1700000000000000000 +pressure,resource=memory,type=some avg10=0.00,avg60=0.00,avg300=0.00 1700000000000000000 +pressure,resource=memory,type=full avg10=0.00,avg60=0.00,avg300=0.00 1700000000000000000 +pressure,resource=io,type=some avg10=0.0,avg60=0.0,avg300=0.0 1700000000000000000 +pressure,resource=io,type=full avg10=0.0,avg60=0.0,avg300=0.0 1700000000000000000 +pressure,resource=cpu,type=some total=1088168194i 1700000000000000000 +pressure,resource=memory,type=some total=3463792i 1700000000000000000 +pressure,resource=memory,type=full total=1429641i 1700000000000000000 +pressure,resource=io,type=some total=68568296i 1700000000000000000 +pressure,resource=io,type=full total=54982338i 1700000000000000000 ``` + +Note that the combination for `resource=cpu,type=full` is omitted because it is +always zero. diff --git a/src/writeData/components/telegrafPlugins/kernel_vmstat.md b/src/writeData/components/telegrafPlugins/kernel_vmstat.md index 0da5678339..e75ed4fa18 100644 --- a/src/writeData/components/telegrafPlugins/kernel_vmstat.md +++ b/src/writeData/components/telegrafPlugins/kernel_vmstat.md @@ -1,125 +1,37 @@ -# Kernel VMStat Input Plugin +# Kernel VM Statistics Input Plugin -The kernel_vmstat plugin gathers virtual memory statistics by reading -/proc/vmstat. For a full list of available fields see the /proc/vmstat section -of the [proc man page][man-proc]. For a better idea of what each field -represents, see the [vmstat man page][man-vmstat]. +This plugin gathers virtual memory statistics of the [Linux kernel][kernel] by +reading `/proc/vmstat`. For a full list of available fields check the +`/proc/vmstat` section of the [proc man page][man_proc] and for a detailed +description about the fields see the [vmstat man page][man_vmstat]. -[man-proc]: http://man7.org/linux/man-pages/man5/proc.5.html +⭐ Telegraf v1.0.0 +🏷️ system +💻 linux -[man-vmstat]: http://linux.die.net/man/8/vmstat +[kernel]: https://kernel.org/ +[man_proc]: http://man7.org/linux/man-pages/man5/proc.5.html +[man_vmstat]: https://man7.org/linux/man-pages/man8/vmstat.8.html -```text -/proc/vmstat -kernel/system statistics. Common entries include (from http://www.linuxinsight.com/proc_vmstat.html): - -Number of pages that are dirty, under writeback or unstable: - -nr_dirty 1550 -nr_writeback 0 -nr_unstable 0 - -Number of pages allocated to page tables, mapped by files or allocated by the kernel slab allocator: - -nr_page_table_pages 699 -nr_mapped 139596 -nr_slab 42723 - -Number of pageins and pageouts (since the last boot): - -pgpgin 33754195 -pgpgout 38985992 - -Number of swapins and swapouts (since the last boot): - -pswpin 2473 -pswpout 2995 - -Number of page allocations per zone (since the last boot): - -pgalloc_high 0 -pgalloc_normal 110123213 -pgalloc_dma32 0 -pgalloc_dma 415219 - -Number of page frees, activations and deactivations (since the last boot): - -pgfree 110549163 -pgactivate 4509729 -pgdeactivate 2136215 - -Number of minor and major page faults (since the last boot): - -pgfault 80663722 -pgmajfault 49813 - -Number of page refills (per zone, since the last boot): - -pgrefill_high 0 -pgrefill_normal 5817500 -pgrefill_dma32 0 -pgrefill_dma 149176 - -Number of page steals (per zone, since the last boot): - -pgsteal_high 0 -pgsteal_normal 10421346 -pgsteal_dma32 0 -pgsteal_dma 142196 - -Number of pages scanned by the kswapd daemon (per zone, since the last boot): +## Global configuration options -pgscan_kswapd_high 0 -pgscan_kswapd_normal 10491424 -pgscan_kswapd_dma32 0 -pgscan_kswapd_dma 156130 +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -Number of pages reclaimed directly (per zone, since the last boot): - -pgscan_direct_high 0 -pgscan_direct_normal 11904 -pgscan_direct_dma32 0 -pgscan_direct_dma 225 - -Number of pages reclaimed via inode freeing (since the last boot): - -pginodesteal 11 - -Number of slab objects scanned (since the last boot): - -slabs_scanned 8926976 - -Number of pages reclaimed by kswapd (since the last boot): - -kswapd_steal 10551674 - -Number of pages reclaimed by kswapd via inode freeing (since the last boot): - -kswapd_inodesteal 338730 - -Number of kswapd's calls to page reclaim (since the last boot): - -pageoutrun 181908 - -Number of direct reclaim calls (since the last boot): - -allocstall 160 - -Miscellaneous statistics: - -pgrotated 3781 -nr_bounce 0 -``` +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Get kernel statistics from /proc/vmstat +# This plugin ONLY supports Linux [[inputs.kernel_vmstat]] # no configuration ``` -## Measurements & Fields +## Metrics - kernel_vmstat - nr_free_pages (integer, `nr_free_pages`) @@ -214,14 +126,8 @@ nr_bounce 0 - thp_collapse_alloc_failed (integer, `thp_collapse_alloc_failed`) - thp_split (integer, `thp_split`) -## Tags - -None - ## Example Output -```shell -$ telegraf --config ~/ws/telegraf.conf --input-filter kernel_vmstat --test -* Plugin: kernel_vmstat, Collection 1 -> kernel_vmstat allocstall=81496i,compact_blocks_moved=238196i,compact_fail=135220i,compact_pagemigrate_failed=0i,compact_pages_moved=6370588i,compact_stall=142092i,compact_success=6872i,htlb_buddy_alloc_fail=0i,htlb_buddy_alloc_success=0i,kswapd_high_wmark_hit_quickly=25439i,kswapd_inodesteal=29770874i,kswapd_low_wmark_hit_quickly=8756i,kswapd_skip_congestion_wait=0i,kswapd_steal=291534428i,nr_active_anon=2515657i,nr_active_file=2244914i,nr_anon_pages=1358675i,nr_anon_transparent_hugepages=2034i,nr_bounce=0i,nr_dirty=5690i,nr_file_pages=5153546i,nr_free_pages=78730i,nr_inactive_anon=426259i,nr_inactive_file=2366791i,nr_isolated_anon=0i,nr_isolated_file=0i,nr_kernel_stack=579i,nr_mapped=558821i,nr_mlock=0i,nr_page_table_pages=11115i,nr_shmem=541689i,nr_slab_reclaimable=459806i,nr_slab_unreclaimable=47859i,nr_unevictable=0i,nr_unstable=0i,nr_vmscan_write=6206i,nr_writeback=0i,nr_writeback_temp=0i,numa_foreign=0i,numa_hit=5113399878i,numa_interleave=35793i,numa_local=5113399878i,numa_miss=0i,numa_other=0i,pageoutrun=505006i,pgactivate=375664931i,pgalloc_dma=0i,pgalloc_dma32=122480220i,pgalloc_movable=0i,pgalloc_normal=5233176719i,pgdeactivate=122735906i,pgfault=8699921410i,pgfree=5359765021i,pginodesteal=9188431i,pgmajfault=122210i,pgpgin=219717626i,pgpgout=3495885510i,pgrefill_dma=0i,pgrefill_dma32=1180010i,pgrefill_movable=0i,pgrefill_normal=119866676i,pgrotated=60620i,pgscan_direct_dma=0i,pgscan_direct_dma32=12256i,pgscan_direct_movable=0i,pgscan_direct_normal=31501600i,pgscan_kswapd_dma=0i,pgscan_kswapd_dma32=4480608i,pgscan_kswapd_movable=0i,pgscan_kswapd_normal=287857984i,pgsteal_dma=0i,pgsteal_dma32=4466436i,pgsteal_movable=0i,pgsteal_normal=318463755i,pswpin=2092i,pswpout=6206i,slabs_scanned=93775616i,thp_collapse_alloc=24857i,thp_collapse_alloc_failed=102214i,thp_fault_alloc=346219i,thp_fault_fallback=895453i,thp_split=9817i,unevictable_pgs_cleared=0i,unevictable_pgs_culled=1531i,unevictable_pgs_mlocked=6988i,unevictable_pgs_mlockfreed=0i,unevictable_pgs_munlocked=6988i,unevictable_pgs_rescued=5426i,unevictable_pgs_scanned=0i,unevictable_pgs_stranded=0i,zone_reclaim_failed=0i 1459455200071462843 +```text +kernel_vmstat allocstall=81496i,compact_blocks_moved=238196i,compact_fail=135220i,compact_pagemigrate_failed=0i,compact_pages_moved=6370588i,compact_stall=142092i,compact_success=6872i,htlb_buddy_alloc_fail=0i,htlb_buddy_alloc_success=0i,kswapd_high_wmark_hit_quickly=25439i,kswapd_inodesteal=29770874i,kswapd_low_wmark_hit_quickly=8756i,kswapd_skip_congestion_wait=0i,kswapd_steal=291534428i,nr_active_anon=2515657i,nr_active_file=2244914i,nr_anon_pages=1358675i,nr_anon_transparent_hugepages=2034i,nr_bounce=0i,nr_dirty=5690i,nr_file_pages=5153546i,nr_free_pages=78730i,nr_inactive_anon=426259i,nr_inactive_file=2366791i,nr_isolated_anon=0i,nr_isolated_file=0i,nr_kernel_stack=579i,nr_mapped=558821i,nr_mlock=0i,nr_page_table_pages=11115i,nr_shmem=541689i,nr_slab_reclaimable=459806i,nr_slab_unreclaimable=47859i,nr_unevictable=0i,nr_unstable=0i,nr_vmscan_write=6206i,nr_writeback=0i,nr_writeback_temp=0i,numa_foreign=0i,numa_hit=5113399878i,numa_interleave=35793i,numa_local=5113399878i,numa_miss=0i,numa_other=0i,pageoutrun=505006i,pgactivate=375664931i,pgalloc_dma=0i,pgalloc_dma32=122480220i,pgalloc_movable=0i,pgalloc_normal=5233176719i,pgdeactivate=122735906i,pgfault=8699921410i,pgfree=5359765021i,pginodesteal=9188431i,pgmajfault=122210i,pgpgin=219717626i,pgpgout=3495885510i,pgrefill_dma=0i,pgrefill_dma32=1180010i,pgrefill_movable=0i,pgrefill_normal=119866676i,pgrotated=60620i,pgscan_direct_dma=0i,pgscan_direct_dma32=12256i,pgscan_direct_movable=0i,pgscan_direct_normal=31501600i,pgscan_kswapd_dma=0i,pgscan_kswapd_dma32=4480608i,pgscan_kswapd_movable=0i,pgscan_kswapd_normal=287857984i,pgsteal_dma=0i,pgsteal_dma32=4466436i,pgsteal_movable=0i,pgsteal_normal=318463755i,pswpin=2092i,pswpout=6206i,slabs_scanned=93775616i,thp_collapse_alloc=24857i,thp_collapse_alloc_failed=102214i,thp_fault_alloc=346219i,thp_fault_fallback=895453i,thp_split=9817i,unevictable_pgs_cleared=0i,unevictable_pgs_culled=1531i,unevictable_pgs_mlocked=6988i,unevictable_pgs_mlockfreed=0i,unevictable_pgs_munlocked=6988i,unevictable_pgs_rescued=5426i,unevictable_pgs_scanned=0i,unevictable_pgs_stranded=0i,zone_reclaim_failed=0i 1459455200071462843 ``` diff --git a/src/writeData/components/telegrafPlugins/kibana.md b/src/writeData/components/telegrafPlugins/kibana.md index 9c09850005..a333daf87c 100644 --- a/src/writeData/components/telegrafPlugins/kibana.md +++ b/src/writeData/components/telegrafPlugins/kibana.md @@ -1,11 +1,25 @@ # Kibana Input Plugin -The `kibana` plugin queries the [Kibana][] API to obtain the service status. +This plugin collects metrics about service status from [Kibana][kibana] +instances via the server's API. -- Telegraf minimum version: 1.8 -- Kibana minimum tested version: 6.0 +> [!NOTE] +> This plugin requires Kibana version 6.0+. -[Kibana]: https://www.elastic.co/ +⭐ Telegraf v1.8.0 +🏷️ applications, server +💻 all + +[kibana]: https://www.elastic.co/kibana + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -28,6 +42,13 @@ The `kibana` plugin queries the [Kibana][] API to obtain the service status. # tls_key = "/etc/telegraf/key.pem" ## Use TLS but skip chain & host verification # insecure_skip_verify = false + + ## If 'use_system_proxy' is set to true, Telegraf will check env vars such as + ## HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or their lowercase counterparts). + ## If 'use_system_proxy' is set to false (default) and 'http_proxy_url' is + ## provided, Telegraf will use the specified URL as HTTP proxy. + # use_system_proxy = false + # http_proxy_url = "http://localhost:8888" ``` ## Metrics @@ -52,7 +73,7 @@ The `kibana` plugin queries the [Kibana][] API to obtain the service status. ## Example Output -```shell +```text kibana,host=myhost,name=my-kibana,source=localhost:5601,status=green,version=6.5.4 concurrent_connections=8i,heap_max_bytes=447778816i,heap_total_bytes=447778816i,heap_used_bytes=380603352i,requests_per_sec=1,response_time_avg_ms=57.6,response_time_max_ms=220i,status_code=1i,uptime_ms=6717489805i 1534864502000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/kinesis_consumer.md b/src/writeData/components/telegrafPlugins/kinesis_consumer.md index d85f3653d9..8a6ef70d4f 100644 --- a/src/writeData/components/telegrafPlugins/kinesis_consumer.md +++ b/src/writeData/components/telegrafPlugins/kinesis_consumer.md @@ -1,7 +1,34 @@ # Kinesis Consumer Input Plugin -The [Kinesis][kinesis] consumer plugin reads from a Kinesis data stream -and creates metrics using one of the supported [input data formats][]. +This service input plugin consumes messages from [AWS Kinesis][kinesis] data +stream in one of the supported [data formats][data_formats]. + +⭐ Telegraf v1.10.0 +🏷️ messaging, iot +💻 all + +[kinesis]: https://aws.amazon.com/kinesis/ +[data_formats]: /docs/DATA_FORMATS_INPUT.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -38,40 +65,48 @@ and creates metrics using one of the supported [input data formats][]. ## Kinesis StreamName must exist prior to starting telegraf. streamname = "StreamName" - ## Shard iterator type (only 'TRIM_HORIZON' and 'LATEST' currently supported) + ## Shard iterator type + ## Available options: 'TRIM_HORIZON' (first in non-expired) and 'LATEST' # shard_iterator_type = "TRIM_HORIZON" - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. - ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. - # max_undelivered_messages = 1000 + ## Interval for checking for new records + ## Please consider limits for getting records documented here: + ## https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html + # poll_interval = "250ms" - ## Data format to consume. - ## Each data format has its own unique set of configuration options, read - ## more about them here: - ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md - data_format = "influx" + ## Interval for scanning for new shards created when resharding + ## If set to zero, shards are only scanned once on startup. + # shard_update_interval = "30s" + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## The content encoding of the data from kinesis - ## If you are processing a cloudwatch logs kinesis stream then set this to "gzip" - ## as AWS compresses cloudwatch log data before it is sent to kinesis (aws - ## also base64 encodes the zip byte data before pushing to the stream. The base64 decoding - ## is done automatically by the golang sdk, as data is read from kinesis) - ## + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. + # max_undelivered_messages = 1000 + + ## Content encoding of the record data + ## If you are processing a cloudwatch logs kinesis stream then set this to + ## "gzip" as AWS compresses cloudwatch log data before it is sent to kinesis. # content_encoding = "identity" - ## Optional - ## Configuration for a dynamodb checkpoint - [inputs.kinesis_consumer.checkpoint_dynamodb] - ## unique name for this consumer - app_name = "default" - table_name = "default" + ## Data format of the records to consume + ## See https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md + # data_format = "influx" + + ## Optional: Configuration for DynamoDB backend to store positions in the stream + # [inputs.kinesis_consumer.checkpoint_dynamodb] + # ## Unique name for this consumer + # app_name = "default" + # ## Table to store the sequence numbers in + # table_name = "default" + # ## Interval for persisting data to limit write operations + # # interval = "10s" ``` ### Required AWS IAM permissions @@ -97,5 +132,11 @@ Partition key: namespace Sort key: shard_id ``` -[kinesis]: https://aws.amazon.com/kinesis/ -[input data formats]: /docs/DATA_FORMATS_INPUT.md +## Metrics + +The plugin accepts arbitrary input and parses it according to the `data_format` +setting. There is no predefined metric format. + +## Example Output + +There is no predefined metric format, so output depends on plugin input. diff --git a/src/writeData/components/telegrafPlugins/knx_listener.md b/src/writeData/components/telegrafPlugins/knx_listener.md index f77511bcb8..538195ebaa 100644 --- a/src/writeData/components/telegrafPlugins/knx_listener.md +++ b/src/writeData/components/telegrafPlugins/knx_listener.md @@ -1,9 +1,35 @@ # KNX Input Plugin -The KNX input plugin that listens for messages on the KNX home-automation bus. -This plugin connects to the KNX bus via a KNX-IP interface. -Information about supported KNX message datapoint types can be found at the -underlying "knx-go" project site (). +This service plugin listens for messages on the [KNX home-automation bus][knx] +by connecting via a KNX-IP interface. Information about supported KNX +datapoint-types can be found at the underlying [`knx-go` project][knxgo]. + +⭐ Telegraf v1.19.0 +🏷️ iot +💻 all + +[knx]: https://www.knx.org +[knxgo]: https://github.com/vapourismo/knx-go> + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -11,7 +37,7 @@ underlying "knx-go" project site (). # Listener capable of handling KNX bus messages provided through a KNX-IP Interface. [[inputs.knx_listener]] ## Type of KNX-IP interface. - ## Can be either "tunnel" or "router". + ## Can be either "tunnel_udp", "tunnel_tcp", "tunnel" (alias for tunnel_udp) or "router". # service_type = "tunnel" ## Address of the KNX-IP interface. @@ -23,6 +49,9 @@ underlying "knx-go" project site (). # name = "temperature" # ## Datapoint-Type (DPT) of the KNX messages # dpt = "9.001" + # ## Use the string representation instead of the numerical value for the + # ## datapoint-type and the addresses below + # # as_string = false # ## List of Group-Addresses (GAs) assigned to the measurement # addresses = ["5/5/1"] @@ -32,6 +61,13 @@ underlying "knx-go" project site (). # addresses = ["5/5/3"] ``` +### Related tools + +- [knx-telegraf-config-generator][knx_config_generator]: generates a Telegraf + configuration from a KNX project file + +[knx_config_generator]: https://github.com/svsool/knx-telegraf-config-generator + ### Measurement configurations Each measurement contains only one datapoint-type (DPT) and assigns a list of @@ -39,7 +75,8 @@ addresses to this measurement. You can, for example group all temperature sensor messages within a "temperature" measurement. However, you are free to split messages of one datapoint-type to multiple measurements. -**NOTE: You should not assign a group-address (GA) to multiple measurements!** +> [!IMPORTANT] +> You should not assign a group-address (GA) to multiple measurements! ## Metrics @@ -47,9 +84,9 @@ Received KNX data is stored in the named measurement as configured above using the "value" field. Additional to the value, there are the following tags added to the datapoint: -- "groupaddress": KNX group-address corresponding to the value -- "unit": unit of the value -- "source": KNX physical address sending the value +- `groupaddress`: KNX group-address corresponding to the value +- `unit`: unit of the value +- `source`: KNX physical address sending the value To find out about the datatype of the datapoint please check your KNX project, the KNX-specification or the "knx-go" project for the corresponding DPT. @@ -58,7 +95,7 @@ the KNX-specification or the "knx-go" project for the corresponding DPT. This section shows example output in Line Protocol format. -```shell +```text illumination,groupaddress=5/5/4,host=Hugin,source=1.1.12,unit=lux value=17.889999389648438 1582132674999013274 temperature,groupaddress=5/5/1,host=Hugin,source=1.1.8,unit=°C value=17.799999237060547 1582132663427587361 windowopen,groupaddress=1/0/1,host=Hugin,source=1.1.3 value=true 1582132630425581320 diff --git a/src/writeData/components/telegrafPlugins/kube_inventory.md b/src/writeData/components/telegrafPlugins/kube_inventory.md index 2e3a85d01c..9f3f5e2acb 100644 --- a/src/writeData/components/telegrafPlugins/kube_inventory.md +++ b/src/writeData/components/telegrafPlugins/kube_inventory.md @@ -1,60 +1,55 @@ # Kubernetes Inventory Input Plugin -This plugin generates metrics derived from the state of the following -Kubernetes resources: - -- daemonsets -- deployments -- endpoints -- ingress -- nodes -- persistentvolumes -- persistentvolumeclaims -- pods (containers) -- services -- statefulsets - -Kubernetes is a fast moving project, with a new minor release every 3 months. -As such, we will aim to maintain support only for versions that are supported -by the major cloud providers; this is roughly 4 release / 2 years. - -**This plugin supports Kubernetes 1.11 and later.** - -## Series Cardinality Warning - -This plugin may produce a high number of series which, when not controlled -for, will cause high load on your database. Use the following techniques to -avoid cardinality issues: - -- Use [metric filtering][] options to exclude unneeded measurements and tags. -- Write to a database with an appropriate [retention policy][]. -- Consider using the [Time Series Index][tsi]. -- Monitor your databases [series cardinality][]. -- Consult the [InfluxDB documentation][influx-docs] for the most up-to-date - techniques. +This plugin gathers metrics from [Kubernetes][kubernetes] resources. + +> [!NOTE] +> This plugin requires Kubernetes version 1.11+. + +The gathered resources include for example daemon sets, deployments, endpoints, +ingress, nodes, persistent volumes and many more. + +> [!CRITICAL] +> This plugin produces high cardinality data, which when not controlled for will +> cause high load on your database. Please make sure to [filter][filtering] the +> produced metrics or configure your database to avoid cardinality issues! + +⭐ Telegraf v1.10.0 +🏷️ containers +💻 all + +[kubernetes]: https://kubernetes.io/ +[filtering]: /docs/CONFIGURATION.md#metric-filtering + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read metrics from the Kubernetes api [[inputs.kube_inventory]] - ## URL for the Kubernetes API - url = "https://127.0.0.1" + ## URL for the Kubernetes API. + ## If empty in-cluster config with POD's service account token will be used. + # url = "" + + ## URL for the kubelet, if set it will be used to collect the pods resource metrics + # url_kubelet = "http://127.0.0.1:10255" ## Namespace to use. Set to "" to use all namespaces. # namespace = "default" - ## Use bearer token for authorization. ('bearer_token' takes priority) - ## - ## If both of these are empty, we'll use the default serviceaccount: - ## at: /run/secrets/kubernetes.io/serviceaccount/token - ## - ## To auto-refresh the token, please use a file with the bearer_token option. - ## If given a string, Telegraf cannot refresh the token periodically. - # bearer_token = "/run/secrets/kubernetes.io/serviceaccount/token" - ## OR - ## deprecated in 1.24.0; use bearer_token with a file - # bearer_token_string = "abc_123" + ## Node name to filter to. No filtering by default. + # node_name = "" + + ## Use bearer token for authorization. + ## Ignored if url is empty and in-cluster config is used. + # bearer_token = "/var/run/secrets/kubernetes.io/serviceaccount/token" ## Set response_timeout (default 5 seconds) # response_timeout = "5s" @@ -89,7 +84,7 @@ avoid cardinality issues: # insecure_skip_verify = false ## Uncomment to remove deprecated metrics. - # fielddrop = ["terminated_reason"] + # fieldexclude = ["terminated_reason"] ``` ## Kubernetes Permissions @@ -99,7 +94,6 @@ list "persistentvolumes" and "nodes". You will then need to make an [aggregated ClusterRole][agg] that will eventually be bound to a user or group. [rbac]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/ - [agg]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles ```yaml @@ -151,13 +145,12 @@ subjects: ## Quickstart in k3s When monitoring [k3s](https://k3s.io) server instances one can re-use already -generated administration token. This is less secure than using the more -restrictive dedicated telegraf user but more convienient to set up. +generated administration token. This is less secure than using the more +restrictive dedicated telegraf user but more convenient to set up. ```console -# an empty token will make telegraf use the client cert/key files instead -$ touch /run/telegraf-kubernetes-token # replace `telegraf` with the user the telegraf process is running as +$ install -o telegraf -m400 /var/lib/rancher/k3s/server/token /run/telegraf-kubernetes-token $ install -o telegraf -m400 /var/lib/rancher/k3s/server/tls/client-admin.crt /run/telegraf-kubernetes-cert $ install -o telegraf -m400 /var/lib/rancher/k3s/server/tls/client-admin.key /run/telegraf-kubernetes-key ``` @@ -229,6 +222,9 @@ tls_key = "/run/telegraf-kubernetes-key" - kubernetes_node - tags: - node_name + - status + - condition + - cluster_namespace - fields: - capacity_cpu_cores - capacity_millicpu_cores @@ -238,6 +234,9 @@ tls_key = "/run/telegraf-kubernetes-key" - allocatable_millicpu_cores - allocatable_memory_bytes - allocatable_pods + - status_condition + - spec_unschedulable + - node_count - kubernetes_persistentvolume - tags: @@ -267,6 +266,7 @@ tls_key = "/run/telegraf-kubernetes-key" - phase - state - readiness + - condition - fields: - restarts_total - state_code @@ -277,6 +277,7 @@ tls_key = "/run/telegraf-kubernetes-key" - resource_requests_memory_bytes - resource_limits_millicpu_units - resource_limits_memory_bytes + - status_condition - kubernetes_service - tags: @@ -308,6 +309,49 @@ tls_key = "/run/telegraf-kubernetes-key" - spec_replicas - observed_generation +- kubernetes_resourcequota + - tags: + - resource + - namespace + - fields: + - hard_cpu_limits + - hard_cpu_requests + - hard_memory_limit + - hard_memory_requests + - hard_pods + - used_cpu_limits + - used_cpu_requests + - used_memory_limits + - used_memory_requests + - used_pods + +- kubernetes_certificate + - tags: + - common_name + - signature_algorithm + - public_key_algorithm + - issuer_common_name + - san + - verification + - name + - namespace + - fields: + - age + - expiry + - startdate + - enddate + - verification_code + +### kubernetes node status `status` + +The node status ready can mean 3 different values. + +| Tag value | Corresponding field value | Meaning | +| --------- | ------------------------- | -------- | +| ready | 0 | NotReady | +| ready | 1 | Ready | +| ready | 2 | Unknown | + ### pv `phase_type` The persistentvolume "phase" is saved in the `phase` tag with a correlated @@ -336,21 +380,20 @@ numeric field called `phase_type` corresponding with that tag value. ## Example Output -```shell +```text kubernetes_configmap,configmap_name=envoy-config,namespace=default,resource_version=56593031 created=1544103867000000000i 1547597616000000000 kubernetes_daemonset,daemonset_name=telegraf,selector_select1=s1,namespace=logging number_unavailable=0i,desired_number_scheduled=11i,number_available=11i,number_misscheduled=8i,number_ready=11i,updated_number_scheduled=11i,created=1527758699000000000i,generation=16i,current_number_scheduled=11i 1547597616000000000 kubernetes_deployment,deployment_name=deployd,selector_select1=s1,namespace=default replicas_unavailable=0i,created=1544103082000000000i,replicas_available=1i 1547597616000000000 -kubernetes_node,node_name=ip-172-17-0-2.internal allocatable_pods=110i,capacity_memory_bytes=128837533696,capacity_pods=110i,capacity_cpu_cores=16i,allocatable_cpu_cores=16i,allocatable_memory_bytes=128732676096 1547597616000000000 +kubernetes_node,host=vjain node_count=8i 1628918652000000000 +kubernetes_node,condition=Ready,host=vjain,node_name=ip-172-17-0-2.internal,status=True status_condition=1i 1629177980000000000 +kubernetes_node,cluster_namespace=tools,condition=Ready,host=vjain,node_name=ip-172-17-0-2.internal,status=True allocatable_cpu_cores=4i,allocatable_memory_bytes=7186567168i,allocatable_millicpu_cores=4000i,allocatable_pods=110i,capacity_cpu_cores=4i,capacity_memory_bytes=7291424768i,capacity_millicpu_cores=4000i,capacity_pods=110i,spec_unschedulable=0i,status_condition=1i 1628918652000000000 +kubernetes_resourcequota,host=vjain,namespace=default,resource=pods-high hard_cpu=1000i,hard_memory=214748364800i,hard_pods=10i,used_cpu=0i,used_memory=0i,used_pods=0i 1629110393000000000 +kubernetes_resourcequota,host=vjain,namespace=default,resource=pods-low hard_cpu=5i,hard_memory=10737418240i,hard_pods=10i,used_cpu=0i,used_memory=0i,used_pods=0i 1629110393000000000 kubernetes_persistentvolume,phase=Released,pv_name=pvc-aaaaaaaa-bbbb-cccc-1111-222222222222,storageclass=ebs-1-retain phase_type=3i 1547597616000000000 kubernetes_persistentvolumeclaim,namespace=default,phase=Bound,pvc_name=data-etcd-0,selector_select1=s1,storageclass=ebs-1-retain phase_type=0i 1547597615000000000 kubernetes_pod,namespace=default,node_name=ip-172-17-0-2.internal,pod_name=tick1 last_transition_time=1547578322000000000i,ready="false" 1547597616000000000 kubernetes_service,cluster_ip=172.29.61.80,namespace=redis-cache-0001,port_name=redis,port_protocol=TCP,selector_app=myapp,selector_io.kompose.service=redis,selector_role=slave,service_name=redis-slave created=1588690034000000000i,generation=0i,port=6379i,target_port=0i 1547597616000000000 +kubernetes_pod_container,condition=Ready,host=vjain,pod_name=uefi-5997f76f69-xzljt,status=True status_condition=1i 1629177981000000000 kubernetes_pod_container,container_name=telegraf,namespace=default,node_name=ip-172-17-0-2.internal,node_selector_node-role.kubernetes.io/compute=true,pod_name=tick1,phase=Running,state=running,readiness=ready resource_requests_cpu_units=0.1,resource_limits_memory_bytes=524288000,resource_limits_cpu_units=0.5,restarts_total=0i,state_code=0i,state_reason="",phase_reason="",resource_requests_memory_bytes=524288000 1547597616000000000 kubernetes_statefulset,namespace=default,selector_select1=s1,statefulset_name=etcd replicas_updated=3i,spec_replicas=3i,observed_generation=1i,created=1544101669000000000i,generation=1i,replicas=3i,replicas_current=3i,replicas_ready=3i 1547597616000000000 ``` - -[metric filtering]: https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#metric-filtering -[retention policy]: https://docs.influxdata.com/influxdb/latest/reference/internals/data-retention/ -[tsi]: https://docs.influxdata.com/influxdb/latest/reference/internals/storage-engine/#time-series-index-tsi -[series cardinality]: https://docs.influxdata.com/influxdb/latest/reference/syntax/influxql/spec/#show-cardinality -[influx-docs]: https://docs.influxdata.com/influxdb/latest/ diff --git a/src/writeData/components/telegrafPlugins/kubernetes.md b/src/writeData/components/telegrafPlugins/kubernetes.md index f2b8fc6ce9..123a5e70e5 100644 --- a/src/writeData/components/telegrafPlugins/kubernetes.md +++ b/src/writeData/components/telegrafPlugins/kubernetes.md @@ -1,58 +1,60 @@ # Kubernetes Input Plugin -The Kubernetes plugin talks to the Kubelet API and gathers metrics about the -running pods and containers for a single host. It is assumed that this plugin -is running as part of a `daemonset` within a kubernetes installation. This -means that telegraf is running on every node within the cluster. Therefore, you -should configure this plugin to talk to its locally running kubelet. +This plugin gathers metrics about running pods and containers of a +[Kubernetes][kubernetes] instance via the Kubelet API. -To find the ip address of the host you are running on you can issue a command -like the following: +> [!NOTE] +> This plugin has to run as part of a `daemonset` within a Kubernetes +> installation, i.e. Telegraf is running on every node within the cluster. -```sh -curl -s $API_URL/api/v1/namespaces/$POD_NAMESPACE/pods/$HOSTNAME --header "Authorization: Bearer $TOKEN" --insecure | jq -r '.status.hostIP' -``` +You should configure this plugin to talk to its locally running kubelet. -In this case we used the downward API to pass in the `$POD_NAMESPACE` and -`$HOSTNAME` is the hostname of the pod which is set by the kubernetes API. +> [!CRITICAL] +> This plugin produces high cardinality data, which when not controlled for will +> cause high load on your database. Please make sure to [filter][filtering] the +> produced metrics or configure your database to avoid cardinality issues! -Kubernetes is a fast moving project, with a new minor release every 3 months. As -such, we will aim to maintain support only for versions that are supported by -the major cloud providers; this is roughly 4 release / 2 years. +⭐ Telegraf v1.1.0 +🏷️ containers +💻 all -**This plugin supports Kubernetes 1.11 and later.** +[kubernetes]: https://kubernetes.io/ +[filtering]: /docs/CONFIGURATION.md#metric-filtering -## Series Cardinality Warning +## Global configuration options -This plugin may produce a high number of series which, when not controlled -for, will cause high load on your database. Use the following techniques to -avoid cardinality issues: +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -- Use [metric filtering][] options to exclude unneeded measurements and tags. -- Write to a database with an appropriate [retention policy][]. -- Consider using the [Time Series Index][tsi]. -- Monitor your databases [series cardinality][]. -- Consult the [InfluxDB documentation][influx-docs] for the most up-to-date techniques. +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read metrics from the kubernetes kubelet api [[inputs.kubernetes]] - ## URL for the kubelet + ## URL for the kubelet, if empty read metrics from all nodes in the cluster url = "http://127.0.0.1:10255" ## Use bearer token for authorization. ('bearer_token' takes priority) ## If both of these are empty, we'll use the default serviceaccount: - ## at: /run/secrets/kubernetes.io/serviceaccount/token + ## at: /var/run/secrets/kubernetes.io/serviceaccount/token ## ## To re-read the token at each interval, please use a file with the ## bearer_token option. If given a string, Telegraf will always use that ## token. - # bearer_token = "/run/secrets/kubernetes.io/serviceaccount/token" + # bearer_token = "/var/run/secrets/kubernetes.io/serviceaccount/token" ## OR # bearer_token_string = "abc_123" + ## Kubernetes Node Metric Name + ## The default Kubernetes node metric name (i.e. kubernetes_node) is the same + ## for the kubernetes and kube_inventory plugins. To avoid conflicts, set this + ## option to a different value. + # node_metric_name = "kubernetes_node" + ## Pod labels to be added as tags. An empty array for both include and ## exclude will include all labels. # label_include = [] @@ -69,15 +71,40 @@ avoid cardinality issues: # insecure_skip_verify = false ``` -## DaemonSet +### Host IP + +To find the ip address of the host you are running on you can issue a command +like the following: + +```sh +curl -s $API_URL/api/v1/namespaces/$POD_NAMESPACE/pods/$HOSTNAME \ + --header "Authorization: Bearer $TOKEN" \ + --insecure | jq -r '.status.hostIP' +``` + +This example uses the downward API to pass in the `$POD_NAMESPACE` and +`$HOSTNAME` is the hostname of the pod which is set by the kubernetes API. +See the [Kubernetes documentation][Kubernetes_docs] for a full example of +generating a bearer token to explore the Kubernetes API. -For recommendations on running Telegraf as a DaemonSet see [Monitoring -Kubernetes Architecture][k8s-telegraf] or view the Helm charts: +[Kubernetes_docs]: https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/#without-kubectl-proxy -- [Telegraf][] -- [InfluxDB][] -- [Chronograf][] -- [Kapacitor][] +### Daemon-set + +For recommendations on running Telegraf as a daemon-set see the +[Monitoring Kubernetes Architecture blog post][k8s_telegraf_blog] or check the +following Helm charts: + +- [Telegraf][helm_telegraf] +- [InfluxDB][helm_influxdb] +- [Chronograf][helm_chronograf] +- [Kapacitor][helm_kapacitor] + +[k8s_telegraf_blog]: https://www.influxdata.com/blog/monitoring-kubernetes-architecture/ +[helm_telegraf]: https://github.com/helm/charts/tree/master/stable/telegraf +[helm_influxdb]: https://github.com/helm/charts/tree/master/stable/influxdb +[helm_chronograf]: https://github.com/helm/charts/tree/master/stable/chronograf +[helm_kapacitor]: https://github.com/helm/charts/tree/master/stable/kapacitor ## Metrics @@ -149,21 +176,10 @@ Kubernetes Architecture][k8s-telegraf] or view the Helm charts: ## Example Output -```shell +```text kubernetes_node kubernetes_pod_container,container_name=deis-controller,namespace=deis,node_name=ip-10-0-0-0.ec2.internal,pod_name=deis-controller-3058870187-xazsr cpu_usage_core_nanoseconds=2432835i,cpu_usage_nanocores=0i,logsfs_available_bytes=121128271872i,logsfs_capacity_bytes=153567944704i,logsfs_used_bytes=20787200i,memory_major_page_faults=0i,memory_page_faults=175i,memory_rss_bytes=0i,memory_usage_bytes=0i,memory_working_set_bytes=0i,rootfs_available_bytes=121128271872i,rootfs_capacity_bytes=153567944704i,rootfs_used_bytes=1110016i 1476477530000000000 kubernetes_pod_network,namespace=deis,node_name=ip-10-0-0-0.ec2.internal,pod_name=deis-controller-3058870187-xazsr rx_bytes=120671099i,rx_errors=0i,tx_bytes=102451983i,tx_errors=0i 1476477530000000000 kubernetes_pod_volume,volume_name=default-token-f7wts,namespace=default,node_name=ip-172-17-0-1.internal,pod_name=storage-7 available_bytes=8415240192i,capacity_bytes=8415252480i,used_bytes=12288i 1546910783000000000 kubernetes_system_container ``` - -[metric filtering]: https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#metric-filtering -[retention policy]: https://docs.influxdata.com/influxdb/latest/reference/internals/data-retention/ -[tsi]: https://docs.influxdata.com/influxdb/latest/reference/internals/storage-engine/#time-series-index-tsi -[series cardinality]: https://docs.influxdata.com/influxdb/latest/reference/syntax/influxql/spec/#show-cardinality -[influx-docs]: https://docs.influxdata.com/influxdb/latest/ -[k8s-telegraf]: https://www.influxdata.com/blog/monitoring-kubernetes-architecture/ -[telegraf]: https://github.com/helm/charts/tree/master/stable/telegraf -[influxdb]: https://github.com/helm/charts/tree/master/stable/influxdb -[chronograf]: https://github.com/helm/charts/tree/master/stable/chronograf -[kapacitor]: https://github.com/helm/charts/tree/master/stable/kapacitor diff --git a/src/writeData/components/telegrafPlugins/lanz.md b/src/writeData/components/telegrafPlugins/lanz.md index 3c63aa596a..d4b488e291 100644 --- a/src/writeData/components/telegrafPlugins/lanz.md +++ b/src/writeData/components/telegrafPlugins/lanz.md @@ -1,17 +1,39 @@ # Arista LANZ Consumer Input Plugin -This plugin provides a consumer for use with Arista Networks’ Latency Analyzer -(LANZ) +This service plugin consumes messages from the +[Arista Networks’ Latency Analyzer (LANZ)][lanz] by receiving the datastream +on TCP (usually through port 50001) on the switch's management IP. -Metrics are read from a stream of data via TCP through port 50001 on the -switches management IP. The data is in Protobuffers format. For more information -on Arista LANZ +> [!NOTE] +> You will need to configure LANZ and enable streaming LANZ data, see the +> [documentation][config_lanz] for more details. -- +⭐ Telegraf v1.14.0 +🏷️ network +💻 all -This plugin uses Arista's sdk. +[lanz]: https://www.arista.com/en/um-eos/eos-latency-analyzer-lanz +[config_lanz]: https://www.arista.com/en/um-eos/eos-section-44-3-configuring-lanz -- +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -25,15 +47,9 @@ This plugin uses Arista's sdk. ] ``` -You will need to configure LANZ and enable streaming LANZ data. - -- -- - ## Metrics -For more details on the metrics see - +For more details on the metrics see the [protocol buffer definition][proto]. - lanz_congestion_record: - tags: @@ -62,6 +78,8 @@ For more details on the metrics see - buffer_size (integer) - duration (integer) +[proto]: https://github.com/aristanetworks/goarista/blob/master/lanz/proto/lanz.proto + ## Sample Queries Get the max tx_latency for the last hour for all interfaces on all switches. @@ -82,9 +100,9 @@ Get the max buffer_size for over the last hour for all switches. SELECT max("buffer_size") AS "max_buffer_size" FROM "global_buffer_usage_record" WHERE time > now() - 1h GROUP BY time(10s), "hostname" ``` -## Example output +## Example Output -```shell +```text lanz_global_buffer_usage_record,entry_type=2,host=telegraf.int.example.com,port=50001,source=switch01.int.example.com timestamp=158334105824919i,buffer_size=505i,duration=0i 1583341058300643815 lanz_congestion_record,entry_type=2,host=telegraf.int.example.com,intf_name=Ethernet36,port=50001,port_id=61,source=switch01.int.example.com,switch_id=0,traffic_class=1 time_of_max_qlen=0i,tx_latency=564480i,q_drop_count=0i,timestamp=158334105824919i,queue_size=225i 1583341058300636045 lanz_global_buffer_usage_record,entry_type=2,host=telegraf.int.example.com,port=50001,source=switch01.int.example.com timestamp=158334105824919i,buffer_size=589i,duration=0i 1583341058300457464 diff --git a/src/writeData/components/telegrafPlugins/leofs.md b/src/writeData/components/telegrafPlugins/leofs.md index 078145519a..abc21510da 100644 --- a/src/writeData/components/telegrafPlugins/leofs.md +++ b/src/writeData/components/telegrafPlugins/leofs.md @@ -1,8 +1,24 @@ # LeoFS Input Plugin -The LeoFS plugin gathers metrics of LeoGateway, LeoManager, and LeoStorage using -SNMP. See [LeoFS Documentation / System Administration / System -Monitoring](https://leo-project.net/leofs/docs/admin/system_admin/monitoring/). +This plugin gathers metrics of the [LEO filesystem][leofs] services +_LeoGateway_, _LeoManager_, and _LeoStorage_ via SNMP. Check the +[LeoFS system monitoring documentation][docs] for details. + +⭐ Telegraf v0.1.5 +🏷️ network, server +💻 all + +[leofs]: https://leo-project.net/leofs/ +[docs]: https://leo-project.net/leofs/docs/admin/system_admin/monitoring/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -14,7 +30,7 @@ Monitoring](https://leo-project.net/leofs/docs/admin/system_admin/monitoring/). servers = ["127.0.0.1:4010"] ``` -## Measurements & Fields +## Metrics ### Statistics specific to the internals of LeoManager @@ -153,104 +169,22 @@ All measurements have the following tags: - node -### Example output - -#### LeoManager - -```bash -$ ./telegraf --config ./plugins/inputs/leofs/leo_manager.conf --input-filter leofs --test -> leofs, host=manager_0, node=manager_0@127.0.0.1 - allocated_memory=78255445, - allocated_memory_5min=78159025, - ets_memory_usage=4611900, - ets_memory_usage_5min=4632599, - num_of_processes=223, - num_of_processes_5min=223, - processes_memory_usage=20201316, - processes_memory_usage_5min=20186559, - system_memory_usage=37172701, - system_memory_usage_5min=37189213, - total_memory_usage=57373373, - total_memory_usage_5min=57374653, - used_allocated_memory=67, - used_allocated_memory_5min=67 - 1524105758000000000 +## Example Output + +### LeoManager + +```text +leofs,host=manager_0,node=manager_0@127.0.0.1 allocated_memory=78255445,allocated_memory_5min=78159025,ets_memory_usage=4611900,ets_memory_usage_5min=4632599,num_of_processes=223,num_of_processes_5min=223,processes_memory_usage=20201316,processes_memory_usage_5min=20186559,system_memory_usage=37172701,system_memory_usage_5min=37189213,total_memory_usage=57373373,total_memory_usage_5min=57374653,used_allocated_memory=67,used_allocated_memory_5min=67 1524105758000000000 ``` -#### LeoStorage - -```bash -$ ./telegraf --config ./plugins/inputs/leofs/leo_storage.conf --input-filter leofs --test -> leofs,host=storage_0,node=storage_0@127.0.0.1 - allocated_memory=63504384, - allocated_memory_5min=0, - comp_last_end_datetime=0, - comp_last_start_datetime=0, - comp_num_of_ongoing_targets=0, - comp_num_of_out_of_targets=0, - comp_num_of_pending_targets=8, - comp_state=0, - ets_memory_usage=3877824, - ets_memory_usage_5min=0, - mq_mdcr_num_of_msg_req_comp_metadata=0, - mq_mdcr_num_of_msg_req_sync_obj=0, - mq_num_of_msg_async_deletion_dir=0, - mq_num_of_msg_deletion_dir=0, - mq_num_of_msg_recovery_node=0, - mq_num_of_msg_req_deletion_dir=0, - num_of_active_objects=70, - num_of_deletes=0, - num_of_deletes_5min=0, - num_of_processes=577, - num_of_processes_5min=0, - num_of_reads=1, - num_of_reads_5min=0, - num_of_rebalance_messages=0, - num_of_replication_messages=0, - num_of_sync-vnode_messages=0, - num_of_writes=70, - num_of_writes_5min=0, - processes_memory_usage=20029464, - processes_memory_usage_5min=0, - system_memory_usage=25900472, - system_memory_usage_5min=0, - total_memory_usage=45920987, - total_memory_usage_5min=0, - total_objects=70, - total_size=2, - total_size_of_active_objects=2, - used_allocated_memory=69, - used_allocated_memory_5min=0 - 1524529826000000000 +### LeoStorage + +```text +leofs,host=storage_0,node=storage_0@127.0.0.1 allocated_memory=63504384,allocated_memory_5min=0,comp_last_end_datetime=0,comp_last_start_datetime=0,comp_num_of_ongoing_targets=0,comp_num_of_out_of_targets=0,comp_num_of_pending_targets=8,comp_state=0,ets_memory_usage=3877824,ets_memory_usage_5min=0,mq_mdcr_num_of_msg_req_comp_metadata=0,mq_mdcr_num_of_msg_req_sync_obj=0,mq_num_of_msg_async_deletion_dir=0,mq_num_of_msg_deletion_dir=0,mq_num_of_msg_recovery_node=0,mq_num_of_msg_req_deletion_dir=0,num_of_active_objects=70,num_of_deletes=0,num_of_deletes_5min=0,num_of_processes=577,num_of_processes_5min=0,num_of_reads=1,num_of_reads_5min=0,num_of_rebalance_messages=0,num_of_replication_messages=0,num_of_sync-vnode_messages=0,num_of_writes=70,num_of_writes_5min=0,processes_memory_usage=20029464,processes_memory_usage_5min=0,system_memory_usage=25900472,system_memory_usage_5min=0,total_memory_usage=45920987,total_memory_usage_5min=0,total_objects=70,total_size=2,total_size_of_active_objects=2,used_allocated_memory=69,used_allocated_memory_5min=0 1524529826000000000 ``` -#### LeoGateway - -```shell -$ ./telegraf --config ./plugins/inputs/leofs/leo_gateway.conf --input-filter leofs --test -> leofs, host=gateway_0, node=gateway_0@127.0.0.1 - allocated_memory=87941120, - allocated_memory_5min=88067672, - count_of_cache-hit=0, - count_of_cache-miss=0, - ets_memory_usage=4843497, - ets_memory_usage_5min=4841574, - num_of_deletes=0, - num_of_deletes_5min=0, - num_of_processes=555, - num_of_processes_5min=555, - num_of_reads=0, - num_of_reads_5min=0, - num_of_writes=0, - num_of_writes_5min=0, - processes_memory_usage=17388052, - processes_memory_usage_5min=17413928, - system_memory_usage=49531263, - system_memory_usage_5min=49577819, - total_cached_size=0, - total_memory_usage=66917393, - total_memory_usage_5min=66989469, - total_of_files=0, - used_allocated_memory=69, - used_allocated_memory_5min=69 1524105894000000000 +### LeoGateway + +```text +leofs,host=gateway_0,node=gateway_0@127.0.0.1 allocated_memory=87941120,allocated_memory_5min=88067672,count_of_cache-hit=0,count_of_cache-miss=0,ets_memory_usage=4843497,ets_memory_usage_5min=4841574,num_of_deletes=0,num_of_deletes_5min=0,num_of_processes=555,num_of_processes_5min=555,num_of_reads=0,num_of_reads_5min=0,num_of_writes=0,num_of_writes_5min=0,processes_memory_usage=17388052,processes_memory_usage_5min=17413928,system_memory_usage=49531263,system_memory_usage_5min=49577819,total_cached_size=0,total_memory_usage=66917393,total_memory_usage_5min=66989469,total_of_files=0,used_allocated_memory=69,used_allocated_memory_5min=69 1524105894000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/linux_cpu.md b/src/writeData/components/telegrafPlugins/linux_cpu.md index 135bb39e93..325c37287a 100644 --- a/src/writeData/components/telegrafPlugins/linux_cpu.md +++ b/src/writeData/components/telegrafPlugins/linux_cpu.md @@ -1,11 +1,27 @@ # Linux CPU Input Plugin -The `linux_cpu` plugin gathers CPU metrics exposed on Linux-based systems. +This plugin gathers CPU metrics exposed on [Linux][kernel] systems. + +⭐ Telegraf v1.24.0 +🏷️ system +💻 linux + +[kernel]: https://kernel.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf -# Collects CPU metrics exposed on Linux +# Provides Linux CPU metrics +# This plugin ONLY supports Linux [[inputs.linux_cpu]] ## Path for sysfs filesystem. ## See https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt @@ -48,17 +64,17 @@ The following fields are emitted by the plugin when selecting `thermal`: ## Example Output -```shell -> linux_cpu,cpu=0,host=go scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=803157i,scaling_min_freq=400000i 1617621150000000000 -> linux_cpu,cpu=1,host=go throttle_total_time=0i,scaling_cur_freq=802939i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i 1617621150000000000 -> linux_cpu,cpu=10,host=go throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=838343i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i 1617621150000000000 -> linux_cpu,cpu=11,host=go cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=800054i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i 1617621150000000000 -> linux_cpu,cpu=2,host=go throttle_total_time=0i,scaling_cur_freq=800404i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i 1617621150000000000 -> linux_cpu,cpu=3,host=go throttle_total_time=0i,scaling_cur_freq=800126i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i 1617621150000000000 -> linux_cpu,cpu=4,host=go cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=800359i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i 1617621150000000000 -> linux_cpu,cpu=5,host=go throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=800093i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i 1617621150000000000 -> linux_cpu,cpu=6,host=go cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=741646i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i 1617621150000000000 -> linux_cpu,cpu=7,host=go scaling_cur_freq=700006i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i 1617621150000000000 -> linux_cpu,cpu=8,host=go throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=700046i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i 1617621150000000000 -> linux_cpu,cpu=9,host=go throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=700075i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i 1617621150000000000 +```text +linux_cpu,cpu=0,host=go scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=803157i,scaling_min_freq=400000i 1617621150000000000 +linux_cpu,cpu=1,host=go throttle_total_time=0i,scaling_cur_freq=802939i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i 1617621150000000000 +linux_cpu,cpu=10,host=go throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=838343i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i 1617621150000000000 +linux_cpu,cpu=11,host=go cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=800054i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i 1617621150000000000 +linux_cpu,cpu=2,host=go throttle_total_time=0i,scaling_cur_freq=800404i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i 1617621150000000000 +linux_cpu,cpu=3,host=go throttle_total_time=0i,scaling_cur_freq=800126i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i 1617621150000000000 +linux_cpu,cpu=4,host=go cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=800359i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i 1617621150000000000 +linux_cpu,cpu=5,host=go throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=800093i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i 1617621150000000000 +linux_cpu,cpu=6,host=go cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=741646i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i 1617621150000000000 +linux_cpu,cpu=7,host=go scaling_cur_freq=700006i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i 1617621150000000000 +linux_cpu,cpu=8,host=go throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=700046i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i,throttle_count=0i 1617621150000000000 +linux_cpu,cpu=9,host=go throttle_count=0i,throttle_max_time=0i,throttle_total_time=0i,scaling_cur_freq=700075i,scaling_min_freq=400000i,scaling_max_freq=4700000i,cpuinfo_min_freq=400000i,cpuinfo_max_freq=4700000i 1617621150000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/linux_sysctl_fs.md b/src/writeData/components/telegrafPlugins/linux_sysctl_fs.md index 84d79ee73e..199d12b8b9 100644 --- a/src/writeData/components/telegrafPlugins/linux_sysctl_fs.md +++ b/src/writeData/components/telegrafPlugins/linux_sysctl_fs.md @@ -1,14 +1,23 @@ -# Linux Sysctl FS Input Plugin +# Linux Sysctl Filesystem Input Plugin -The linux_sysctl_fs input provides Linux system level file metrics. The -documentation on these fields can be found at -. +This plugin gathers metrics by reading the [system filesystem][sysfs] files on +[Linux][kernel] systems. -Example output: +⭐ Telegraf v1.24.0 +🏷️ system +💻 linux -```shell -> linux_sysctl_fs,host=foo dentry-want-pages=0i,file-max=44222i,aio-max-nr=65536i,inode-preshrink-nr=0i,dentry-nr=64340i,dentry-unused-nr=55274i,file-nr=1568i,aio-nr=0i,inode-nr=35952i,inode-free-nr=12957i,dentry-age-limit=45i 1490982022000000000 -``` +[kernel]: https://kernel.org/ +[sysfs]: https://www.kernel.org/doc/Documentation/sysctl/fs.txt + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -17,3 +26,31 @@ Example output: [[inputs.linux_sysctl_fs]] # no configuration ``` + +## Metrics + +`linux_sysctl_fs` metric: + +- tags: _none_ +- fields: + - `aio-max-nr` (unsigned integer) + - `aio-nr` (unsigned integer) + - `dentry-age-limit` (unsigned integer) + - `dentry-nr` (unsigned integer) + - `dentry-unused-nr` (unsigned integer) + - `dentry-want-pages` (unsigned integer) + - `dquot-max` (unsigned integer) + - `dquot-nr` (unsigned integer) + - `inode-free-nr` (unsigned integer) + - `inode-nr` (unsigned integer) + - `inode-preshrink-nr` (unsigned integer) + - `super-max` (unsigned integer) + - `super-nr` (unsigned integer) + - `file-max` (unsigned integer) + - `file-nr` (unsigned integer) + +## Example Output + +```text +> linux_sysctl_fs,host=foo dentry-want-pages=0i,file-max=44222i,aio-max-nr=65536i,inode-preshrink-nr=0i,dentry-nr=64340i,dentry-unused-nr=55274i,file-nr=1568i,aio-nr=0i,inode-nr=35952i,inode-free-nr=12957i,dentry-age-limit=45i 1490982022000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/logstash.md b/src/writeData/components/telegrafPlugins/logstash.md index 73e1fc80ed..79c3e841ab 100644 --- a/src/writeData/components/telegrafPlugins/logstash.md +++ b/src/writeData/components/telegrafPlugins/logstash.md @@ -1,9 +1,26 @@ # Logstash Input Plugin -This plugin reads metrics exposed by [Logstash Monitoring -API](https://www.elastic.co/guide/en/logstash/current/monitoring-logstash.html). +This plugin gathers metrics from a [Logstash][logstash] endpoint using the +[Monitoring API][logstash_api]. -Logstash 5 and later is supported. +> [!NOTE] +> This plugin supports Logstash 5+. + +⭐ Telegraf v1.12.0 +🏷️ server +💻 all + +[logstash]: https://www.elastic.co/logstash +[logstash_api]: https://www.elastic.co/guide/en/logstash/current/monitoring-logstash.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -36,6 +53,13 @@ Logstash 5 and later is supported. ## Use TLS but skip chain & host verification. # insecure_skip_verify = false + ## If 'use_system_proxy' is set to true, Telegraf will check env vars such as + ## HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or their lowercase counterparts). + ## If 'use_system_proxy' is set to false (default) and 'http_proxy_url' is + ## provided, Telegraf will use the specified URL as HTTP proxy. + # use_system_proxy = false + # http_proxy_url = "http://localhost:8888" + ## Optional HTTP headers. # [inputs.logstash.headers] # "X-Special-Header" = "Special-Value" @@ -153,7 +177,7 @@ expose all stats) ## Example Output -```shell +```text logstash_jvm,node_id=3da53ed0-a946-4a33-9cdb-33013f2273f6,node_name=debian-stretch-logstash6.virt,node_version=6.8.1,source=debian-stretch-logstash6.virt gc_collectors_old_collection_count=2,gc_collectors_old_collection_time_in_millis=100,gc_collectors_young_collection_count=26,gc_collectors_young_collection_time_in_millis=1028,mem_heap_committed_in_bytes=1056309248,mem_heap_max_in_bytes=1056309248,mem_heap_used_in_bytes=207216328,mem_heap_used_percent=19,mem_non_heap_committed_in_bytes=160878592,mem_non_heap_used_in_bytes=140838184,mem_pools_old_committed_in_bytes=899284992,mem_pools_old_max_in_bytes=899284992,mem_pools_old_peak_max_in_bytes=899284992,mem_pools_old_peak_used_in_bytes=189468088,mem_pools_old_used_in_bytes=189468088,mem_pools_survivor_committed_in_bytes=17432576,mem_pools_survivor_max_in_bytes=17432576,mem_pools_survivor_peak_max_in_bytes=17432576,mem_pools_survivor_peak_used_in_bytes=17432576,mem_pools_survivor_used_in_bytes=12572640,mem_pools_young_committed_in_bytes=139591680,mem_pools_young_max_in_bytes=139591680,mem_pools_young_peak_max_in_bytes=139591680,mem_pools_young_peak_used_in_bytes=139591680,mem_pools_young_used_in_bytes=5175600,threads_count=20,threads_peak_count=24,uptime_in_millis=739089 1566425244000000000 logstash_process,node_id=3da53ed0-a946-4a33-9cdb-33013f2273f6,node_name=debian-stretch-logstash6.virt,node_version=6.8.1,source=debian-stretch-logstash6.virt cpu_load_average_15m=0.03,cpu_load_average_1m=0.01,cpu_load_average_5m=0.04,cpu_percent=0,cpu_total_in_millis=83230,max_file_descriptors=16384,mem_total_virtual_in_bytes=3689132032,open_file_descriptors=118,peak_open_file_descriptors=118 1566425244000000000 logstash_events,node_id=3da53ed0-a946-4a33-9cdb-33013f2273f6,node_name=debian-stretch-logstash6.virt,node_version=6.8.1,pipeline=main,source=debian-stretch-logstash6.virt duration_in_millis=0,filtered=0,in=0,out=0,queue_push_duration_in_millis=0 1566425244000000000 diff --git a/src/writeData/components/telegrafPlugins/lustre2.md b/src/writeData/components/telegrafPlugins/lustre2.md index 8cd3ed9139..04b419beff 100644 --- a/src/writeData/components/telegrafPlugins/lustre2.md +++ b/src/writeData/components/telegrafPlugins/lustre2.md @@ -1,34 +1,68 @@ # Lustre Input Plugin -The [Lustre][]® file system is an open-source, parallel file system that -supports many requirements of leadership class HPC simulation environments. +This plugin gathers metrics for the [Lustre® file system][lustre] using its +entries in the `proc` filesystem. Reference the +[Lustre Monitoring and Statistics Guide][guide] for the reported information. -This plugin monitors the Lustre file system using its entries in the proc -filesystem. +> [!NOTE] This plugin doesn't report _all_ information available but only a +> limited set of items. Check the [metrics section](#metrics). + +⭐ Telegraf v0.1.5 +🏷️ system +💻 linux + +[lustre]: http://lustre.org/ +[guide]: http://wiki.lustre.org/Lustre_Monitoring_and_Statistics_Guide + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read metrics from local Lustre service on OST, MDS +# This plugin ONLY supports Linux [[inputs.lustre2]] ## An array of /proc globs to search for Lustre stats - ## If not specified, the default will work on Lustre 2.5.x + ## If not specified, the default will work on Lustre 2.12.x ## + # mgs_procfiles = [ + # "/sys/fs/lustre/mgs/*/eviction_count", + # ] # ost_procfiles = [ # "/proc/fs/lustre/obdfilter/*/stats", # "/proc/fs/lustre/osd-ldiskfs/*/stats", # "/proc/fs/lustre/obdfilter/*/job_stats", # "/proc/fs/lustre/obdfilter/*/exports/*/stats", + # "/proc/fs/lustre/osd-ldiskfs/*/brw_stats", + # "/proc/fs/lustre/osd-zfs/*/brw_stats", + # "/sys/fs/lustre/odbfilter/*/eviction_count", # ] # mds_procfiles = [ # "/proc/fs/lustre/mdt/*/md_stats", # "/proc/fs/lustre/mdt/*/job_stats", # "/proc/fs/lustre/mdt/*/exports/*/stats", + # "/proc/fs/lustre/osd-ldiskfs/*/brw_stats", + # "/proc/fs/lustre/osd-zfs/*/brw_stats", + # "/sys/fs/lustre/mdt/*/eviction_count", # ] ``` ## Metrics +From `/sys/fs/lustre/health_check`: + +- lustre2 + - tags: + - fields: + - health + From `/proc/fs/lustre/obdfilter/*/stats` and `/proc/fs/lustre/osd-ldiskfs/*/stats`: @@ -153,20 +187,17 @@ From `/proc/fs/lustre/mdt/*/job_stats`: - jobstats_sync - jobstats_unlink -## Troubleshooting +From `/proc/fs/lustre/*/*/eviction_count`: -Check for the default or custom procfiles in the proc filesystem, and reference -the [Lustre Monitoring and Statistics Guide][guide]. This plugin does not -report all information from these files, only a limited set of items -corresponding to the above metric fields. +- lustre2 + - tags: + - name + - fields: + - evictions ## Example Output -```shell +```text lustre2,host=oss2,jobid=42990218,name=wrk-OST0041 jobstats_ost_setattr=0i,jobstats_ost_sync=0i,jobstats_punch=0i,jobstats_read_bytes=4096i,jobstats_read_calls=1i,jobstats_read_max_size=4096i,jobstats_read_min_size=4096i,jobstats_write_bytes=310206488i,jobstats_write_calls=7423i,jobstats_write_max_size=53048i,jobstats_write_min_size=8820i 1556525847000000000 lustre2,host=mds1,jobid=42992017,name=wrk-MDT0000 jobstats_close=31798i,jobstats_crossdir_rename=0i,jobstats_getattr=34146i,jobstats_getxattr=15i,jobstats_link=0i,jobstats_mkdir=658i,jobstats_mknod=0i,jobstats_open=31797i,jobstats_rename=0i,jobstats_rmdir=0i,jobstats_samedir_rename=0i,jobstats_setattr=1788i,jobstats_setxattr=0i,jobstats_statfs=0i,jobstats_sync=0i,jobstats_unlink=0i 1556525828000000000 - ``` - -[lustre]: http://lustre.org/ -[guide]: http://wiki.lustre.org/Lustre_Monitoring_and_Statistics_Guide diff --git a/src/writeData/components/telegrafPlugins/lvm.md b/src/writeData/components/telegrafPlugins/lvm.md index bc07c37cb2..6066b3ec00 100644 --- a/src/writeData/components/telegrafPlugins/lvm.md +++ b/src/writeData/components/telegrafPlugins/lvm.md @@ -1,7 +1,23 @@ -# LVM Input Plugin +# Logical Volume Manager Input Plugin -The Logical Volume Management (LVM) input plugin collects information about -physical volumes, volume groups, and logical volumes. +This plugin collects information about physical volumes, volume groups and +logical volumes from the Logical Volume Management (LVM) of the +[Linux kernel][kernel]. + +⭐ Telegraf v1.21.0 +🏷️ system +💻 linux + +[kernel]: https://www.kernel.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -10,9 +26,18 @@ physical volumes, volume groups, and logical volumes. [[inputs.lvm]] ## Use sudo to run LVM commands use_sudo = false + + ## The default location of the pvs binary can be overridden with: + #pvs_binary = "/usr/sbin/pvs" + + ## The default location of the vgs binary can be overridden with: + #vgs_binary = "/usr/sbin/vgs" + + ## The default location of the lvs binary can be overridden with: + #lvs_binary = "/usr/sbin/lvs" ``` -The `lvm` command requires elevated permissions. If the user has configured sudo +The LVM commands requires elevated permissions. If the user has configured sudo with the ability to run these commands, then set the `use_sudo` to true. ### Using sudo @@ -31,6 +56,9 @@ Cmnd_Alias LVM = /usr/sbin/pvs *, /usr/sbin/vgs *, /usr/sbin/lvs * Defaults!LVM !logfile, !syslog, !pam_session ``` +Path to binaries must match those from config file (pvs_binary, vgs_binary and +lvs_binary) + ## Metrics Metrics are broken out by physical volume (pv), volume group (vg), and logical @@ -62,18 +90,19 @@ volume (lv): - fields - size - data_percent - - meta_percent + - metadata_percent + - sync_percent ## Example Output The following example shows a system with the root partition on an LVM group as well as with a Docker thin-provisioned LVM group on a second drive: -```shell -> lvm_physical_vol,path=/dev/sda2,vol_group=vgroot free=0i,size=249510756352i,used=249510756352i,used_percent=100 1631823026000000000 -> lvm_physical_vol,path=/dev/sdb,vol_group=docker free=3858759680i,size=128316342272i,used=124457582592i,used_percent=96.99277612525741 1631823026000000000 -> lvm_vol_group,name=vgroot free=0i,logical_volume_count=1i,physical_volume_count=1i,size=249510756352i,snapshot_count=0i,used_percent=100 1631823026000000000 -> lvm_vol_group,name=docker free=3858759680i,logical_volume_count=1i,physical_volume_count=1i,size=128316342272i,snapshot_count=0i,used_percent=96.99277612525741 1631823026000000000 -> lvm_logical_vol,name=lvroot,vol_group=vgroot data_percent=0,metadata_percent=0,size=249510756352i 1631823026000000000 -> lvm_logical_vol,name=thinpool,vol_group=docker data_percent=0.36000001430511475,metadata_percent=1.3300000429153442,size=121899057152i 1631823026000000000 +```text +lvm_physical_vol,path=/dev/sda2,vol_group=vgroot free=0i,size=249510756352i,used=249510756352i,used_percent=100 1631823026000000000 +lvm_physical_vol,path=/dev/sdb,vol_group=docker free=3858759680i,size=128316342272i,used=124457582592i,used_percent=96.99277612525741 1631823026000000000 +lvm_vol_group,name=vgroot free=0i,logical_volume_count=1i,physical_volume_count=1i,size=249510756352i,snapshot_count=0i,used_percent=100 1631823026000000000 +lvm_vol_group,name=docker free=3858759680i,logical_volume_count=1i,physical_volume_count=1i,size=128316342272i,snapshot_count=0i,used_percent=96.99277612525741 1631823026000000000 +lvm_logical_vol,name=lvroot,vol_group=vgroot data_percent=0,metadata_percent=0,size=249510756352i 1631823026000000000 +lvm_logical_vol,name=thinpool,vol_group=docker data_percent=0.36000001430511475,metadata_percent=1.3300000429153442,size=121899057152i 1631823026000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/mailchimp.md b/src/writeData/components/telegrafPlugins/mailchimp.md index b1f4be9dd8..dd72855858 100644 --- a/src/writeData/components/telegrafPlugins/mailchimp.md +++ b/src/writeData/components/telegrafPlugins/mailchimp.md @@ -1,8 +1,23 @@ # Mailchimp Input Plugin -Pulls campaign reports from the [Mailchimp API][1]. +This plugin gathers metrics from the [Mailchimp][mailchimp] service using the +[Mailchimp API][api]. -[1]: https://developer.mailchimp.com/ +⭐ Telegraf v0.2.4 +🏷️ cloud, web +💻 all + +[mailchimp]: https://mailchimp.com +[api]: https://developer.mailchimp.com/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -57,3 +72,9 @@ Pulls campaign reports from the [Mailchimp API][1]. - list_stats_unsub_rate (double, percentage) - list_stats_open_rate (double, percentage) - list_stats_click_rate (double, percentage) + +## Example Output + +```text +mailchimp,campaign_title=Freddie's\ Jokes\ Vol.\ 1,id=42694e9e57 abuse_reports=0i,click_rate=42,clicks_total=42i,emails_sent=200i,facebook_likes=42i,facebook_recipient_likes=5i,facebook_unique_likes=8i,forwards_count=0i,forwards_opens=0i,hard_bounces=0i,industry_abuse_rate=0.00021111996110887,industry_bounce_rate=0.0063767751251474,industry_click_rate=0.027431311866951,industry_open_rate=0.17076777144396,industry_type="Social Networks and Online Communities",industry_unopen_rate=0.82285545343089,industry_unsub_rate=0.001436957032815,list_stats_click_rate=42,list_stats_open_rate=42,list_stats_sub_rate=10,list_stats_unsub_rate=20,open_rate=42,opens_total=186i,soft_bounces=2i,syntax_errors=0i,unique_clicks=400i,unique_opens=100i,unique_subscriber_clicks=42i,unsubscribed=2i 1741188555526302348 +``` diff --git a/src/writeData/components/telegrafPlugins/marklogic.md b/src/writeData/components/telegrafPlugins/marklogic.md index fded2513a6..5a60e49929 100644 --- a/src/writeData/components/telegrafPlugins/marklogic.md +++ b/src/writeData/components/telegrafPlugins/marklogic.md @@ -1,7 +1,22 @@ # MarkLogic Input Plugin -The MarkLogic Telegraf plugin gathers health status metrics from one or more -host. +This plugin gathers health status metrics from one or more [MarkLogic][marklogic] +hosts. + +⭐ Telegraf v1.12.0 +🏷️ server +💻 all + +[marklogic]: https://www.progress.com/marklogic + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -60,7 +75,6 @@ host. ## Example Output -```shell -$> marklogic,host=localhost,id=2592913110757471141,source=ml1.local total_cpu_stat_iowait=0.0125649003311992,memory_process_swap_size=0i,host_size=380i,data_dir_space=28216i,query_read_load=0i,ncpus=1i,log_device_space=28216i,query_read_bytes=13947332i,merge_write_load=0i,http_server_receive_bytes=225893i,online=true,ncores=4i,total_cpu_stat_user=0.150778993964195,total_cpu_stat_system=0.598927974700928,total_cpu_stat_idle=99.2210006713867,memory_system_total=3947i,memory_system_free=2669i,memory_size=4096i,total_rate=14.7697010040283,http_server_send_bytes=0i,memory_process_size=903i,memory_process_rss=486i,merge_read_load=0i,total_load=0.00502600101754069 1566373000000000000 - +```text +marklogic,host=localhost,id=2592913110757471141,source=ml1.local total_cpu_stat_iowait=0.0125649003311992,memory_process_swap_size=0i,host_size=380i,data_dir_space=28216i,query_read_load=0i,ncpus=1i,log_device_space=28216i,query_read_bytes=13947332i,merge_write_load=0i,http_server_receive_bytes=225893i,online=true,ncores=4i,total_cpu_stat_user=0.150778993964195,total_cpu_stat_system=0.598927974700928,total_cpu_stat_idle=99.2210006713867,memory_system_total=3947i,memory_system_free=2669i,memory_size=4096i,total_rate=14.7697010040283,http_server_send_bytes=0i,memory_process_size=903i,memory_process_rss=486i,merge_read_load=0i,total_load=0.00502600101754069 1566373000000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/mcrouter.md b/src/writeData/components/telegrafPlugins/mcrouter.md index bc8891b896..6e7ed880c3 100644 --- a/src/writeData/components/telegrafPlugins/mcrouter.md +++ b/src/writeData/components/telegrafPlugins/mcrouter.md @@ -1,6 +1,24 @@ # Mcrouter Input Plugin -This plugin gathers statistics data from a Mcrouter server. +This plugin gathers statistics data from [Mcrouter][mcrouter] instances, a +protocol router, developed and maintained by Facebook, for scaling +[memcached][memcached] deployments. + +⭐ Telegraf v1.7.0 +🏷️ applications, network +💻 all + +[mcrouter]: https://github.com/facebook/mcrouter +[memcached]: http://memcached.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -19,8 +37,7 @@ This plugin gathers statistics data from a Mcrouter server. The fields from this plugin are gathered in the *mcrouter* measurement. -Description of gathered fields can be found -[here](https://github.com/facebook/mcrouter/wiki/Stats-list). +Description of gathered fields can be found in the [project wiki][wiki]. Fields: @@ -89,6 +106,8 @@ Fields: * cmd_delete_out_all * cmd_lease_set_out_all +[wiki]: https://github.com/facebook/mcrouter/wiki/Stats-list + ## Tags * Mcrouter measurements have the following tags: @@ -96,7 +115,6 @@ Fields: ## Example Output -```shell -$ ./telegraf --config telegraf.conf --input-filter mcrouter --test +```text mcrouter,server=localhost:11211 uptime=166,num_servers=1,num_servers_new=1,num_servers_up=0,num_servers_down=0,num_servers_closed=0,num_clients=1,num_suspect_servers=0,destination_batches_sum=0,destination_requests_sum=0,outstanding_route_get_reqs_queued=0,outstanding_route_update_reqs_queued=0,outstanding_route_get_avg_queue_size=0,outstanding_route_update_avg_queue_size=0,outstanding_route_get_avg_wait_time_sec=0,outstanding_route_update_avg_wait_time_sec=0,retrans_closed_connections=0,destination_pending_reqs=0,destination_inflight_reqs=0,destination_batch_size=0,asynclog_requests=0,proxy_reqs_processing=1,proxy_reqs_waiting=0,client_queue_notify_period=0,rusage_system=0.040966,rusage_user=0.020483,ps_num_minor_faults=2490,ps_num_major_faults=11,ps_user_time_sec=0.02,ps_system_time_sec=0.04,ps_vsize=697741312,ps_rss=10563584,fibers_allocated=0,fibers_pool_size=0,fibers_stack_high_watermark=0,successful_client_connections=18,duration_us=0,destination_max_pending_reqs=0,destination_max_inflight_reqs=0,retrans_per_kbyte_max=0,cmd_get_count=0,cmd_delete_out=0,cmd_lease_get=0,cmd_set=0,cmd_get_out_all=0,cmd_get_out=0,cmd_lease_set_count=0,cmd_other_out_all=0,cmd_lease_get_out=0,cmd_set_count=0,cmd_lease_set_out=0,cmd_delete_count=0,cmd_other=0,cmd_delete=0,cmd_get=0,cmd_lease_set=0,cmd_set_out=0,cmd_lease_get_count=0,cmd_other_out=0,cmd_lease_get_out_all=0,cmd_set_out_all=0,cmd_other_count=0,cmd_delete_out_all=0,cmd_lease_set_out_all=0 1453831884664956455 ``` diff --git a/src/writeData/components/telegrafPlugins/mdstat.md b/src/writeData/components/telegrafPlugins/mdstat.md index f2f927a8fb..16b65737f3 100644 --- a/src/writeData/components/telegrafPlugins/mdstat.md +++ b/src/writeData/components/telegrafPlugins/mdstat.md @@ -1,22 +1,32 @@ -# mdstat Input Plugin +# MD RAID Statistics Input Plugin -The mdstat plugin gathers statistics about any Linux MD RAID arrays configured -on the host by reading /proc/mdstat. For a full list of available fields see -the /proc/mdstat section of the [proc man page][man-proc]. For a better idea -of what each field represents, see the [mdstat man page][man-mdstat]. +This plugin gathers statistics about any [Linux MD RAID arrays][mdraid] +configured on the host by reading `/proc/mdstat`. For a full list of available +fields see the `/proc/mdstat` section of the [proc man page][man_proc]. For +details on the fields check the [mdstat wiki][mdstat_wiki]. -Stat collection based on Prometheus' [mdstat collection library][prom-lib]. +⭐ Telegraf v1.20.0 +🏷️ system +💻 linux -[man-proc]: http://man7.org/linux/man-pages/man5/proc.5.html +[mdraid]: https://docs.kernel.org/admin-guide/md.html +[man_proc]: http://man7.org/linux/man-pages/man5/proc.5.html +[mdstat_wiki]: https://raid.wiki.kernel.org/index.php/Mdstat -[man-mdstat]: https://raid.wiki.kernel.org/index.php/Mdstat +## Global configuration options -[prom-lib]: https://github.com/prometheus/procfs/blob/master/mdstat.go +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Get kernel statistics from /proc/mdstat +# This plugin ONLY supports Linux [[inputs.mdstat]] ## Sets file path ## If not specified, then default is /proc/mdstat @@ -25,33 +35,29 @@ Stat collection based on Prometheus' [mdstat collection library][prom-lib]. ## Metrics -- mdstat - - BlocksSynced (if the array is rebuilding/checking, this is the count of - blocks that have been scanned) - - BlocksSyncedFinishTime (the expected finish time of the rebuild scan, - listed in minutes remaining) - - BlocksSyncedPct (the percentage of the rebuild scan left) - - BlocksSyncedSpeed (the current speed the rebuild is running at, listed - in K/sec) - - BlocksTotal (the total count of blocks in the array) - - DisksActive (the number of disks that are currently considered healthy - in the array) - - DisksFailed (the current count of failed disks in the array) - - DisksSpare (the current count of "spare" disks in the array) - - DisksTotal (total count of disks in the array) - -## Tags - -- mdstat - - ActivityState (`active` or `inactive`) - - Devices (comma separated list of devices that make up the array) - - Name (name of the array) +- `mdstat` metric + - tags: + - ActivityState (`active` or `inactive`) + - Devices (comma separated list of devices that make up the array) + - Name (name of the array) + - fields: + - BlocksSynced (if the array is rebuilding/checking, this is the count of + blocks that have been scanned) + - BlocksSyncedFinishTime (the expected finish time of the rebuild scan, + listed in minutes remaining) + - BlocksSyncedPct (the percentage of the rebuild scan left) + - BlocksSyncedSpeed (the current speed the rebuild is running at, listed + in K/sec) + - BlocksTotal (the total count of blocks in the array) + - DisksActive (the number of disks that are currently considered healthy + in the array) + - DisksFailed (the current count of failed disks in the array) + - DisksSpare (the current count of "spare" disks in the array) + - DisksTotal (total count of disks in the array) ## Example Output -```shell -$ telegraf --config ~/ws/telegraf.conf --input-filter mdstat --test -* Plugin: mdstat, Collection 1 -> mdstat,ActivityState=active,Devices=sdm1\,sdn1,Name=md1 BlocksSynced=231299072i,BlocksSyncedFinishTime=0,BlocksSyncedPct=0,BlocksSyncedSpeed=0,BlocksTotal=231299072i,DisksActive=2i,DisksFailed=0i,DisksSpare=0i,DisksTotal=2i,DisksDown=0i 1617814276000000000 -> mdstat,ActivityState=active,Devices=sdm5\,sdn5,Name=md2 BlocksSynced=2996224i,BlocksSyncedFinishTime=0,BlocksSyncedPct=0,BlocksSyncedSpeed=0,BlocksTotal=2996224i,DisksActive=2i,DisksFailed=0i,DisksSpare=0i,DisksTotal=2i,DisksDown=0i 1617814276000000000 +```text +mdstat,ActivityState=active,Devices=sdm1\,sdn1,Name=md1 BlocksSynced=231299072i,BlocksSyncedFinishTime=0,BlocksSyncedPct=0,BlocksSyncedSpeed=0,BlocksTotal=231299072i,DisksActive=2i,DisksFailed=0i,DisksSpare=0i,DisksTotal=2i,DisksDown=0i 1617814276000000000 +mdstat,ActivityState=active,Devices=sdm5\,sdn5,Name=md2 BlocksSynced=2996224i,BlocksSyncedFinishTime=0,BlocksSyncedPct=0,BlocksSyncedSpeed=0,BlocksTotal=2996224i,DisksActive=2i,DisksFailed=0i,DisksSpare=0i,DisksTotal=2i,DisksDown=0i 1617814276000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/mem.md b/src/writeData/components/telegrafPlugins/mem.md index 625e991738..aeb3f56570 100644 --- a/src/writeData/components/telegrafPlugins/mem.md +++ b/src/writeData/components/telegrafPlugins/mem.md @@ -1,9 +1,25 @@ # Memory Input Plugin -The mem plugin collects system memory metrics. +This plugin collects metrics about the system memory. -For a more complete explanation of the difference between *used* and -*actual_used* RAM, see [Linux ate my ram](http://www.linuxatemyram.com/). +> [!TIP] +> For an explanation of the difference between *used* and *actual_used* +> RAM, see [Linux ate my ram][linux_ate_my_ram]. + +⭐ Telegraf v0.1.5 +🏷️ system +💻 all + +[linux_ate_my_ram]: http://www.linuxatemyram.com/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -58,6 +74,6 @@ Available fields are dependent on platform. ## Example Output -```shell +```text mem active=9299595264i,available=16818249728i,available_percent=80.41654254645131,buffered=2383761408i,cached=13316689920i,commit_limit=14751920128i,committed_as=11781156864i,dirty=122880i,free=1877688320i,high_free=0i,high_total=0i,huge_page_size=2097152i,huge_pages_free=0i,huge_pages_total=0i,inactive=7549939712i,low_free=0i,low_total=0i,mapped=416763904i,page_tables=19787776i,shared=670679040i,slab=2081071104i,sreclaimable=1923395584i,sunreclaim=157675520i,swap_cached=1302528i,swap_free=4286128128i,swap_total=4294963200i,total=20913917952i,used=3335778304i,used_percent=15.95004011996231,vmalloc_chunk=0i,vmalloc_total=35184372087808i,vmalloc_used=0i,wired=0i,write_back=0i,write_back_tmp=0i 1574712869000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/memcached.md b/src/writeData/components/telegrafPlugins/memcached.md index 0b7b6a75e2..37aca0aab6 100644 --- a/src/writeData/components/telegrafPlugins/memcached.md +++ b/src/writeData/components/telegrafPlugins/memcached.md @@ -1,6 +1,21 @@ # Memcached Input Plugin -This plugin gathers statistics data from a Memcached server. +This plugin gathers statistics data from [Memcached][memcached] instances. + +⭐ Telegraf v0.1.2 +🏷️ server +💻 all + +[memcached]: https://memcached.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -14,7 +29,7 @@ This plugin gathers statistics data from a Memcached server. # unix_sockets = ["/var/run/memcached.sock"] ## Optional TLS Config - # enable_tls = true + # enable_tls = false # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" @@ -51,7 +66,7 @@ Fields: * decr_hits - Number of successful decr reqs * decr_misses - Number of decr reqs against missing keys * delete_hits - Number of deletion reqs resulting in an item being removed -* delete_misses - umber of deletions reqs for missing keys +* delete_misses - Number of deletions reqs for missing keys * evicted_active - Items evicted from LRU that had been hit recently but did not jump to top of LRU * evicted_unfetched - Items evicted from LRU that were never touched by @@ -60,6 +75,48 @@ Fields: new items * expired_unfetched - Items pulled from LRU that were never touched by get/incr/append/etc before expiring +* extstore_compact_lost - The number of objects lost during the compaction + process. This happens when objects couldn't be rescued + or moved to other pages before they were overwritten + or evicted. +* extstore_compact_rescues - The total number of objects successfully rescued + during the compaction process, meaning they were + moved to another page instead of being discarded. +* extstore_compact_resc_cold - The number of cold objects (rarely accessed) + rescued during the compaction process. +* extstore_compact_resc_old - The number of older objects (likely less + frequently accessed) rescued during the compaction + process. +* extstore_compact_skipped - The number of compaction operations skipped, often + due to the page not requiring compaction or other + conditions preventing it. +* extstore_page_allocs - The total number of pages allocated in the external + storage system. +* extstore_page_evictions - The total number of pages evicted (removed) from + external storage, generally to free up space. +* extstore_page_reclaims - The total number of previously evicted pages that + were reclaimed and reused. +* extstore_pages_free - The number of pages currently free (unallocated) in the + external storage. +* extstore_pages_used - The number of pages currently in use in the external + storage system. +* extstore_objects_evicted - The total number of objects evicted from external + storage, typically to free up space. +* extstore_objects_read - The total number of objects read from external storage. +* extstore_objects_written - The total number of objects written to external storage. +* extstore_objects_used - The number of active objects currently in use in the + external storage. +* extstore_bytes_evicted - The total number of bytes evicted from external storage. +* extstore_bytes_written - The total number of bytes written to external storage. +* extstore_bytes_read - The total number of bytes read from external storage. +* extstore_bytes_used - The total number of bytes currently in use in external storage. +* extstore_bytes_fragmented - The total number of fragmented bytes in external + storage, representing space that is allocated but + not fully utilized. +* extstore_limit_maxbytes - The maximum limit of bytes that external storage can + use. +* extstore_io_queue - The current length of the I/O queue, representing pending + input/output operations for external storage. * get_expired - Number of items that have been requested but had already expired * get_flushed - Number of items that have been requested but have been flushed @@ -111,7 +168,6 @@ SELECT mean(get_hits) / mean(cmd_get) as get_ratio, mean(get_misses) / mean(cmd_ ## Example Output -```shell -$ ./telegraf --config telegraf.conf --input-filter memcached --test +```text memcached,server=localhost:11211 accepting_conns=1i,auth_cmds=0i,auth_errors=0i,bytes=0i,bytes_read=7i,bytes_written=0i,cas_badval=0i,cas_hits=0i,cas_misses=0i,cmd_flush=0i,cmd_get=0i,cmd_set=0i,cmd_touch=0i,conn_yields=0i,connection_structures=3i,curr_connections=2i,curr_items=0i,decr_hits=0i,decr_misses=0i,delete_hits=0i,delete_misses=0i,evicted_active=0i,evicted_unfetched=0i,evictions=0i,expired_unfetched=0i,get_expired=0i,get_flushed=0i,get_hits=0i,get_misses=0i,hash_bytes=524288i,hash_is_expanding=0i,hash_power_level=16i,incr_hits=0i,incr_misses=0i,limit_maxbytes=67108864i,listen_disabled_num=0i,max_connections=1024i,reclaimed=0i,rejected_connections=0i,store_no_memory=0i,store_too_large=0i,threads=4i,total_connections=3i,total_items=0i,touch_hits=0i,touch_misses=0i,uptime=3i 1644771989000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/mesos.md b/src/writeData/components/telegrafPlugins/mesos.md index 361e2d9a78..ebcb4482c1 100644 --- a/src/writeData/components/telegrafPlugins/mesos.md +++ b/src/writeData/components/telegrafPlugins/mesos.md @@ -1,9 +1,23 @@ -# Mesos Input Plugin +# Apache Mesos Input Plugin -This input plugin gathers metrics from Mesos. For more information, please -check the [Mesos Observability Metrics][1] page. +This plugin gathers metrics from [Apache Mesos][mesos] instances. For more +information, please check the [Mesos Observability Metrics][monitoring] page. -[1]: http://mesos.apache.org/documentation/latest/monitoring/ +⭐ Telegraf v0.10.3 +🏷️ containers +💻 all + +[mesos]:https://mesos.apache.org/ +[monitoring]: http://mesos.apache.org/documentation/latest/monitoring/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -332,9 +346,7 @@ Mesos slave metric groups ## Example Output -```shell -$ telegraf --config ~/mesos.conf --input-filter mesos --test -* Plugin: mesos, Collection 1 +```text mesos,role=master,state=leader,host=172.17.8.102,server=172.17.8.101 allocator/event_queue_dispatches=0,master/cpus_percent=0, master/cpus_revocable_percent=0,master/cpus_revocable_total=0, diff --git a/src/writeData/components/telegrafPlugins/minecraft.md b/src/writeData/components/telegrafPlugins/minecraft.md index e1ce6a1014..19ff28f479 100644 --- a/src/writeData/components/telegrafPlugins/minecraft.md +++ b/src/writeData/components/telegrafPlugins/minecraft.md @@ -1,16 +1,50 @@ # Minecraft Input Plugin -The `minecraft` plugin connects to a Minecraft server using the RCON protocol -to collects scores from the server [scoreboard][]. +This plugin collects score metrics from a [Minecraft][minecraft] server using +the RCON protocol. -This plugin is known to support Minecraft Java Edition versions 1.11 - 1.14. -When using an version of Minecraft earlier than 1.13, be aware that the values -for some criterion has changed and may need to be modified. +> [!NOTE] +> This plugin supports Minecraft Java Edition versions 1.11 - 1.14. When using +> a version earlier than 1.13, be aware that the values for some criteria has +> changed and need to be modified. -## Server Setup +⭐ Telegraf v1.4.0 +🏷️ server +💻 all -Enable [RCON][] on the Minecraft server, add this to your server configuration -in the [server.properties][] file: +[minecraft]: https://www.minecraft.net/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Configuration + +```toml @sample.conf +# Collects scores from a Minecraft server's scoreboard using the RCON protocol +[[inputs.minecraft]] + ## Address of the Minecraft server. + # server = "localhost" + + ## Server RCON Port. + # port = "25575" + + ## Server RCON Password. + password = "" + + ## Uncomment to remove deprecated metric components. + # tagdrop = ["server"] +``` + +### Server Setup + +Enable [RCON][rcon] on the Minecraft server and add the following to your +[`server.properties`][propfile] file: ```conf enable-rcon=true @@ -18,8 +52,8 @@ rcon.password= rcon.port=<1-65535> ``` -Scoreboard [Objectives][] must be added using the server console for the -plugin to collect. These can be added in game by players with op status, +Scoreboard [objectives][objectives] must be added using the server console for +the plugin to collect. These can be added in game by players with op status, from the server console, or over an RCON connection. When getting started pick an easy to test objective. This command will add an @@ -42,23 +76,9 @@ View the current scores with a command, substituting your player name: /scoreboard players list Etho ``` -## Configuration - -```toml @sample.conf -# Collects scores from a Minecraft server's scoreboard using the RCON protocol -[[inputs.minecraft]] - ## Address of the Minecraft server. - # server = "localhost" - - ## Server RCON Port. - # port = "25575" - - ## Server RCON Password. - password = "" - - ## Uncomment to remove deprecated metric components. - # tagdrop = ["server"] -``` +[rcon]: http://wiki.vg/RCON +[propfile]: https://minecraft.gamepedia.com/Server.properties +[objectives]: https://minecraft.gamepedia.com/Scoreboard#Objectives ## Metrics @@ -71,23 +91,10 @@ View the current scores with a command, substituting your player name: - fields: - `` (integer, count) -## Sample Queries - -Get the number of jumps per player in the last hour: - -```sql -SELECT SPREAD("jumps") FROM "minecraft" WHERE time > now() - 1h GROUP BY "player" -``` - ## Example Output -```shell +```text minecraft,player=notch,source=127.0.0.1,port=25575 jumps=178i 1498261397000000000 minecraft,player=dinnerbone,source=127.0.0.1,port=25575 deaths=1i,jumps=1999i,cow_kills=1i 1498261397000000000 minecraft,player=jeb,source=127.0.0.1,port=25575 d_pickaxe=1i,damage_dealt=80i,d_sword=2i,hunger=20i,health=20i,kills=1i,level=33i,jumps=264i,armor=15i 1498261397000000000 ``` - -[server.properties]: https://minecraft.gamepedia.com/Server.properties -[scoreboard]: http://minecraft.gamepedia.com/Scoreboard -[objectives]: https://minecraft.gamepedia.com/Scoreboard#Objectives -[rcon]: http://wiki.vg/RCON diff --git a/src/writeData/components/telegrafPlugins/mock.md b/src/writeData/components/telegrafPlugins/mock.md index bbd65680b0..8208efd4d6 100644 --- a/src/writeData/components/telegrafPlugins/mock.md +++ b/src/writeData/components/telegrafPlugins/mock.md @@ -1,11 +1,22 @@ # Mock Data Input Plugin -The mock input plugin generates random data based on a selection of different -algorithms. For example, it can produce random data between a set of values, -fake stock data, sine waves, and step-wise values. +The plugin generates mock-metrics based on different algorithms like sine-wave +functions, random numbers and more with the configured names and tags. Those +metrics are usefull during testing (e.g. processors) or if random data is +required. -Additionally, users can set the measurement name and tags used to whatever is -required to mock their situation. +⭐ Telegraf v1.22.0 +🏷️ testing +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -20,26 +31,27 @@ required to mock their situation. # "key" = "value" ## One or more mock data fields *must* be defined. - ## - ## [[inputs.mock.constant]] - ## name = "constant" - ## value = value_of_any_type - ## [[inputs.mock.random]] - ## name = "rand" - ## min = 1.0 - ## max = 6.0 - ## [[inputs.mock.sine_wave]] - ## name = "wave" - ## amplitude = 1.0 - ## period = 0.5 - ## [[inputs.mock.step]] - ## name = "plus_one" - ## start = 0.0 - ## step = 1.0 - ## [[inputs.mock.stock]] - ## name = "abc" - ## price = 50.00 - ## volatility = 0.2 + # [[inputs.mock.constant]] + # name = "constant" + # value = value_of_any_type + # [[inputs.mock.random]] + # name = "rand" + # min = 1.0 + # max = 6.0 + # [[inputs.mock.sine_wave]] + # name = "wave" + # amplitude = 1.0 + # period = 0.5 + # phase = 20.0 + # base_line = 0.0 + # [[inputs.mock.step]] + # name = "plus_one" + # start = 0.0 + # step = 1.0 + # [[inputs.mock.stock]] + # name = "abc" + # price = 50.00 + # volatility = 0.2 ``` The mock plugin only requires that: @@ -51,19 +63,23 @@ The mock plugin only requires that: The available algorithms for generating mock data include: -* Constant - generate a field with the given value of type string, float, int +* `constant`: generate a field with the given value of type string, float, int or bool -* Random Float - generate a random float, inclusive of min and max -* Sine Wave - produce a sine wave with a certain amplitude and period -* Step - always add the step value, negative values accepted -* Stock - generate fake, stock-like price values based on a volatility variable +* `random`: generate a random float, inclusive of min and max +* `sine_wave`: produce a sine wave with a certain amplitude, period and baseline +* `step`: always add the step value, negative values accepted +* `stock`: generate fake, stock-like price values based on a volatility variable + +## Metrics + +Metrics are entirely based on the user's own configuration and settings. ## Example Output The following example shows all available algorithms configured with an additional two tags as well: -```s +```text mock_sensors,building=5A,site=FTC random=4.875966794516125,abc=50,wave=0,plus_one=0 1632170840000000000 mock_sensors,building=5A,site=FTC random=5.738651873834452,abc=45.095549448434774,wave=5.877852522924732,plus_one=1 1632170850000000000 mock_sensors,building=5A,site=FTC random=1.0429328917205203,abc=51.928560083072924,wave=9.510565162951535,plus_one=2 1632170860000000000 diff --git a/src/writeData/components/telegrafPlugins/modbus.md b/src/writeData/components/telegrafPlugins/modbus.md index 432036506a..2f8440c02c 100644 --- a/src/writeData/components/telegrafPlugins/modbus.md +++ b/src/writeData/components/telegrafPlugins/modbus.md @@ -1,11 +1,27 @@ + # Modbus Input Plugin -The Modbus plugin collects Discrete Inputs, Coils, Input Registers and Holding -Registers via Modbus TCP or Modbus RTU/ASCII. +This plugin collects data from [Modbus][modbus] registers using e.g. Modbus TCP +or serial interfaces with Modbus RTU or Modbus ASCII. + +⭐ Telegraf v1.14.0 +🏷️ iot +💻 all + +[modbus]: https://www.modbus.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration -```toml @sample_general_begin.conf @sample_register.conf @sample_request.conf @sample_general_end.conf +```toml @sample_general_begin.conf @sample_register.conf @sample_request.conf @sample_metric.conf @sample_general_end.conf # Retrieve data from MODBUS slave devices [[inputs.modbus]] ## Connection Configuration @@ -32,26 +48,38 @@ Registers via Modbus TCP or Modbus RTU/ASCII. controller = "tcp://localhost:502" ## Serial (RS485; RS232) + ## For RS485 specific setting check the end of the configuration. + ## For unix-like operating systems use: # controller = "file:///dev/ttyUSB0" + ## For Windows operating systems use: + # controller = "COM1" # baud_rate = 9600 # data_bits = 8 # parity = "N" # stop_bits = 1 - ## For Modbus over TCP you can choose between "TCP", "RTUoverTCP" and "ASCIIoverTCP" - ## default behaviour is "TCP" if the controller is TCP - ## For Serial you can choose between "RTU" and "ASCII" - # transmission_mode = "RTU" + ## Transmission mode for Modbus packets depending on the controller type. + ## For Modbus over TCP you can choose between "TCP" , "RTUoverTCP" and + ## "ASCIIoverTCP". + ## For Serial controllers you can choose between "RTU" and "ASCII". + ## By default this is set to "auto" selecting "TCP" for ModbusTCP connections + ## and "RTU" for serial connections. + # transmission_mode = "auto" - ## Trace the connection to the modbus device as debug messages - ## Note: You have to enable telegraf's debug mode to see those messages! - # debug_connection = false + ## Trace the connection to the modbus device + # log_level = "trace" ## Define the configuration schema ## |---register -- define fields per register type in the original style (only supports one slave ID) ## |---request -- define fields on a requests base + ## |---metric -- define fields on a metric base configuration_type = "register" + ## Exclude the register type tag + ## Please note, this will also influence the grouping of metrics as you won't + ## see one metric per register type anymore! + # exclude_register_type_tag = false + ## --- "register" configuration style --- ## Measurements @@ -60,6 +88,7 @@ Registers via Modbus TCP or Modbus RTU/ASCII. ## Digital Variables, Discrete Inputs and Coils ## measurement - the (optional) measurement name, defaults to "modbus" ## name - the variable name + ## data_type - the (optional) output type, can be BOOL or UINT16 (default) ## address - variable address discrete_inputs = [ @@ -82,9 +111,13 @@ Registers via Modbus TCP or Modbus RTU/ASCII. ## |---BA, DCBA - Little Endian ## |---BADC - Mid-Big Endian ## |---CDAB - Mid-Little Endian - ## data_type - INT16, UINT16, INT32, UINT32, INT64, UINT64, - ## FLOAT32-IEEE, FLOAT64-IEEE (the IEEE 754 binary representation) - ## FLOAT32, FIXED, UFIXED (fixed-point representation on input) + ## data_type - BIT (single bit of a register) + ## INT8L, INT8H, UINT8L, UINT8H (low and high byte variants) + ## INT16, UINT16, INT32, UINT32, INT64, UINT64, + ## FLOAT16-IEEE, FLOAT32-IEEE, FLOAT64-IEEE (IEEE 754 binary representation) + ## FIXED, UFIXED (fixed-point representation on input) + ## STRING (byte-sequence converted to string) + ## bit - (optional) bit of the register, ONLY valid for BIT type ## scale - the final numeric variable representation ## address - variable address @@ -95,6 +128,7 @@ Registers via Modbus TCP or Modbus RTU/ASCII. { name = "current", byte_order = "ABCD", data_type = "FIXED", scale=0.001, address = [1,2]}, { name = "frequency", byte_order = "AB", data_type = "UFIXED", scale=0.1, address = [7]}, { name = "power", byte_order = "ABCD", data_type = "UFIXED", scale=0.1, address = [3,4]}, + { name = "firmware", byte_order = "AB", data_type = "STRING", address = [5, 6, 7, 8, 9, 10, 11, 12]}, ] input_registers = [ { name = "tank_level", byte_order = "AB", data_type = "INT16", scale=1.0, address = [0]}, @@ -126,33 +160,62 @@ Registers via Modbus TCP or Modbus RTU/ASCII. register = "coil" ## Name of the measurement. - ## Can be overriden by the individual field definitions. Defaults to "modbus" + ## Can be overridden by the individual field definitions. Defaults to "modbus" # measurement = "modbus" + ## Request optimization algorithm. + ## |---none -- Do not perform any optimization and use the given layout(default) + ## |---shrink -- Shrink requests to actually requested fields + ## | by stripping leading and trailing omits + ## |---rearrange -- Rearrange request boundaries within consecutive address ranges + ## | to reduce the number of requested registers by keeping + ## | the number of requests. + ## |---max_insert -- Rearrange request keeping the number of extra fields below the value + ## provided in "optimization_max_register_fill". It is not necessary to define 'omitted' + ## fields as the optimisation will add such field only where needed. + # optimization = "none" + + ## Maximum number register the optimizer is allowed to insert between two fields to + ## save requests. + ## This option is only used for the 'max_insert' optimization strategy. + ## NOTE: All omitted fields are ignored, so this option denotes the effective hole + ## size to fill. + # optimization_max_register_fill = 50 + ## Field definitions ## Analog Variables, Input Registers and Holding Registers ## address - address of the register to query. For coil and discrete inputs this is the bit address. ## name *1 - field name - ## type *1,2 - type of the modbus field, can be INT16, UINT16, INT32, UINT32, INT64, UINT64 and - ## FLOAT32, FLOAT64 (IEEE 754 binary representation) - ## scale *1,2 - (optional) factor to scale the variable with - ## output *1,2 - (optional) type of resulting field, can be INT64, UINT64 or FLOAT64. Defaults to FLOAT64 if - ## "scale" is provided and to the input "type" class otherwise (i.e. INT* -> INT64, etc). + ## type *1,2 - type of the modbus field, can be + ## BIT (single bit of a register) + ## INT8L, INT8H, UINT8L, UINT8H (low and high byte variants) + ## INT16, UINT16, INT32, UINT32, INT64, UINT64 and + ## FLOAT16, FLOAT32, FLOAT64 (IEEE 754 binary representation) + ## STRING (byte-sequence converted to string) + ## length *1,2 - (optional) number of registers, ONLY valid for STRING type + ## bit *1,2 - (optional) bit of the register, ONLY valid for BIT type + ## scale *1,2,4 - (optional) factor to scale the variable with + ## output *1,3,4 - (optional) type of resulting field, can be INT64, UINT64 or FLOAT64. + ## Defaults to FLOAT64 for numeric fields if "scale" is provided. + ## Otherwise the input "type" class is used (e.g. INT* -> INT64). ## measurement *1 - (optional) measurement name, defaults to the setting of the request ## omit - (optional) omit this field. Useful to leave out single values when querying many registers ## with a single request. Defaults to "false". ## - ## *1: Those fields are ignored if field is omitted ("omit"=true) - ## - ## *2: Thise fields are ignored for both "coil" and "discrete"-input type of registers. For those register types - ## the fields are output as zero or one in UINT64 format by default. + ## *1: These fields are ignored if field is omitted ("omit"=true) + ## *2: These fields are ignored for both "coil" and "discrete"-input type of registers. + ## *3: This field can only be "UINT16" or "BOOL" if specified for both "coil" + ## and "discrete"-input type of registers. By default the fields are + ## output as zero or one in UINT16 format unless "BOOL" is used. + ## *4: These fields cannot be used with "STRING"-type fields. ## Coil / discrete input example fields = [ - { address=0, name="motor1_run"}, - { address=1, name="jog", measurement="motor"}, - { address=2, name="motor1_stop", omit=true}, - { address=3, name="motor1_overheating"}, + { address=0, name="motor1_run" }, + { address=1, name="jog", measurement="motor" }, + { address=2, name="motor1_stop", omit=true }, + { address=3, name="motor1_overheating", output="BOOL" }, + { address=4, name="firmware", type="STRING", length=8 }, ] [inputs.modbus.request.tags] @@ -194,14 +257,131 @@ Registers via Modbus TCP or Modbus RTU/ASCII. machine = "impresser" location = "main building" + ## --- "metric" configuration style --- + + ## Per metric definition + ## + + ## Request optimization algorithm across metrics + ## |---none -- Do not perform any optimization and just group requests + ## | within metrics (default) + ## |---max_insert -- Collate registers across all defined metrics and fill in + ## holes to optimize the number of requests. + # optimization = "none" + + ## Maximum number of registers the optimizer is allowed to insert between + ## non-consecutive registers to save requests. + ## This option is only used for the 'max_insert' optimization strategy and + ## effectively denotes the hole size between registers to fill. + # optimization_max_register_fill = 50 + + ## Define a metric produced by the requests to the device + ## Multiple of those metrics can be defined. The referenced registers will + ## be collated into requests send to the device + [[inputs.modbus.metric]] + ## ID of the modbus slave device to query + ## If you need to query multiple slave-devices, create several "metric" definitions. + slave_id = 1 + + ## Byte order of the data + ## |---ABCD -- Big Endian (Motorola) + ## |---DCBA -- Little Endian (Intel) + ## |---BADC -- Big Endian with byte swap + ## |---CDAB -- Little Endian with byte swap + # byte_order = "ABCD" + + ## Name of the measurement + # measurement = "modbus" + + ## Field definitions + ## register - type of the modbus register, can be "coil", "discrete", + ## "holding" or "input". Defaults to "holding". + ## address - address of the register to query. For coil and discrete inputs this is the bit address. + ## name - field name + ## type *1 - type of the modbus field, can be + ## BIT (single bit of a register) + ## INT8L, INT8H, UINT8L, UINT8H (low and high byte variants) + ## INT16, UINT16, INT32, UINT32, INT64, UINT64 and + ## FLOAT16, FLOAT32, FLOAT64 (IEEE 754 binary representation) + ## STRING (byte-sequence converted to string) + ## length *1 - (optional) number of registers, ONLY valid for STRING type + ## bit *1,2 - (optional) bit of the register, ONLY valid for BIT type + ## scale *1,3 - (optional) factor to scale the variable with + ## output *2,3 - (optional) type of resulting field, can be INT64, UINT64 or FLOAT64. Defaults to FLOAT64 if + ## "scale" is provided and to the input "type" class otherwise (i.e. INT* -> INT64, etc). + ## + ## *1: These fields are ignored for both "coil" and "discrete"-input type of registers. + ## *2: This field can only be "UINT16" or "BOOL" if specified for both "coil" + ## and "discrete"-input type of registers. By default the fields are + ## output as zero or one in UINT16 format unless "BOOL" is used. + ## *3: These fields cannot be used with "STRING"-type fields. + fields = [ + { register="coil", address=0, name="door_open"}, + { register="coil", address=1, name="status_ok"}, + { register="holding", address=0, name="voltage", type="INT16" }, + { address=1, name="current", type="INT32", scale=0.001 }, + { address=5, name="energy", type="FLOAT32", scale=0.001 }, + { address=7, name="frequency", type="UINT32", scale=0.1 }, + { address=8, name="power_factor", type="INT64", scale=0.01 }, + { address=9, name="firmware", type="STRING", length=8 }, + ] + + ## Tags assigned to the metric + # [inputs.modbus.metric.tags] + # machine = "impresser" + # location = "main building" + + ## RS485 specific settings. Only take effect for serial controllers. + ## Note: This has to be at the end of the modbus configuration due to + ## TOML constraints. + # [inputs.modbus.rs485] + ## Delay RTS prior to sending + # delay_rts_before_send = "0ms" + ## Delay RTS after to sending + # delay_rts_after_send = "0ms" + ## Pull RTS line to high during sending + # rts_high_during_send = false + ## Pull RTS line to high after sending + # rts_high_after_send = false + ## Enabling receiving (Rx) during transmission (Tx) + # rx_during_tx = false + ## Enable workarounds required by some devices to work correctly # [inputs.modbus.workarounds] - ## Pause between read requests sent to the device. This might be necessary for (slow) serial devices. + ## Pause after connect delays the first request by the specified time. + ## This might be necessary for (slow) devices. + # pause_after_connect = "0ms" + + ## Pause between read requests sent to the device. + ## This might be necessary for (slow) serial devices. # pause_between_requests = "0ms" - ## Close the connection after every gather cycle. Usually the plugin closes the connection after a certain - ## idle-timeout, however, if you query a device with limited simultaneous connectivity (e.g. serial devices) - ## from multiple instances you might want to only stay connected during gather and disconnect afterwards. + + ## Close the connection after every gather cycle. + ## Usually the plugin closes the connection after a certain idle-timeout, + ## however, if you query a device with limited simultaneous connectivity + ## (e.g. serial devices) from multiple instances you might want to only + ## stay connected during gather and disconnect afterwards. # close_connection_after_gather = false + + ## Force the plugin to read each field in a separate request. + ## This might be necessary for devices not conforming to the spec, + ## see https://github.com/influxdata/telegraf/issues/12071. + # one_request_per_field = false + + ## Enforce the starting address to be zero for the first request on + ## coil registers. This is necessary for some devices see + ## https://github.com/influxdata/telegraf/issues/8905 + # read_coils_starting_at_zero = false + + ## String byte-location in registers AFTER byte-order conversion + ## Some device (e.g. EM340) place the string byte in only the upper or + ## lower byte location of a register see + ## https://github.com/influxdata/telegraf/issues/14748 + ## Available settings: + ## lower -- use only lower byte of the register i.e. 00XX 00XX 00XX 00XX + ## upper -- use only upper byte of the register i.e. XX00 XX00 XX00 XX00 + ## By default both bytes of the register are used i.e. XXXX XXXX. + # string_register_location = "" ``` ## Notes @@ -211,9 +391,9 @@ those debug messages, Telegraf has to be started with debugging enabled (i.e. with the `--debug` option). Please be aware that connection tracing will produce a lot of messages and should __NOT__ be used in production environments. -Please use `pause_between_requests` with care. Ensure the total gather time, -including the pause(s), does not exceed the configured collection interval. Note -that pauses add up if multiple requests are sent! +Please use `pause_after_connect` / `pause_between_requests` with care. Ensure +the total gather time, including the pause(s), does not exceed the configured +collection interval. Note that pauses add up if multiple requests are sent! ## Configuration styles @@ -227,6 +407,7 @@ Directly jump to the styles: - [original / register plugin style](#register-configuration-style) - [per-request style](#request-configuration-style) +- [per-metrict style](#metric-configuration-style) --- @@ -235,27 +416,42 @@ Directly jump to the styles: This is the original style used by this plugin. It allows a per-register configuration for a single slave-device. +> [!NOTE] +> For legacy reasons this configuration style is not completely consistent with +> the other styles. + #### Usage of `data_type` The field `data_type` defines the representation of the data value on input from the modbus registers. The input values are then converted from the given -`data_type` to a type that is apropriate when sending the value to the output -plugin. These output types are usually one of string, integer or -floating-point-number. The size of the output type is assumed to be large enough -for all supported input types. The mapping from the input type to the output -type is fixed and cannot be configured. +`data_type` to a type that is appropriate when sending the value to the output +plugin. These output types are usually an integer or floating-point-number. The +size of the output type is assumed to be large enough for all supported input +types. The mapping from the input type to the output type is fixed and cannot +be configured. + +##### Booleans: `BOOL` + +This type is only valid for _coil_ and _discrete_ registers. The value will be +`true` if the register has a non-zero (ON) value and `false` otherwise. + +##### Integers: `INT8L`, `INT8H`, `UINT8L`, `UINT8H` + +These types are used for 8-bit integer values. Select the one that matches your +modbus data source. The `L` and `H` suffix denotes the low- and high byte of +the register respectively. ##### Integers: `INT16`, `UINT16`, `INT32`, `UINT32`, `INT64`, `UINT64` These types are used for integer input values. Select the one that matches your -modbus data source. +modbus data source. For _coil_ and _discrete_ registers only `UINT16` is valid. -##### Floating Point: `FLOAT32-IEEE`, `FLOAT64-IEEE` +##### Floating Point: `FLOAT16-IEEE`, `FLOAT32-IEEE`, `FLOAT64-IEEE` Use these types if your modbus registers contain a value that is encoded in this format. These types always include the sign, therefore no variant exists. -##### Fixed Point: `FIXED`, `UFIXED` (`FLOAT32`) +##### Fixed Point: `FIXED`, `UFIXED` These types are handled as an integer type on input, but are converted to floating point representation for further processing (e.g. scaling). Use one of @@ -271,14 +467,24 @@ Select the type `FIXED` when the input type is declared to hold signed integer values. Your documentation of the modbus device should indicate this with a term like 'int32 containing fixed-point representation with N decimal places'. -(FLOAT32 is deprecated and should not be used. UFIXED provides the same -conversion from unsigned values). +##### String: `STRING` + +This type is used to query the number of registers specified in the `address` +setting and convert the byte-sequence to a string. Please note, if the +byte-sequence contains a `null` byte, the string is truncated at this position. +You cannot use the `scale` setting for string fields. + +##### Bit: `BIT` + +This type is used to query a single bit of a register specified in the `address` +setting and convert the value to an unsigned integer. This type __requires__ the +`bit` setting to be specified. --- ### `request` configuration style -This sytle can be used to specify the modbus requests directly. It enables +This style can be used to specify the modbus requests directly. It enables specifying multiple `[[inputs.modbus.request]]` sections including multiple slave-devices. This way, _modbus_ gateway devices can be queried. Please note that _requests_ might be split for non-consecutive addresses. If you want to @@ -310,6 +516,66 @@ using the `measurement` setting. If the setting is omitted `modbus` is used. Furthermore, the measurement value can be overridden by each field individually. +#### Optimization setting + +__Please only use request optimization if you do understand the implications!__ +The `optimization` setting can be used to optimize the actual requests sent to +the device. The following algorithms are available + +##### `none` (_default_) + +Do not perform any optimization. Please note that the requests are still obeying +the maximum request sizes. Furthermore, completely empty requests, i.e. all +fields specify `omit=true`, are removed. Otherwise, the requests are sent as +specified by the user including request of omitted fields. This setting should +be used if you want full control over the requests e.g. to accommodate for +device constraints. + +##### `shrink` + +This optimization allows to remove leading and trailing fields from requests if +those fields are omitted. This can shrink the request number and sizes in cases +where you specify large amounts of omitted fields, e.g. for documentation +purposes. + +##### `rearrange` + +Requests are processed similar to `shrink` but the request boundaries are +rearranged such that usually less registers are being read while keeping the +number of requests. This optimization algorithm only works on consecutive +address ranges and respects user-defined gaps in the field addresses. + +__Please note:__ This optimization might take long in case of many +non-consecutive, non-omitted fields! + +##### `aggressive` + +Requests are processed similar to `rearrange` but user-defined gaps in the field +addresses are filled automatically. This usually reduces the number of requests, +but will increase the number of registers read due to larger requests. +This algorithm might be useful if you only want to specify the fields you are +interested in but want to minimize the number of requests sent to the device. + +__Please note:__ This optimization might take long in case of many +non-consecutive, non-omitted fields! + +##### `max_insert` + +Fields are assigned to the same request as long as the hole between the fields +do not exceed the maximum fill size given in `optimization_max_register_fill`. +User-defined omitted fields are ignored and interpreted as holes, so the best +practice is to not manually insert omitted fields for this optimizer. This +allows to specify only actually used fields and let the optimizer figure out +the request organization which can dramatically improve query time. The +trade-off here is between the cost of reading additional registers trashed +later and the cost of many requests. + +__Please note:__ The optimal value for `optimization_max_register_fill` depends +on the network and the queried device. It is hence recommended to test several +values and assess performance in order to find the best value. Use the +`--test --debug` flags to monitor how may requests are sent and the number of +touched registers. + #### Field definitions Each `request` can contain a list of fields to collect from the modbus device. @@ -317,8 +583,8 @@ Each `request` can contain a list of fields to collect from the modbus device. ##### address A field is identified by an `address` that reflects the modbus register -address. You can usually find the address values for the different datapoints in -the datasheet of your modbus device. This is a mandatory setting. +address. You can usually find the address values for the different data-points +in the datasheet of your modbus device. This is a mandatory setting. For _coil_ and _discrete input_ registers this setting specifies the __bit__ containing the value of the field. @@ -334,15 +600,25 @@ metric identified by `measurement`, `slave_id` and `register`. ##### register datatype -The `register` setting specifies the datatype of the modbus register and can be -set to `INT16`, `UINT16`, `INT32`, `UINT32`, `INT64` or `UINT64` for integer -types or `FLOAT32` and `FLOAT64` for IEEE 754 binary representations of floating -point values. Usually the datatype of the register is listed in the datasheet of -your modbus device in relation to the `address` described above. +The `type` setting specifies the datatype of the modbus register and can be +set to `INT8L`, `INT8H`, `UINT8L`, `UINT8H` where `L` is the lower byte of the +register and `H` is the higher byte. +Furthermore, the types `INT16`, `UINT16`, `INT32`, `UINT32`, `INT64` or `UINT64` +for integer types or `FLOAT16`, `FLOAT32` and `FLOAT64` for IEEE 754 binary +representations of floating point values exist. `FLOAT16` denotes a +half-precision float with a 16-bit representation. +Usually the datatype of the register is listed in the datasheet of your modbus +device in relation to the `address` described above. + +The `STRING` datatype is special in that it requires the `length` setting to +be specified containing the length (in terms of number of registers) containing +the string. The returned byte-sequence is interpreted as string and truncated +to the first `null` byte found if any. The `scale` and `output` setting cannot +be used for this `type`. - This setting is ignored if the field's `omit` is set to `true` or if the - `register` type is a bit-type (`coil` or `discrete`) and can be omitted in - these cases. +This setting is ignored if the field's `omit` is set to `true` or if the +`register` type is a bit-type (`coil` or `discrete`) and can be omitted in +these cases. ##### scaling @@ -367,10 +643,11 @@ non-zero value, the output type is `FLOAT64`. Otherwise, the output type corresponds to the register datatype _class_, i.e. `INT*` will result in `INT64`, `UINT*` in `UINT64` and `FLOAT*` in `FLOAT64`. -This setting is ignored if the field's `omit` is set to `true` or if the -`register` type is a bit-type (`coil` or `discrete`) and can be omitted in these -cases. For `coil` and `discrete` registers the field-value is output as zero or -one in `UINT16` format. +This setting is ignored if the field's `omit` is set to `true` and can be +omitted. In case the `register` type is a bit-type (`coil` or `discrete`) only +`UINT16` or `BOOL` are valid with the former being the default if omitted. +For `coil` and `discrete` registers the field-value is output as zero or one in +`UINT16` format or as `true` and `false` in `BOOL` format. #### per-field measurement setting @@ -401,10 +678,148 @@ __Please note:__ These tags take precedence over predefined tags such as `name`, --- -## Metrics +### `metric` configuration style -Metrics are custom and configured using the `discrete_inputs`, `coils`, -`holding_register` and `input_registers` options. +This style can be used to specify the desired metrics directly instead of +focusing on the modbus view. Multiple `[[inputs.modbus.metric]]` sections +including multiple slave-devices can be specified. This way, _modbus_ gateway +devices can be queried. The plugin automatically collects registers across +the specified metrics, groups them per slave and register-type and (optionally) +optimizes the resulting requests for non-consecutive addresses. + +#### Slave device + +You can use the `slave_id` setting to specify the ID of the slave device to +query. It should be specified for each metric section, otherwise it defaults to +zero. Please note, only one `slave_id` can be specified per metric section. + +#### Byte order of the registers + +The `byte_order` setting specifies the byte and word-order of the registers. It +can be set to `ABCD` for _big endian (Motorola)_ or `DCBA` for _little endian +(Intel)_ format as well as `BADC` and `CDAB` for _big endian_ or _little endian_ +with _byte swap_. + +#### Measurement name + +You can specify the name of the measurement for the fields defined in the +given section using the `measurement` setting. If the setting is omitted +`modbus` is used. + +#### Optimization setting + +__Please only use request optimization if you do understand the implications!__ +The `optimization` setting can specified globally, i.e. __NOT__ per metric +section, and is used to optimize the actual requests sent to the device. Here, +the optimization is applied across _all metric sections_! The following +algorithms are available + +##### `none` (_default_) + +Do not perform any optimization. Please note that consecutive registers are +still grouped into one requests while obeying the maximum request sizes. This +setting should be used if you want to touch as less registers as possible at +the cost of more requests sent to the device. + +##### `max_insert` + +Fields are assigned to the same request as long as the hole between the touched +registers does not exceed the maximum fill size given via +`optimization_max_register_fill`. This optimization might lead to a drastically +reduced request number and thus an improved query time. The trade-off here is +between the cost of reading additional registers trashed later and the cost of +many requests. + +__Please note:__ The optimal value for `optimization_max_register_fill` depends +on the network and the queried device. It is hence recommended to test several +values and assess performance in order to find the best value. Use the +`--test --debug` flags to monitor how may requests are sent and the number of +touched registers. + +#### Field definitions + +Each `metric` can contain a list of fields to collect from the modbus device. +The specified fields directly corresponds to the fields of the resulting metric. + +##### register + +The `register` setting specifies the modbus register-set to query and can be set +to `coil`, `discrete`, `holding` or `input`. + +##### address + +A field is identified by an `address` that reflects the modbus register +address. You can usually find the address values for the different data-points +in the datasheet of your modbus device. This is a mandatory setting. + +For _coil_ and _discrete input_ registers this setting specifies the __bit__ +containing the value of the field. + +##### name + +Using the `name` setting you can specify the field-name in the metric as output +by the plugin. + +__Please note:__ There cannot be multiple fields with the same `name` in one +metric identified by `measurement`, `slave_id`, `register` and tag-set. + +##### register datatype + +The `type` setting specifies the datatype of the modbus register and can be +set to `INT8L`, `INT8H`, `UINT8L`, `UINT8H` where `L` is the lower byte of the +register and `H` is the higher byte. +Furthermore, the types `INT16`, `UINT16`, `INT32`, `UINT32`, `INT64` or `UINT64` +for integer types or `FLOAT16`, `FLOAT32` and `FLOAT64` for IEEE 754 binary +representations of floating point values exist. `FLOAT16` denotes a +half-precision float with a 16-bit representation. +Usually the datatype of the register is listed in the datasheet of your modbus +device in relation to the `address` described above. + +The `STRING` datatype is special in that it requires the `length` setting to +be specified containing the length (in terms of number of registers) containing +the string. The returned byte-sequence is interpreted as string and truncated +to the first `null` byte found if any. The `scale` and `output` setting cannot +be used for this `type`. + +This setting is ignored if the `register` is a bit-type (`coil` or `discrete`) +and can be omitted in these cases. + +##### scaling + +You can use the `scale` setting to scale the register values, e.g. if the +register contains a fix-point values in `UINT32` format with two decimal places +for example. To convert the read register value to the actual value you can set +the `scale=0.01`. The scale is used as a factor e.g. `field_value * scale`. + +This setting is ignored if the `register` is a bit-type (`coil` or `discrete`) +and can be omitted in these cases. + +__Please note:__ The resulting field-type will be set to `FLOAT64` if no output +format is specified. + +##### output datatype + +Using the `output` setting you can explicitly specify the output +field-datatype. The `output` type can be `INT64`, `UINT64` or `FLOAT64`. If not +set explicitly, the output type is guessed as follows: If `scale` is set to a +non-zero value, the output type is `FLOAT64`. Otherwise, the output type +corresponds to the register datatype _class_, i.e. `INT*` will result in +`INT64`, `UINT*` in `UINT64` and `FLOAT*` in `FLOAT64`. + +In case the `register` is a bit-type (`coil` or `discrete`) only `UINT16` or +`BOOL` are valid with the former being the default if omitted. For `coil` and +`discrete` registers the field-value is output as zero or one in `UINT16` format +or as `true` and `false` in `BOOL` format. + +#### Tags definitions + +Each `metric` can be accompanied by a set of tag. These tags directly correspond +to the tags of the resulting metric. + +__Please note:__ These tags take precedence over predefined tags such as `name`, +`type` or `slave_id`. + +--- ## Troubleshooting @@ -459,9 +874,13 @@ are required for your device, please let us know. In case your device needs a workaround that is not yet implemented, please open an issue or submit a pull-request. +## Metrics + +The plugin reads the configured registers and constructs metrics based on the +specified configuration. There is no predefined metric format. + ## Example Output -```sh -$ ./telegraf -config telegraf.conf -input-filter modbus -test -modbus.InputRegisters,host=orangepizero Current=0,Energy=0,Frecuency=60,Power=0,PowerFactor=0,Voltage=123.9000015258789 1554079521000000000 +```text +modbus,name=device,slave_id=1,type=holding_register energy=3254.5,power=23.5,frequency=49,97 1701777274026591864 ``` diff --git a/src/writeData/components/telegrafPlugins/mongodb.md b/src/writeData/components/telegrafPlugins/mongodb.md index 74a204a481..fbdedf9ea4 100644 --- a/src/writeData/components/telegrafPlugins/mongodb.md +++ b/src/writeData/components/telegrafPlugins/mongodb.md @@ -1,6 +1,27 @@ # MongoDB Input Plugin -All MongoDB server versions from 2.6 and higher are supported. +This plugin collects metrics about [MongoDB][mongodb] server instances by +running database commands. + +> [!NOTE] +> This plugin supports all versions marked as supported in the +> [MongoDB Software Lifecycle Schedules][lifecycles]. + +⭐ Telegraf v0.1.5 +🏷️ datastore +💻 all + +[mongodb]: https://www.mongodb.com +[lifecycles]: https://www.mongodb.com/support-policy/lifecycles + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -314,7 +335,7 @@ by running Telegraf with the `--debug` argument. ## Example Output -```shell +```text mongodb,hostname=127.0.0.1:27017 active_reads=1i,active_writes=0i,aggregate_command_failed=0i,aggregate_command_total=0i,assert_msg=0i,assert_regular=0i,assert_rollovers=0i,assert_user=0i,assert_warning=0i,available_reads=127i,available_writes=128i,commands=65i,commands_per_sec=4i,connections_available=51199i,connections_current=1i,connections_total_created=5i,count_command_failed=0i,count_command_total=7i,cursor_no_timeout=0i,cursor_no_timeout_count=0i,cursor_pinned=0i,cursor_pinned_count=0i,cursor_timed_out=0i,cursor_timed_out_count=0i,cursor_total=0i,cursor_total_count=0i,delete_command_failed=0i,delete_command_total=1i,deletes=1i,deletes_per_sec=0i,distinct_command_failed=0i,distinct_command_total=0i,document_deleted=0i,document_inserted=0i,document_returned=0i,document_updated=0i,find_and_modify_command_failed=0i,find_and_modify_command_total=0i,find_command_failed=0i,find_command_total=1i,flushes=52i,flushes_per_sec=0i,flushes_total_time_ns=364000000i,get_more_command_failed=0i,get_more_command_total=0i,getmores=0i,getmores_per_sec=0i,insert_command_failed=0i,insert_command_total=0i,inserts=0i,inserts_per_sec=0i,jumbo_chunks=0i,latency_commands=5740i,latency_commands_count=46i,latency_reads=348i,latency_reads_count=7i,latency_writes=0i,latency_writes_count=0i,net_in_bytes=296i,net_in_bytes_count=4262i,net_out_bytes=29322i,net_out_bytes_count=242103i,open_connections=1i,operation_scan_and_order=0i,operation_write_conflicts=0i,page_faults=1i,percent_cache_dirty=0,percent_cache_used=0,queries=1i,queries_per_sec=0i,queued_reads=0i,queued_writes=0i,resident_megabytes=33i,storage_freelist_search_bucket_exhausted=0i,storage_freelist_search_requests=0i,storage_freelist_search_scanned=0i,tcmalloc_central_cache_free_bytes=0i,tcmalloc_current_allocated_bytes=0i,tcmalloc_current_total_thread_cache_bytes=0i,tcmalloc_heap_size=0i,tcmalloc_max_total_thread_cache_bytes=0i,tcmalloc_pageheap_commit_count=0i,tcmalloc_pageheap_committed_bytes=0i,tcmalloc_pageheap_decommit_count=0i,tcmalloc_pageheap_free_bytes=0i,tcmalloc_pageheap_reserve_count=0i,tcmalloc_pageheap_scavenge_count=0i,tcmalloc_pageheap_total_commit_bytes=0i,tcmalloc_pageheap_total_decommit_bytes=0i,tcmalloc_pageheap_total_reserve_bytes=0i,tcmalloc_pageheap_unmapped_bytes=0i,tcmalloc_spinlock_total_delay_ns=0i,tcmalloc_thread_cache_free_bytes=0i,tcmalloc_total_free_bytes=0i,tcmalloc_transfer_cache_free_bytes=0i,total_available=0i,total_created=0i,total_docs_scanned=0i,total_in_use=0i,total_keys_scanned=0i,total_refreshing=0i,total_tickets_reads=128i,total_tickets_writes=128i,ttl_deletes=0i,ttl_deletes_per_sec=0i,ttl_passes=51i,ttl_passes_per_sec=0i,update_command_failed=0i,update_command_total=0i,updates=0i,updates_per_sec=0i,uptime_ns=6135152000000i,version="4.0.19",vsize_megabytes=5088i,wt_connection_files_currently_open=13i,wt_data_handles_currently_active=18i,wtcache_app_threads_page_read_count=99i,wtcache_app_threads_page_read_time=44528i,wtcache_app_threads_page_write_count=19i,wtcache_bytes_read_into=3248195i,wtcache_bytes_written_from=170612i,wtcache_current_bytes=3648788i,wtcache_internal_pages_evicted=0i,wtcache_max_bytes_configured=8053063680i,wtcache_modified_pages_evicted=0i,wtcache_pages_evicted_by_app_thread=0i,wtcache_pages_queued_for_eviction=0i,wtcache_pages_read_into=234i,wtcache_pages_requested_from=18235i,wtcache_server_evicting_pages=0i,wtcache_tracked_dirty_bytes=0i,wtcache_unmodified_pages_evicted=0i,wtcache_worker_thread_evictingpages=0i 1595691605000000000 mongodb,hostname=127.0.0.1:27017,node_type=PRI,rs_name=rs0 active_reads=1i,active_writes=0i,aggregate_command_failed=0i,aggregate_command_total=0i,assert_msg=0i,assert_regular=0i,assert_rollovers=0i,assert_user=25i,assert_warning=0i,available_reads=127i,available_writes=128i,commands=345i,commands_per_sec=4i,connections_available=838853i,connections_current=7i,connections_total_created=13i,count_command_failed=0i,count_command_total=5i,cursor_no_timeout=0i,cursor_no_timeout_count=0i,cursor_pinned=0i,cursor_pinned_count=2i,cursor_timed_out=0i,cursor_timed_out_count=0i,cursor_total=0i,cursor_total_count=4i,delete_command_failed=0i,delete_command_total=0i,deletes=0i,deletes_per_sec=0i,distinct_command_failed=0i,distinct_command_total=0i,document_deleted=0i,document_inserted=2i,document_returned=56i,document_updated=0i,find_and_modify_command_failed=0i,find_and_modify_command_total=0i,find_command_failed=0i,find_command_total=23i,flushes=4i,flushes_per_sec=0i,flushes_total_time_ns=43000000i,get_more_command_failed=0i,get_more_command_total=88i,getmores=88i,getmores_per_sec=0i,insert_command_failed=0i,insert_command_total=2i,inserts=2i,inserts_per_sec=0i,jumbo_chunks=0i,latency_commands=82532i,latency_commands_count=337i,latency_reads=30633i,latency_reads_count=111i,latency_writes=0i,latency_writes_count=0i,member_status="PRI",net_in_bytes=636i,net_in_bytes_count=172300i,net_out_bytes=38849i,net_out_bytes_count=335459i,open_connections=7i,operation_scan_and_order=1i,operation_write_conflicts=0i,page_faults=1i,percent_cache_dirty=0,percent_cache_used=0,queries=23i,queries_per_sec=2i,queued_reads=0i,queued_writes=0i,repl_apply_batches_num=0i,repl_apply_batches_total_millis=0i,repl_apply_ops=0i,repl_buffer_count=0i,repl_buffer_size_bytes=0i,repl_commands=0i,repl_commands_per_sec=0i,repl_deletes=0i,repl_deletes_per_sec=0i,repl_executor_pool_in_progress_count=0i,repl_executor_queues_network_in_progress=0i,repl_executor_queues_sleepers=3i,repl_executor_unsignaled_events=0i,repl_getmores=0i,repl_getmores_per_sec=0i,repl_inserts=0i,repl_inserts_per_sec=0i,repl_lag=0i,repl_network_bytes=0i,repl_network_getmores_num=0i,repl_network_getmores_total_millis=0i,repl_network_ops=0i,repl_oplog_window_sec=140i,repl_queries=0i,repl_queries_per_sec=0i,repl_state=1i,repl_updates=0i,repl_updates_per_sec=0i,resident_megabytes=81i,state="PRIMARY",storage_freelist_search_bucket_exhausted=0i,storage_freelist_search_requests=0i,storage_freelist_search_scanned=0i,tcmalloc_central_cache_free_bytes=322128i,tcmalloc_current_allocated_bytes=143566680i,tcmalloc_current_total_thread_cache_bytes=1098968i,tcmalloc_heap_size=181317632i,tcmalloc_max_total_thread_cache_bytes=260046848i,tcmalloc_pageheap_commit_count=53i,tcmalloc_pageheap_committed_bytes=149106688i,tcmalloc_pageheap_decommit_count=1i,tcmalloc_pageheap_free_bytes=3244032i,tcmalloc_pageheap_reserve_count=51i,tcmalloc_pageheap_scavenge_count=1i,tcmalloc_pageheap_total_commit_bytes=183074816i,tcmalloc_pageheap_total_decommit_bytes=33968128i,tcmalloc_pageheap_total_reserve_bytes=181317632i,tcmalloc_pageheap_unmapped_bytes=32210944i,tcmalloc_spinlock_total_delay_ns=0i,tcmalloc_thread_cache_free_bytes=1098968i,tcmalloc_total_free_bytes=2295976i,tcmalloc_transfer_cache_free_bytes=874880i,total_available=0i,total_created=0i,total_docs_scanned=56i,total_in_use=0i,total_keys_scanned=2i,total_refreshing=0i,total_tickets_reads=128i,total_tickets_writes=128i,ttl_deletes=0i,ttl_deletes_per_sec=0i,ttl_passes=2i,ttl_passes_per_sec=0i,update_command_failed=0i,update_command_total=0i,updates=0i,updates_per_sec=0i,uptime_ns=166481000000i,version="4.0.19",vsize_megabytes=1482i,wt_connection_files_currently_open=26i,wt_data_handles_currently_active=44i,wtcache_app_threads_page_read_count=0i,wtcache_app_threads_page_read_time=0i,wtcache_app_threads_page_write_count=56i,wtcache_bytes_read_into=0i,wtcache_bytes_written_from=130403i,wtcache_current_bytes=100312i,wtcache_internal_pages_evicted=0i,wtcache_max_bytes_configured=506462208i,wtcache_modified_pages_evicted=0i,wtcache_pages_evicted_by_app_thread=0i,wtcache_pages_queued_for_eviction=0i,wtcache_pages_read_into=0i,wtcache_pages_requested_from=2085i,wtcache_server_evicting_pages=0i,wtcache_tracked_dirty_bytes=63929i,wtcache_unmodified_pages_evicted=0i,wtcache_worker_thread_evictingpages=0i 1595691605000000000 mongodb_db_stats,db_name=admin,hostname=127.0.0.1:27017 avg_obj_size=241,collections=2i,data_size=723i,index_size=49152i,indexes=3i,num_extents=0i,objects=3i,ok=1i,storage_size=53248i,type="db_stat" 1547159491000000000 diff --git a/src/writeData/components/telegrafPlugins/monit.md b/src/writeData/components/telegrafPlugins/monit.md index ddb7ba4e14..14fdfcd18e 100644 --- a/src/writeData/components/telegrafPlugins/monit.md +++ b/src/writeData/components/telegrafPlugins/monit.md @@ -1,17 +1,29 @@ # Monit Input Plugin -The `monit` plugin gathers metrics and status information about local processes, -remote hosts, file, file systems, directories and network interfaces managed +This plugin gathers metrics and status information about local processes, +remote hosts, files, file systems, directories and network interfaces managed and watched over by [Monit][monit]. -The use this plugin you should first enable the [HTTPD TCP port][httpd] in -Monit. +> [!NOTE] +> The plugin supports Monit version 5.16+. +> To use this plugin you have to enable the [HTTPD TCP port][httpd] in Monit. -Minimum Version of Monit tested with is 5.16. +⭐ Telegraf v1.14.0 +🏷️ network +💻 all [monit]: https://mmonit.com/ [httpd]: https://mmonit.com/monit/documentation/monit.html#TCP-PORT +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -230,7 +242,7 @@ Minimum Version of Monit tested with is 5.16. ## Example Output -```shell +```text monit_file,monitoring_mode=active,monitoring_status=monitored,pending_action=none,platform_name=Linux,service=rsyslog_pid,source=xyzzy.local,status=running,version=5.20.0 mode=644i,monitoring_mode_code=0i,monitoring_status_code=1i,pending_action_code=0i,size=3i,status_code=0i 1579735047000000000 monit_process,monitoring_mode=active,monitoring_status=monitored,pending_action=none,platform_name=Linux,service=rsyslog,source=xyzzy.local,status=running,version=5.20.0 children=0i,cpu_percent=0,cpu_percent_total=0,mem_kb=3148i,mem_kb_total=3148i,mem_percent=0.2,mem_percent_total=0.2,monitoring_mode_code=0i,monitoring_status_code=1i,parent_pid=1i,pending_action_code=0i,pid=318i,status_code=0i,threads=4i 1579735047000000000 monit_program,monitoring_mode=active,monitoring_status=initializing,pending_action=none,platform_name=Linux,service=echo,source=xyzzy.local,status=running,version=5.20.0 monitoring_mode_code=0i,monitoring_status_code=2i,pending_action_code=0i,program_started=0i,program_status=0i,status_code=0i 1579735047000000000 diff --git a/src/writeData/components/telegrafPlugins/mqtt_consumer.md b/src/writeData/components/telegrafPlugins/mqtt_consumer.md index d4633e8541..7dfd992fcc 100644 --- a/src/writeData/components/telegrafPlugins/mqtt_consumer.md +++ b/src/writeData/components/telegrafPlugins/mqtt_consumer.md @@ -1,7 +1,60 @@ # MQTT Consumer Input Plugin -The [MQTT][mqtt] consumer plugin reads from the specified MQTT topics -and creates metrics using one of the supported [input data formats][]. +This service plugin consumes messages from [MQTT][mqtt] brokers for the +configured topics in one of the supported [data formats][data_formats]. + +⭐ Telegraf v0.10.3 +🏷️ messaging +💻 all + +[mqtt]: https://mqtt.org +[data_formats]: /docs/DATA_FORMATS_INPUT.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Startup error behavior options + +In addition to the plugin-specific and global configuration settings the plugin +supports options for specifying the behavior when experiencing startup errors +using the `startup_error_behavior` setting. Available values are: + +- `error`: Telegraf with stop and exit in case of startup errors. This is the + default behavior. +- `ignore`: Telegraf will ignore startup errors for this plugin and disables it + but continues processing for all other plugins. +- `retry`: Telegraf will try to startup the plugin in every gather or write + cycle in case of startup errors. The plugin is disabled until + the startup succeeds. +- `probe`: Telegraf will probe the plugin's function (if possible) and disables + the plugin in case probing fails. If the plugin does not support + probing, Telegraf will behave as if `ignore` was set instead. + +## Secret-store support + +This plugin supports secrets from secret-stores for the `username` and +`password` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -38,21 +91,32 @@ and creates metrics using one of the supported [input data formats][]. ## Connection timeout for initial connection in seconds # connection_timeout = "30s" - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Interval and ping timeout for keep-alive messages + ## The sum of those options defines when a connection loss is detected. + ## Note: The keep-alive interval needs to be greater or equal one second and + ## fractions of a second are not supported. + # keepalive = "60s" + # ping_timeout = "10s" + + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Persistent session disables clearing of the client session on connection. ## In order for this option to work you must also set client_id to identify ## the client. To receive messages that arrived while the client is offline, ## also set the qos option to 1 or 2 and don't forget to also set the QoS when - ## publishing. + ## publishing. Finally, using a persistent session will use the initial + ## connection topics and not subscribe to any new topics even after + ## reconnecting or restarting without a change in client ID. # persistent_session = false ## If unset, a random client ID will be generated. @@ -69,6 +133,12 @@ and creates metrics using one of the supported [input data formats][]. ## Use TLS but skip chain & host verification # insecure_skip_verify = false + ## Client trace messages + ## When set to true, and debug mode enabled in the agent settings, the MQTT + ## client's messages are included in telegraf logs. These messages are very + ## noisey, but essential for debugging issues. + # client_trace = false + ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: @@ -76,14 +146,15 @@ and creates metrics using one of the supported [input data formats][]. data_format = "influx" ## Enable extracting tag values from MQTT topics - ## _ denotes an ignored entry in the topic path + ## _ denotes an ignored entry in the topic path, + ## # denotes a variable length path element (can only be used once per setting) # [[inputs.mqtt_consumer.topic_parsing]] # topic = "" # measurement = "" # tags = "" # fields = "" ## Value supported is int, float, unit - # [[inputs.mqtt_consumer.topic.types]] + # [inputs.mqtt_consumer.topic_parsing.types] # key = type ``` @@ -142,10 +213,8 @@ cpu,host=pop-os,tag=telegraf,topic=telegraf/one/cpu/23 value=45,test=23i 1637014 ## Field Pivoting Example -You can use the pivot processor to rotate single -valued metrics into a multi field metric. -For more info check out the pivot processors -[here][1]. +You can use the pivot processor to rotate single valued metrics into a +multi-field metric. For more info check out the [pivot processor][plugin_pivot]. For this example these are the topics: @@ -185,7 +254,7 @@ Will result in the following metric: sensors,site=CLE,version=v1,device_name=device5 temp=390,rpm=45.0,ph=1.45 ``` -[1]: "Pivot Processor" +[plugin_pivot]: /plugins/processors/pivot/README.md ## Metrics @@ -195,14 +264,13 @@ sensors,site=CLE,version=v1,device_name=device5 temp=390,rpm=45.0,ph=1.45 - example when [[inputs.mqtt_consumer.topic_parsing]] is set - when [[inputs.internal]] is set: - - payload_size (int): get the cumulative size in bytes that have been received from incoming messages - - messages_received (int): count of the number of messages that have been received from mqtt - + - payload_size (int): get the cumulative size in bytes that have been received + from incoming messages + - messages_received (int): count of the number of messages that have been + received from mqtt + This will result in the following metric: ```text internal_mqtt_consumer host=pop-os version=1.24.0 messages_received=622i payload_size=37942i 1657282270000000000 ``` - -[mqtt]: https://mqtt.org -[input data formats]: /docs/DATA_FORMATS_INPUT.md diff --git a/src/writeData/components/telegrafPlugins/multifile.md b/src/writeData/components/telegrafPlugins/multifile.md index 512b8a6e35..b811351ce2 100644 --- a/src/writeData/components/telegrafPlugins/multifile.md +++ b/src/writeData/components/telegrafPlugins/multifile.md @@ -1,12 +1,27 @@ # Multifile Input Plugin -The multifile input plugin allows Telegraf to combine data from multiple files -into a single metric, creating one field or tag per file. This is often -useful creating custom metrics from the `/sys` or `/proc` filesystems. +This plugin reads the combined data from multiple files into a single metric, +creating one field or tag per file. This is often useful creating custom +metrics from the `/sys` or `/proc` filesystems. -> Note: If you wish to parse metrics from a single file formatted in one of -> the supported [input data formats][], you should use the [file][] input -> plugin instead. +> [!NOTE] +> To parse metrics from a single file you should use the [file][file_plugin] +> input plugin instead. + +⭐ Telegraf v1.10.0 +🏷️ system +💻 all + +[file_plugin]: /plugins/inputs/file/README.md + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -36,6 +51,8 @@ useful creating custom metrics from the `/sys` or `/proc` filesystems. conversion = "float(3)" ``` +## Metrics + Each file table can contain the following options: * `file`: @@ -59,7 +76,7 @@ Data format used to parse the file contents: This example shows a BME280 connected to a Raspberry Pi, using the sample config. -```sh +```text multifile pressure=101.343285156,temperature=20.4,humidityrelative=48.9 1547202076000000000 ``` @@ -77,6 +94,3 @@ The kernel driver provides the following files in * `in_humidityrelative_input`: `48900` * `in_pressure_input`: `101.343285156` * `in_temp_input`: `20400` - -[input data formats]: /docs/DATA_FORMATS_INPUT.md -[file]: /plugins/inputs/file/README.md diff --git a/src/writeData/components/telegrafPlugins/mysql.md b/src/writeData/components/telegrafPlugins/mysql.md index 028670bb0a..0d6594b854 100644 --- a/src/writeData/components/telegrafPlugins/mysql.md +++ b/src/writeData/components/telegrafPlugins/mysql.md @@ -1,28 +1,27 @@ # MySQL Input Plugin -This plugin gathers the statistic data from MySQL server - -* Global statuses -* Global variables -* Slave statuses -* Binlog size -* Process list -* User Statistics -* Info schema auto increment columns -* InnoDB metrics -* Table I/O waits -* Index I/O waits -* Perf Schema table lock waits -* Perf Schema event waits -* Perf Schema events statements -* File events statistics -* Table schema statistics - -In order to gather metrics from the performance schema, it must first be enabled -in mySQL configuration. See the performance schema [quick start][quick-start]. +This plugin gathers statistics from [MySQL][mysql] server instances. +> [!NOTE] +> To gather metrics from the performance schema, it must first be enabled in +> MySQL. See the performance schema [quick start][quick-start] for details. + +⭐ Telegraf v0.1.1 +🏷️ datastore +💻 all + +[mysql]: https://www.mysql.com/ [quick-start]: https://dev.mysql.com/doc/refman/8.0/en/performance-schema-quick-start.html +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -76,7 +75,11 @@ in mySQL configuration. See the performance schema [quick start][quick-start]. ## gather metrics from SHOW SLAVE STATUS command output # gather_slave_status = false + ## gather metrics from SHOW REPLICA STATUS command output + # gather_replica_status = false + ## use SHOW ALL SLAVES STATUS command output for MariaDB + ## use SHOW ALL REPLICAS STATUS command if enable gather replica status # mariadb_dialect = false ## gather metrics from SHOW BINARY LOGS command output @@ -109,8 +112,6 @@ in mySQL configuration. See the performance schema [quick start][quick-start]. ## list of events to be gathered for gather_perf_sum_per_acc_per_event ## in case of empty list all events will be gathered # perf_summary_events = [] - # - # gather_perf_events_statements = false ## the limits for metrics form perf_events_statements # perf_events_statements_digest_text_limit = 120 @@ -129,6 +130,28 @@ in mySQL configuration. See the performance schema [quick start][quick-start]. # insecure_skip_verify = false ``` +### String Data + +Some fields may return string data. This is unhelpful for some outputs where +numeric data is required (e.g. Prometheus). In these cases, users can make use +of the enum processor to convert string values to numeric values. Below is an +example using the `slave_slave_io_running` field, which can have a variety of +string values: + +```toml +[[processors.enum]] + namepass = "mysql" + [[processors.enum.mapping]] + field = "slave_slave_io_running" + dest = "slave_slave_io_running_int" + default = 4 + [processors.enum.mapping.value_mappings] + Yes = 0 + No = 1 + Preparing = 2 + Connecting = 3 +``` + ### Metric Version When `metric_version = 2`, a variety of field type issues are corrected as well @@ -231,7 +254,8 @@ the single-source replication is on. If the multi-source replication is set, then everything works differently, this metric does not work with multi-source replication, unless you set `gather_all_slave_channels = true`. For MariaDB, `mariadb_dialect = true` should be set to address the field names and commands -differences. +differences. If enable `gather_replica_status` metrics gather from command +`SHOW REPLICA STATUS`, for MariaDB will be `SHOW ALL REPLICAS STATUS` * slave_[column name] * Binary logs - all metrics including size and count of all binary files. Requires to be turned on in configuration. @@ -375,3 +399,5 @@ The unit of fields varies by the tags. * engine * row_format * create_options + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/nats.md b/src/writeData/components/telegrafPlugins/nats.md index 0642788b7e..f811019676 100644 --- a/src/writeData/components/telegrafPlugins/nats.md +++ b/src/writeData/components/telegrafPlugins/nats.md @@ -1,14 +1,29 @@ -# NATS Input Plugin +# NATS Server Monitoring Input Plugin -The [NATS](http://www.nats.io/about/) monitoring plugin gathers metrics from the -NATS [monitoring http server][1]. +This plugin gathers metrics of a [NATS][nats] server instance using its +[monitoring endpoints][nats_monitoring]. -[1]: https://www.nats.io/documentation/server/gnatsd-monitoring/ +⭐ Telegraf v1.6.0 +🏷️ server +💻 all + +[nats]: http://www.nats.io +[nats_monitoring]: https://docs.nats.io/running-a-nats-service/nats_admin/monitoring + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Provides metrics about the state of a NATS server +# This plugin does NOT support FreeBSD [[inputs.nats]] ## The address of the monitoring endpoint of the NATS server server = "http://localhost:8222" @@ -40,6 +55,6 @@ NATS [monitoring http server][1]. ## Example Output -```shell +```text nats,server=http://localhost:8222 uptime=117158348682i,mem=6647808i,subscriptions=0i,out_bytes=0i,connections=0i,in_msgs=0i,total_connections=0i,cores=2i,cpu=0,slow_consumers=0i,routes=0i,remotes=0i,out_msgs=0i,in_bytes=0i 1517015107000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/nats_consumer.md b/src/writeData/components/telegrafPlugins/nats_consumer.md index 4b422121dc..758c9c613a 100644 --- a/src/writeData/components/telegrafPlugins/nats_consumer.md +++ b/src/writeData/components/telegrafPlugins/nats_consumer.md @@ -1,10 +1,42 @@ # NATS Consumer Input Plugin -The [NATS][nats] consumer plugin reads from the specified NATS subjects and -creates metrics using one of the supported [input data formats][]. +This service plugin consumes messages from [NATS][nats] instances in one of the +supported [data formats][data_formats]. A [Queue Group][queue_group] is used +when subscribing to subjects so multiple instances of telegraf can consume +messages in parallel. +The plugin supports authenticating via [username/password][userpass], a +[credentials file][creds] (NATS 2.0), or an [nkey seed file][nkey] (NATS 2.0). -A [Queue Group][queue group] is used when subscribing to subjects so multiple -instances of telegraf can read from a NATS cluster in parallel. +⭐ Telegraf v0.10.3 +🏷️ messaging +💻 all + +[nats]: https://www.nats.io/about/ +[data_formats]: /docs/DATA_FORMATS_INPUT.md +[queue_group]: https://www.nats.io/documentation/concepts/nats-queueing/ +[userpass]: https://docs.nats.io/using-nats/developer/connecting/userpass +[creds]: https://docs.nats.io/using-nats/developer/connecting/creds +[nkey]: https://docs.nats.io/using-nats/developer/connecting/nkey + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -21,9 +53,9 @@ instances of telegraf can read from a NATS cluster in parallel. ## jetstream subjects ## jetstream is a streaming technology inside of nats. - ## With jetstream the nats-server persists messages and + ## With jetstream the nats-server persists messages and ## a consumer can consume historical messages. This is - ## useful when telegraf needs to restart it don't miss a + ## useful when telegraf needs to restart it don't miss a ## message. You need to configure the nats-server. ## https://docs.nats.io/nats-concepts/jetstream. jetstream_subjects = ["js_telegraf"] @@ -31,13 +63,16 @@ instances of telegraf can read from a NATS cluster in parallel. ## name a queue group queue_group = "telegraf_consumers" - ## Optional credentials + ## Optional authentication with username and password credentials # username = "" # password = "" - ## Optional NATS 2.0 and NATS NGS compatible user credentials + ## Optional authentication with NATS credentials file (NATS 2.0) # credentials = "/etc/telegraf/nats.creds" + ## Optional authentication with nkey seed file (NATS 2.0) + # nkey_seed = "/etc/telegraf/seed.txt" + ## Use Transport Layer Security # secure = false @@ -53,14 +88,16 @@ instances of telegraf can read from a NATS cluster in parallel. # pending_message_limit = 65536 # pending_bytes_limit = 67108864 - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Data format to consume. @@ -70,10 +107,6 @@ instances of telegraf can read from a NATS cluster in parallel. data_format = "influx" ``` -[nats]: https://www.nats.io/about/ -[input data formats]: /docs/DATA_FORMATS_INPUT.md -[queue group]: https://www.nats.io/documentation/concepts/nats-queueing/ - ## Metrics Which data you will get depends on the subjects you consume from nats @@ -81,4 +114,4 @@ Which data you will get depends on the subjects you consume from nats ## Example Output Depends on the nats subject input -nats_consumer,host=[] value=1.9 1655972309339341000 +nats_consumer,host=foo,subject=recvsubj value=1.9 1655972309339341000 diff --git a/src/writeData/components/telegrafPlugins/neptune_apex.md b/src/writeData/components/telegrafPlugins/neptune_apex.md index 70267496d1..d715a71485 100644 --- a/src/writeData/components/telegrafPlugins/neptune_apex.md +++ b/src/writeData/components/telegrafPlugins/neptune_apex.md @@ -1,12 +1,23 @@ # Neptune Apex Input Plugin -The Neptune Apex controller family allows an aquarium hobbyist to monitor and -control their tanks based on various probes. The data is taken directly from the -`/cgi-bin/status.xml` at the interval specified in the telegraf.conf -configuration file. +This plugin gathers metrics from [Neptune Apex controller][neptune] instances, +allowing aquarium hobbyists to monitor and control their tanks based on various +probes. + +⭐ Telegraf v1.10.0 +🏷️ iot +💻 all + +[neptune]: https://www.neptunesystems.com + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -The [Neptune Apex](https://www.neptunesystems.com/) input plugin collects -real-time data from the Apex's status.xml page. +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -27,58 +38,6 @@ real-time data from the Apex's status.xml page. ``` -## Metrics - -The Neptune Apex controller family allows an aquarium hobbyist to monitor and -control their tanks based on various probes. The data is taken directly from the -/cgi-bin/status.xml at the interval specified in the telegraf.conf configuration -file. - -No manipulation is done on any of the fields to ensure future changes to the -status.xml do not introduce conversion bugs to this plugin. When reasonable and -predictable, some tags are derived to make graphing easier and without front-end -programming. These tags are clearly marked in the list below and should be -considered a convenience rather than authoritative. - -- neptune_apex (All metrics have this measurement name) - - tags: - - host (mandatory, string) is the host on which telegraf runs. - - source (mandatory, string) contains the hostname of the apex device. This can be used to differentiate between - different units. By using the source instead of the serial number, replacements units won't disturb graphs. - - type (mandatory, string) maps to the different types of data. Values can be "controller" (The Apex controller - itself), "probe" for the different input probes, or "output" for any physical or virtual outputs. The Watt and Amp - probes attached to the physical 120V outlets are aggregated under the output type. - - hardware (mandatory, string) controller hardware version - - software (mandatory, string) software version - - probe_type (optional, string) contains the probe type as reported by the Apex. - - name (optional, string) contains the name of the probe or output. - - output_id (optional, string) represents the internal unique output ID. This is different from the device_id. - - device_id (optional, string) maps to either the aquabus address or the internal reference. - - output_type (optional, string) categorizes the output into different categories. This tag is DERIVED from the - device_id. Possible values are: "variable" for the 0-10V signal ports, "outlet" for physical 120V sockets, "alert" - for alarms (email, sound), "virtual" for user-defined outputs, and "unknown" for everything else. - - fields: - - value (float, various unit) represents the probe reading. - - state (string) represents the output state as defined by the Apex. Examples include "AOF" for Auto (OFF), "TBL" - for operating according to a table, and "PF*" for different programs. - - amp (float, Ampere) is the amount of current flowing through the 120V outlet. - - watt (float, Watt) represents the amount of energy flowing through the 120V outlet. - - xstatus (string) indicates the xstatus of an outlet. Found on wireless Vortech devices. - - power_failed (int64, Unix epoch in ns) when the controller last lost power. Omitted if the apex reports it as "none" - - power_restored (int64, Unix epoch in ns) when the controller last powered on. Omitted if the apex reports it as "none" - - serial (string, serial number) - - time: - - The time used for the metric is parsed from the status.xml page. This helps when cross-referencing events with - the local system of Apex Fusion. Since the Apex uses NTP, this should not matter in most scenarios. - -## Sample Queries - -Get the max, mean, and min for the temperature in the last hour: - -```sql -SELECT mean("value") FROM "neptune_apex" WHERE ("probe_type" = 'Temp') AND time >= now() - 6h GROUP BY time(20s) -``` - ## Troubleshooting ### sendRequest failure @@ -103,6 +62,76 @@ The neptune_apex plugin is strict on its input to prevent any conversion errors. If you have fields in the status.xml output that are not converted to a metric, open a feature request and paste your whole status.xml +## Metrics + +The Neptune Apex controller family allows an aquarium hobbyist to monitor and +control their tanks based on various probes. The data is taken directly from the +/cgi-bin/status.xml at the interval specified in the telegraf.conf configuration +file. + +No manipulation is done on any of the fields to ensure future changes to the +status.xml do not introduce conversion bugs to this plugin. When reasonable and +predictable, some tags are derived to make graphing easier and without front-end +programming. These tags are clearly marked in the list below and should be +considered a convenience rather than authoritative. + +- neptune_apex (All metrics have this measurement name) + - tags: + - host (mandatory, string) - host on which telegraf runs + - source (mandatory, string) - contains the hostname of the apex device + This can be used to differentiate between + different units. By using the source + instead of the serial number, replacements + units won't disturb graphs. + - type (mandatory, string) - maps to the different data types + Values can be "controller" (The Apex + controller itself), "probe" for the + different input probes, or "output" for any + physical or virtual outputs. The Watt and + Amp probes attached to the physical 120V + outlets are aggregated under the output type. + - hardware (mandatory, string) - controller hardware version + - software (mandatory, string) - software version + - probe_type (optional, string) - contains the probe type as reported by Apex + - name (optional, string) - contains the name of the probe or output + - output_id (optional, string) - represents the internal unique output ID + This is different from the device_id. + - device_id (optional, string) - maps to either the aquabus address or + internal reference + - output_type (optional, string) - categorizes the output into different + categories. This tag is DERIVED from the + device_id. Possible values are: + "variable" for the 0-10V signal ports, + "outlet" for physical 120V sockets, + "alert" for alarms (email, sound), + "virtual" for user-defined outputs, and + "unknown" for everything else + - fields: + - value (float, various unit) - represents the probe reading. + - state (string) - represents the output state as + defined by the Apex. Examples + include "AOF" for Auto (OFF), + "TBL" for operating according + to a table, and "PF*" for + different programs + - amp (float, Ampere) - amount of current flowing + through the 120V outlet + - watt (float, Watt) - amount of energy flowing + through the 120V outlet + - xstatus (string) - xstatus of an outlet, found on + wireless Vortech devices + - power_failed (int64, Unix epoch in ns) - last power loss of the controller + Omitted if the apex reports it + as "none". + - power_restored (int64, Unix epoch in ns) - last powered on of the controller + Omitted if the apex reports it + as "none" + - serial (string, serial number) + - time: + - metric time as parsed from the status.xml page. This helps when + cross-referencing events with the local system of Apex Fusion. Since the + Apex uses NTP, this should not matter in most scenarios. + ## Example Output ```text @@ -147,7 +176,6 @@ neptune_apex,hardware=1.0,host=ubuntu,name=ORP,probe_type=ORP,software=5.04_7A18 neptune_apex,hardware=1.0,host=ubuntu,name=Salt,probe_type=Cond,software=5.04_7A18,source=apex,type=probe value=29.4 1545978278000000000 neptune_apex,hardware=1.0,host=ubuntu,name=Volt_2,software=5.04_7A18,source=apex,type=probe value=117 1545978278000000000 neptune_apex,hardware=1.0,host=ubuntu,name=Volt_4,software=5.04_7A18,source=apex,type=probe value=118 1545978278000000000 - ``` ## Contributing diff --git a/src/writeData/components/telegrafPlugins/net.md b/src/writeData/components/telegrafPlugins/net.md index 820aa05353..d177f34336 100644 --- a/src/writeData/components/telegrafPlugins/net.md +++ b/src/writeData/components/telegrafPlugins/net.md @@ -1,7 +1,19 @@ -# Net Input Plugin +# Network Input Plugin -This plugin gathers metrics about network interface and protocol usage (Linux -only). +This plugin gathers metrics about network interface and protocol usage. + +⭐ Telegraf v0.1.1 +🏷️ network +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -12,14 +24,15 @@ only). ## Setting interfaces will tell it to gather these explicit interfaces, ## regardless of status. When specifying an interface, glob-style ## patterns are also supported. - ## # interfaces = ["eth*", "enp0s[0-1]", "lo"] - ## + ## On linux systems telegraf also collects protocol stats. ## Setting ignore_protocol_stats to true will skip reporting of protocol metrics. ## + ## DEPRECATION NOTICE: A value of 'false' is deprecated and discouraged! + ## Please set this to `true` and use the 'inputs.nstat' + ## plugin instead. # ignore_protocol_stats = false - ## ``` ## Metrics @@ -36,6 +49,8 @@ Fields (all platforms): * err_out - The total number of transmit errors detected by the interface * drop_in - The total number of received packets dropped by the interface * drop_out - The total number of transmitted packets dropped by the interface +* speed - The interface's latest or current speed value, in Mbits/sec. May be + -1 if unsupported by the interface Different platforms gather the data above with different mechanisms. Telegraf uses the ([gopsutil](https://github.com/shirou/gopsutil)) package, which under @@ -52,37 +67,24 @@ silently. [source]: https://elixir.bootlin.com/linux/latest/source/net/ipv4/proc.c -## Tags +Tags: * Net measurements have the following tags: * interface (the interface from which metrics are gathered) Under Linux the system wide protocol metrics have the interface=all tag. -## Sample Queries - -You can use the following query to get the upload/download traffic rate per -second for all interfaces in the last hour. The query uses the [derivative -function][deriv] which calculates the rate of change between subsequent field -values. - -[deriv]: https://docs.influxdata.com/influxdb/latest/query-data/influxql/functions/transformations/#derivative - -```sql -SELECT derivative(first(bytes_recv), 1s) as "download bytes/sec", derivative(first(bytes_sent), 1s) as "upload bytes/sec" FROM net WHERE time > now() - 1h AND interface != 'all' GROUP BY time(10s), interface fill(0); -``` - ## Example Output -```shell -# All platforms -$ ./telegraf --config telegraf.conf --input-filter net --test +All platforms provide metrics like the following: + +```text net,interface=eth0,host=HOST bytes_sent=451838509i,bytes_recv=3284081640i,packets_sent=2663590i,packets_recv=3585442i,err_in=0i,err_out=0i,drop_in=4i,drop_out=0i 1492834180000000000 ``` -```shell -# Linux -$ ./telegraf --config telegraf.conf --input-filter net --test +On Linux additional metrics might be provided: + +```text net,interface=eth0,host=HOST bytes_sent=451838509i,bytes_recv=3284081640i,packets_sent=2663590i,packets_recv=3585442i,err_in=0i,err_out=0i,drop_in=4i,drop_out=0i 1492834180000000000 net,interface=all,host=HOST ip_reasmfails=0i,icmp_insrcquenchs=0i,icmp_outtimestamps=0i,ip_inhdrerrors=0i,ip_inunknownprotos=0i,icmp_intimeexcds=10i,icmp_outaddrmasks=0i,icmp_indestunreachs=11005i,icmpmsg_outtype0=6i,tcp_retranssegs=14669i,udplite_outdatagrams=0i,ip_reasmtimeout=0i,ip_outnoroutes=2577i,ip_inaddrerrors=186i,icmp_outaddrmaskreps=0i,tcp_incsumerrors=0i,tcp_activeopens=55965i,ip_reasmoks=0i,icmp_inechos=6i,icmp_outdestunreachs=9417i,ip_reasmreqds=0i,icmp_outtimestampreps=0i,tcp_rtoalgorithm=1i,icmpmsg_intype3=11005i,icmpmsg_outtype69=129i,tcp_outsegs=2777459i,udplite_rcvbuferrors=0i,ip_fragoks=0i,icmp_inmsgs=13398i,icmp_outerrors=0i,tcp_outrsts=14951i,udplite_noports=0i,icmp_outmsgs=11517i,icmp_outechoreps=6i,icmpmsg_intype11=10i,icmp_inparmprobs=0i,ip_forwdatagrams=0i,icmp_inechoreps=1909i,icmp_outredirects=0i,icmp_intimestampreps=0i,icmpmsg_intype5=468i,tcp_rtomax=120000i,tcp_maxconn=-1i,ip_fragcreates=0i,ip_fragfails=0i,icmp_inredirects=468i,icmp_outtimeexcds=0i,icmp_outechos=1965i,icmp_inaddrmasks=0i,tcp_inerrs=389i,tcp_rtomin=200i,ip_defaultttl=64i,ip_outrequests=3366408i,ip_forwarding=2i,udp_incsumerrors=0i,udp_indatagrams=522136i,udplite_incsumerrors=0i,ip_outdiscards=871i,icmp_inerrors=958i,icmp_outsrcquenchs=0i,icmpmsg_intype0=1909i,tcp_insegs=3580226i,udp_outdatagrams=577265i,udp_rcvbuferrors=0i,udplite_sndbuferrors=0i,icmp_incsumerrors=0i,icmp_outparmprobs=0i,icmpmsg_outtype3=9417i,tcp_attemptfails=2652i,udplite_inerrors=0i,udplite_indatagrams=0i,ip_inreceives=4172969i,icmpmsg_outtype8=1965i,tcp_currestab=59i,udp_noports=5961i,ip_indelivers=4099279i,ip_indiscards=0i,tcp_estabresets=5818i,udp_sndbuferrors=3i,icmp_intimestamps=0i,icmpmsg_intype8=6i,udp_inerrors=0i,icmp_inaddrmaskreps=0i,tcp_passiveopens=452i 1492831540000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/net_response.md b/src/writeData/components/telegrafPlugins/net_response.md index ffae42a3d5..9f404e3e28 100644 --- a/src/writeData/components/telegrafPlugins/net_response.md +++ b/src/writeData/components/telegrafPlugins/net_response.md @@ -1,7 +1,20 @@ # Network Response Input Plugin -The input plugin test UDP/TCP connections response time and can optional -verify text in the response. +This plugin tests UDP/TCP connection and produces metrics from the result, the +response time and optionally verifies text in the response. + +⭐ Telegraf v0.10.3 +🏷️ network +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -30,7 +43,7 @@ verify text in the response. # expect = "ssh" ## Uncomment to remove deprecated fields; recommended for new deploys - # fielddrop = ["result_type", "string_found"] + # fieldexclude = ["result_type", "string_found"] ``` ## Metrics @@ -43,13 +56,14 @@ verify text in the response. - result - fields: - response_time (float, seconds) - - result_code (int, success = 0, timeout = 1, connection_failed = 2, read_failed = 3, string_mismatch = 4) + - result_code (int) success = 0, timeout = 1, connection_failed = 2, + read_failed = 3, string_mismatch = 4 - result_type (string) **DEPRECATED in 1.7; use result tag** - string_found (boolean) **DEPRECATED in 1.4; use result tag** ## Example Output -```shell +```text net_response,port=8086,protocol=tcp,result=success,server=localhost response_time=0.000092948,result_code=0i,result_type="success" 1525820185000000000 net_response,port=8080,protocol=tcp,result=connection_failed,server=localhost result_code=2i,result_type="connection_failed" 1525820088000000000 net_response,port=8080,protocol=udp,result=read_failed,server=localhost result_code=3i,result_type="read_failed",string_found=false 1525820088000000000 diff --git a/src/writeData/components/telegrafPlugins/netstat.md b/src/writeData/components/telegrafPlugins/netstat.md index 11276aa71d..f27fd81ead 100644 --- a/src/writeData/components/telegrafPlugins/netstat.md +++ b/src/writeData/components/telegrafPlugins/netstat.md @@ -1,11 +1,24 @@ -# Netstat Input Plugin +# Network Connection Statistics Input Plugin -This plugin collects TCP connections state and UDP socket counts by using -`lsof`. +This plugin collects statistics about TCP connection states and UDP socket +counts. + +⭐ Telegraf v0.2.0 +🏷️ network +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration -``` toml +```toml @sample.conf # Read TCP metrics such as established, time wait and sockets counts. [[inputs.netstat]] # no configuration @@ -28,7 +41,7 @@ Supported TCP Connection states are follows. - closing - none -## TCP Connection State measurements +### TCP Connection State measurements Meta: @@ -51,7 +64,7 @@ Measurement names: If there are no connection on the state, the metric is not counted. -## UDP socket counts measurements +### UDP socket counts measurements Meta: @@ -60,3 +73,9 @@ Meta: Measurement names: - udp_socket + +## Example Output + +```text +netstat tcp_close=0i,tcp_close_wait=0i,tcp_closing=0i,tcp_established=14i,tcp_fin_wait1=0i,tcp_fin_wait2=0i,tcp_last_ack=0i,tcp_listen=1i,tcp_none=46i,tcp_syn_recv=0i,tcp_syn_sent=0i,tcp_time_wait=0i,udp_socket=10i 1668520568000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/nfsclient.md b/src/writeData/components/telegrafPlugins/nfsclient.md index a02f0eb0d0..ee02be8e73 100644 --- a/src/writeData/components/telegrafPlugins/nfsclient.md +++ b/src/writeData/components/telegrafPlugins/nfsclient.md @@ -1,15 +1,31 @@ -# NFS Client Input Plugin +# Network Filesystem Input Plugin -The NFS Client input plugin collects data from /proc/self/mountstats. By -default, only a limited number of general system-level metrics are collected, -including basic read/write counts. If `fullstat` is set, a great deal of -additional metrics are collected, detailed below. +This plugin collects metrics about operations on [Network Filesystem][nfs] +mounts. By default, only a limited number of general system-level metrics are +collected, including basic read/write counts but more detailed metrics can be +enabled. -__NOTE__ Many of the metrics, even if tagged with a mount point, are really -_per-server_. Thus, if you mount these two shares: `nfs01:/vol/foo/bar` and -`nfs01:/vol/foo/baz`, there will be two near identical entries in -/proc/self/mountstats. This is a limitation of the metrics exposed by the -kernel, not the telegraf plugin. +> [!NOTE] +> Many of the metrics, even if tagged with a mount point, are really +> _per-server_. E.g. if you mount two shares: `nfs01:/vol/foo/bar` and +> `nfs01:/vol/foo/baz`, there will be two near identical entries in +> `/proc/self/mountstats`. This is a limitation of the metrics exposed by the +> kernel, not by this plugin. + +⭐ Telegraf v1.18.0 +🏷️ network, system +💻 all + +[nfs]: https://www.ietf.org/rfc/rfc1813.txt?number=1813 + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -19,7 +35,7 @@ kernel, not the telegraf plugin. ## Read more low-level metrics (optional, defaults to false) # fullstat = false - ## List of mounts to explictly include or exclude (optional) + ## List of mounts to explicitly include or exclude (optional) ## The pattern (Go regexp) is matched against the mount point (not the ## device being mounted). If include_mounts is set, all mounts are ignored ## unless present in the list. If a mount is listed in both include_mounts @@ -28,7 +44,7 @@ kernel, not the telegraf plugin. # exclude_mounts = [] ## List of operations to include or exclude from collecting. This applies - ## only when fullstat=true. Symantics are similar to {include,exclude}_mounts: + ## only when fullstat=true. Semantics are similar to {include,exclude}_mounts: ## the default is to collect everything; when include_operations is set, only ## those OPs are collected; when exclude_operations is set, all are collected ## except those listed. If include and exclude are set, the OP is excluded. @@ -36,7 +52,7 @@ kernel, not the telegraf plugin. ## NFSv3 and NFSv4 have different lists. While it is not possible to ## have different include/exclude lists for NFSv3/4, unused elements ## in the list should be okay. It is possible to have different lists - ## for different mountpoints: use mulitple [[input.nfsclient]] stanzas, + ## for different mountpoints: use multiple [[input.nfsclient]] stanzas, ## with their own lists. See "include_mounts" above, and be careful of ## duplicate metrics. # include_operations = [] @@ -45,52 +61,73 @@ kernel, not the telegraf plugin. ### Configuration Options -- __fullstat__ bool: Collect per-operation type metrics. Defaults to false. -- __include_mounts__ list(string): gather metrics for only these mounts. Default is to watch all mounts. -- __exclude_mounts__ list(string): gather metrics for all mounts, except those listed in this option. Excludes take precedence over includes. -- __include_operations__ list(string): List of specific NFS operations to track. See /proc/self/mountstats (the "per-op statistics" section) for complete lists of valid options for NFSv3 and NFSV4. The default is to gather all metrics, but this is almost certainly _not_ what you want (there are 22 operations for NFSv3, and well over 50 for NFSv4). A suggested 'minimal' list of operations to collect for basic usage: `['READ','WRITE','ACCESS','GETATTR','READDIR','LOOKUP','LOOKUP']` -- __exclude_operations__ list(string): Gather all metrics, except those listed. Excludes take precedence over includes. - -_N.B._ the `include_mounts` and `exclude_mounts` arguments are both applied to -the local mount location (e.g. /mnt/NFS), not the server export -(e.g. nfsserver:/vol/NFS). Go regexp patterns can be used in either. - -### References - -1. [nfsiostat](http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=summary) -2. [net/sunrpc/stats.c - Linux source code](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/sunrpc/stats.c) -3. [What is in /proc/self/mountstats for NFS mounts: an introduction](https://utcc.utoronto.ca/~cks/space/blog/linux/NFSMountstatsIndex) -4. [The xprt: data for NFS mounts in /proc/self/mountstats](https://utcc.utoronto.ca/~cks/space/blog/linux/NFSMountstatsXprt) +- `fullstat`: Collect per-operation type metrics. Defaults to false. +- `include_mounts`: gather metrics for only these mounts. Default is to watch + all mounts. +- `exclude_mounts`: gather metrics for all mounts, except those listed in this + option. Excludes take precedence over includes. +- `include_operations`: List of specific NFS operations to track. See + `/proc/self/mountstats` (the "per-op statistics" section) for a complete + lists of valid options for NFSv3 and NFSV4. The default is to gather all + metrics, but this is almost certainly _not_ what you want (there are + 22 operations for NFSv3, and well over 50 for NFSv4). A suggested 'minimal' + list of operations to collect for basic usage: + `['READ','WRITE','ACCESS','GETATTR','READDIR','LOOKUP','LOOKUP']` +- `exclude_operations`: Gather all metrics, except those listed. Excludes take + precedence over includes. + +> [!NOTE] +> The `include_mounts` and `exclude_mounts` arguments are both applied to the +> local mount location (e.g. /mnt/NFS), not the server export (e.g. +> nfsserver:/vol/NFS). Go regexp patterns can be used in either. + +## Location of mountstats + +If you have mounted the `/proc` file system in a container, to tell this plugin +where to find the new location, set the `MOUNT_PROC` environment variable. For +example, in a Docker compose file, if `/proc` is mounted to `/host/proc`, then +use: + +```yaml +MOUNT_PROC: /host/proc/self/mountstats +``` ## Metrics -### Fields +Fields: - nfsstat - - bytes (integer, bytes) - The total number of bytes exchanged doing this operation. This is bytes sent _and_ received, including overhead _and_ payload. (bytes = OP_bytes_sent + OP_bytes_recv. See nfs_ops below) + - bytes (integer, bytes) - The total number of bytes exchanged doing this + operation. This is bytes sent _and_ received, including overhead _and_ + payload (`bytes = OP_bytes_sent + OP_bytes_recv`). See `nfs_ops` below. - ops (integer, count) - The number of operations of this type executed. - - retrans (integer, count) - The number of times an operation had to be retried (retrans = OP_trans - OP_ops. See nfs_ops below) - - exe (integer, miliseconds) - The number of miliseconds it took to process the operations. - - rtt (integer, miliseconds) - The total round-trip time for all operations. - - rtt_per_op (float, miliseconds) - The average round-trip time per operation. + - retrans (integer, count) - The number of times an operation had to be + (`retried retrans = OP_trans - OP_ops`). See `nfs_ops` below. + - exe (integer, milliseconds) - The number of milliseconds it took to process + the operations. + - rtt (integer, milliseconds) - The total round-trip time for all operations. + - rtt_per_op (float, milliseconds) - The average round-trip time per operation. In addition enabling `fullstat` will make many more metrics available. -### Tags +Tags: - All measurements have the following tags: - mountpoint - The local mountpoint, for instance: "/var/www" - serverexport - The full server export, for instance: "nfsserver.example.org:/export" - Measurements nfsstat and nfs_ops will also include: - - operation - the NFS operation in question. `READ` or `WRITE` for nfsstat, but potentially one of ~20 or ~50, depending on NFS version. A complete list of operations supported is visible in `/proc/self/mountstats`. + - operation - the NFS operation in question. `READ` or `WRITE` for nfsstat, + but potentially one of ~20 or ~50, depending on NFS version. A + complete list of operations supported is visible in + `/proc/self/mountstats`. -## Additional metrics +### Additional metrics When `fullstat` is true, additional measurements are collected. Tags are the same as above. -### NFS Operations +NFS Operations: Most descriptions come from [Reference][ref] and `nfs_iostat.h`. Field order and names are the same as in `/proc/self/mountstats` and the Kernel source. @@ -111,61 +148,104 @@ as it changes occasionally. - nfs_events (Per-event metrics) - fields: - - inoderevalidates (int, count): How many times cached inode attributes have to be re-validated from the server. - - dentryrevalidates (int, count): How many times cached dentry nodes have to be re-validated. - - datainvalidates (int, count): How many times an inode had its cached data thrown out. - - attrinvalidates (int, count): How many times an inode has had cached inode attributes invalidated. - - vfsopen (int, count): How many times files or directories have been `open()`'d. - - vfslookup (int, count): How many name lookups in directories there have been. - - vfsaccess (int, count): Number of calls to `access()`. (formerly called "vfspermission") - - vfsupdatepage (int, count): Count of updates (and potential writes) to pages. - - vfsreadpage (int, count): Number of pages read. - - vfsreadpages (int, count): Count of how many times a _group_ of pages was read (possibly via `mmap()`?). - - vfswritepage (int, count): Number of pages written. - - vfswritepages (int, count): Count of how many times a _group_ of pages was written (possibly via `mmap()`?) - - vfsgetdents (int, count): Count of directory entry reads with getdents(). These reads can be served from cache and don't necessarily imply actual NFS requests. (formerly called "vfsreaddir") - - vfssetattr (int, count): How many times we've set attributes on inodes. - - vfsflush (int, count): Count of times pending writes have been forcibly flushed to the server. - - vfsfsync (int, count): Count of calls to `fsync()` on directories and files. - - vfslock (int, count): Number of times a lock was attempted on a file (regardless of success or not). - - vfsrelease (int, count): Number of calls to `close()`. - - congestionwait (int, count): Believe unused by the Linux kernel, but it is part of the NFS spec. - - setattrtrunc (int, count): How many times files have had their size truncated. - - extendwrite (int, count): How many times a file has been grown because you're writing beyond the existing end of the file. - - sillyrenames (int, count): Number of times an in-use file was removed (thus creating a temporary ".nfsXXXXXX" file) - - shortreads (int, count): Number of times the NFS server returned less data than requested. - - shortwrites (int, count): Number of times NFS server reports it wrote less data than requested. - - delay (int, count): Occurances of EJUKEBOX ("Jukebox Delay", probably unused) - - pnfsreads (int, count): Count of NFS v4.1+ pNFS reads. - - pnfswrites (int, count): Count of NFS v4.1+ pNFS writes. + - inoderevalidates (int, count): How many times cached inode attributes have + to be re-validated from the server. + - dentryrevalidates (int, count): How many times cached dentry nodes have to + be re-validated. + - datainvalidates (int, count): How many times an inode had its cached + data thrown out. + - attrinvalidates (int, count): How many times an inode has had cached + inode attributes invalidated. + - vfsopen (int, count): How many times files or directories have + been `open()`'d. + - vfslookup (int, count): How many name lookups in directories there + have been. + - vfsaccess (int, count): Number of calls to `access()`. (formerly + called "vfspermission") + - vfsupdatepage (int, count): Count of updates (and potential writes) to + pages. + - vfsreadpage (int, count): Number of pages read. + - vfsreadpages (int, count): Count of how many times a _group_ of pages + was read (possibly via `mmap()`?). + - vfswritepage (int, count): Number of pages written. + - vfswritepages (int, count): Count of how many times a _group_ of pages + was written (possibly via `mmap()`?) + - vfsgetdents (int, count): Count of directory entry reads with + getdents(). These reads can be served from + cache and don't necessarily imply actual + NFS requests. (formerly called "vfsreaddir") + - vfssetattr (int, count): How many times we've set attributes on inodes. + - vfsflush (int, count): Count of times pending writes have been + forcibly flushed to the server. + - vfsfsync (int, count): Count of calls to `fsync()` on directories + and files. + - vfslock (int, count): Number of times a lock was attempted on a + file (regardless of success or not). + - vfsrelease (int, count): Number of calls to `close()`. + - congestionwait (int, count): Believe unused by the Linux kernel, but it + is part of the NFS spec. + - setattrtrunc (int, count): How many times files have had their size truncated. + - extendwrite (int, count): How many times a file has been grown + because you're writing beyond the existing + end of the file. + - sillyrenames (int, count): Number of times an in-use file was removed + (thus creating a temporary ".nfsXXXXXX" file) + - shortreads (int, count): Number of times the NFS server returned + less data than requested. + - shortwrites (int, count): Number of times NFS server reports it + wrote less data than requested. + - delay (int, count): Occurrences of EJUKEBOX ("Jukebox Delay", + probably unused) + - pnfsreads (int, count): Count of NFS v4.1+ pNFS reads. + - pnfswrites (int, count): Count of NFS v4.1+ pNFS writes. - nfs_xprt_tcp - fields: - - bind_count (int, count): Number of_completely new_ mounts to this server (sometimes 0?) - - connect_count (int, count): How many times the client has connected to the server in question - - connect_time (int, jiffies): How long the NFS client has spent waiting for its connection(s) to the server to be established. - - idle_time (int, seconds): How long (in seconds) since the NFS mount saw any RPC traffic. - - rpcsends (int, count): How many RPC requests this mount has sent to the server. - - rpcreceives (int, count): How many RPC replies this mount has received from the server. - - badxids (int, count): Count of XIDs sent by the server that the client doesn't know about. - - inflightsends (int, count): Number of outstanding requests; always >1. (See reference #4 for comment on this field) - - backlogutil (int, count): Cumulative backlog count + - bind_count (int, count): Number of_completely new_ mounts to this + server (sometimes 0?) + - connect_count (int, count): How many times the client has connected to + the server in question + - connect_time (int, jiffies): How long the NFS client has spent waiting for + its connection(s) to the server to be established. + - idle_time (int, seconds): How long (in seconds) since the NFS mount saw + any RPC traffic. + - rpcsends (int, count): How many RPC requests this mount has sent to + the server. + - rpcreceives (int, count): How many RPC replies this mount has received + from the server. + - badxids (int, count): Count of XIDs sent by the server that the + client doesn't know about. + - inflightsends (int, count): Number of outstanding requests; always >1. + (See reference #4 for comment on this field) + - backlogutil (int, count): Cumulative backlog count - nfs_xprt_udp - fields: - [same as nfs_xprt_tcp, except for connect_count, connect_time, and idle_time] - nfs_ops - - fields (In all cases, the `operations` tag is set to the uppercase name of the NFS operation, _e.g._ "READ", "FSINFO", _etc_. See /proc/self/mountstats for a full list): - - ops (int, count): Total operations of this type. - - trans (int, count): Total transmissions of this type, including retransmissions: `OP_ops - OP_trans = total_retransmissions` (lower is better). - - timeouts (int, count): Number of major timeouts. - - bytes_sent (int, count): Bytes sent, including headers (should also be close to on-wire size). - - bytes_recv (int, count): Bytes received, including headers (should be close to on-wire size). - - queue_time (int, milliseconds): Cumulative time a request waited in the queue before sending this OP type. - - response_time (int, milliseconds): Cumulative time waiting for a response for this OP type. - - total_time (int, milliseconds): Cumulative time a request waited in the queue before sending. - - errors (int, count): Total number operations that complete with tk_status < 0 (usually errors). This is a new field, present in kernel >=5.3, mountstats version 1.1 + - fields with the `operations` tag being set to the uppercase name of the NFS + operation in all cases , _e.g._ "READ", "FSINFO", _etc_. See + `/proc/self/mountstats` for a full list: + - ops (int, count): Total operations of this type. + - trans (int, count): Total transmissions of this type, + including retransmissions (lower is better): + `OP_ops - OP_trans = total_retransmissions`. + - timeouts (int, count): Number of major timeouts. + - bytes_sent (int, count): Bytes sent, including headers (should + also be close to on-wire size). + - bytes_recv (int, count): Bytes received, including headers + (should be close to on-wire size). + - queue_time (int, milliseconds): Cumulative time a request waited in the + queue before sending this OP type. + - response_time (int, milliseconds): Cumulative time waiting for a response + for this OP type. + - total_time (int, milliseconds): Cumulative time a request waited in the + queue before sending. + - errors (int, count): Total number operations that complete + with tk_status < 0 (usually errors). + This is a new field, present in + kernel >=5.3, mountstats version 1.1 [ref]: https://utcc.utoronto.ca/~cks/space/blog/linux/NFSMountstatsIndex @@ -173,7 +253,7 @@ as it changes occasionally. For basic metrics showing server-wise read and write data. -```shell +```text nfsstat,mountpoint=/NFS,operation=READ,serverexport=1.2.3.4:/storage/NFS ops=600i,retrans=1i,bytes=1207i,rtt=606i,exe=607i 1612651512000000000 nfsstat,mountpoint=/NFS,operation=WRITE,serverexport=1.2.3.4:/storage/NFS bytes=1407i,rtt=706i,exe=707i,ops=700i,retrans=1i 1612651512000000000 @@ -185,7 +265,7 @@ Additionally, per-OP metrics are collected, with examples for READ, LOOKUP, and NULL shown. Please refer to `/proc/self/mountstats` for a list of supported NFS operations, as it changes as it changes periodically. -```shell +```text nfs_bytes,mountpoint=/home,serverexport=nfs01:/vol/home directreadbytes=0i,directwritebytes=0i,normalreadbytes=42648757667i,normalwritebytes=0i,readpages=10404603i,serverreadbytes=42617098139i,serverwritebytes=0i,writepages=0i 1608787697000000000 nfs_events,mountpoint=/home,serverexport=nfs01:/vol/home attrinvalidates=116i,congestionwait=0i,datainvalidates=65i,delay=0i,dentryrevalidates=5911243i,extendwrite=0i,inoderevalidates=200378i,pnfsreads=0i,pnfswrites=0i,setattrtrunc=0i,shortreads=0i,shortwrites=0i,sillyrenames=0i,vfsaccess=7203852i,vfsflush=117405i,vfsfsync=0i,vfsgetdents=3368i,vfslock=0i,vfslookup=740i,vfsopen=157281i,vfsreadpage=16i,vfsreadpages=86874i,vfsrelease=155526i,vfssetattr=0i,vfsupdatepage=0i,vfswritepage=0i,vfswritepages=215514i 1608787697000000000 nfs_xprt_tcp,mountpoint=/home,serverexport=nfs01:/vol/home backlogutil=0i,badxids=0i,bind_count=1i,connect_count=1i,connect_time=0i,idle_time=0i,inflightsends=15659826i,rpcreceives=2173896i,rpcsends=2173896i 1608787697000000000 diff --git a/src/writeData/components/telegrafPlugins/nginx.md b/src/writeData/components/telegrafPlugins/nginx.md index bfdbd9d42f..dc94d896dd 100644 --- a/src/writeData/components/telegrafPlugins/nginx.md +++ b/src/writeData/components/telegrafPlugins/nginx.md @@ -1,10 +1,24 @@ # Nginx Input Plugin -This plugin gathers basic status from the open source web server Nginx. Nginx -Plus is a commercial version. For more information about the differences between -Nginx (F/OSS) and Nginx Plus, see the Nginx [documentation][diff-doc]. +This plugin gathers metrics from the open source [Nginx web server][nginx]. +Nginx Plus is a commercial version. For more information about differences +between Nginx (F/OSS) and Nginx Plus, see the Nginx [documentation][diff_doc]. -[diff-doc]: https://www.nginx.com/blog/whats-difference-nginx-foss-nginx-plus/ +⭐ Telegraf v0.1.5 +🏷️ server, web +💻 all + +[nginx]: https://www.nginx.com +[diff_doc]: https://www.nginx.com/blog/whats-difference-nginx-foss-nginx-plus/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -25,7 +39,7 @@ Nginx (F/OSS) and Nginx Plus, see the Nginx [documentation][diff-doc]. response_timeout = "5s" ``` -## Measurements & Fields +## Metrics - Measurement - accepts @@ -60,7 +74,6 @@ When run with: It produces: -```shell -* Plugin: nginx, Collection 1 -> nginx,port=80,server=localhost accepts=605i,active=2i,handled=605i,reading=0i,requests=12132i,waiting=1i,writing=1i 1456690994701784331 +```text +nginx,port=80,server=localhost accepts=605i,active=2i,handled=605i,reading=0i,requests=12132i,waiting=1i,writing=1i 1456690994701784331 ``` diff --git a/src/writeData/components/telegrafPlugins/nginx_plus.md b/src/writeData/components/telegrafPlugins/nginx_plus.md index d0584fddc6..b4f05e5e6c 100644 --- a/src/writeData/components/telegrafPlugins/nginx_plus.md +++ b/src/writeData/components/telegrafPlugins/nginx_plus.md @@ -1,15 +1,30 @@ # Nginx Plus Input Plugin -Nginx Plus is a commercial version of the open source web server Nginx. The use -this plugin you will need a license. For more information about the differences -between Nginx (F/OSS) and Nginx Plus, see the Nginx [documentation][diff-doc]. +This plugin gathers metrics from the commercial +[Nginx Plus web server][nginx_plus] via the [status module][status_module]. -Structures for Nginx Plus have been built based on history of [status module -documentation][status-mod]. +> [!NOTE] +> Using this plugin requires a license. -[diff-doc]: https://www.nginx.com/blog/whats-difference-nginx-foss-nginx-plus/ +For more information about differences between Nginx (F/OSS) and Nginx Plus, see +the Nginx [documentation][diff_doc]. -[status-mod]: http://nginx.org/en/docs/http/ngx_http_status_module.html +⭐ Telegraf v1.5.0 +🏷️ server, web +💻 all + +[nginx_plus]: https://www.f5.com/products/nginx/nginx-plus +[status_module]: http://nginx.org/en/docs/http/ngx_http_status_module.html +[diff_doc]: https://www.nginx.com/blog/whats-difference-nginx-foss-nginx-plus/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration diff --git a/src/writeData/components/telegrafPlugins/nginx_plus_api.md b/src/writeData/components/telegrafPlugins/nginx_plus_api.md index c05dc25238..97be3d03db 100644 --- a/src/writeData/components/telegrafPlugins/nginx_plus_api.md +++ b/src/writeData/components/telegrafPlugins/nginx_plus_api.md @@ -1,10 +1,30 @@ # Nginx Plus API Input Plugin -Nginx Plus is a commercial version of the open source web server Nginx. The use -this plugin you will need a license. For more information about the differences -between Nginx (F/OSS) and Nginx Plus, see the Nginx [documentation][diff-doc]. +This plugin gathers metrics from the commercial +[Nginx Plus web server][nginx_plus] via the [REST API][api]. -[diff-doc]: https://www.nginx.com/blog/whats-difference-nginx-foss-nginx-plus/ +> [!NOTE] +> Using this plugin requires a license. + +For more information about differences between Nginx (F/OSS) and Nginx Plus, see +the Nginx [documentation][diff_doc]. + +⭐ Telegraf v1.9.0 +🏷️ server, web +💻 all + +[nginx_plus]: https://www.f5.com/products/nginx/nginx-plus +[api]: https://demo.nginx.com/swagger-ui/ +[diff_doc]: https://www.nginx.com/blog/whats-difference-nginx-foss-nginx-plus/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -213,7 +233,9 @@ between Nginx (F/OSS) and Nginx Plus, see the Nginx [documentation][diff-doc]. - source - port -- nginx_plus_api_http_server_zones, nginx_plus_api_upstream_server_zones, nginx_plus_api_http_location_zones, nginx_plus_api_resolver_zones, nginx_plus_api_slabs_pages +- nginx_plus_api_http_server_zones, nginx_plus_api_upstream_server_zones, + nginx_plus_api_http_location_zones, nginx_plus_api_resolver_zones, + nginx_plus_api_slabs_pages - source - port - zone @@ -259,48 +281,48 @@ When run with: It produces: ```text -> nginx_plus_api_processes,port=80,source=demo.nginx.com respawned=0i 1570696321000000000 -> nginx_plus_api_connections,port=80,source=demo.nginx.com accepted=68998606i,active=7i,dropped=0i,idle=57i 1570696322000000000 -> nginx_plus_api_slabs_pages,port=80,source=demo.nginx.com,zone=hg.nginx.org used=1i,free=503i 1570696322000000000 -> nginx_plus_api_slabs_pages,port=80,source=demo.nginx.com,zone=trac.nginx.org used=3i,free=500i 1570696322000000000 -> nginx_plus_api_slabs_slots,port=80,source=demo.nginx.com,zone=hg.nginx.org,slot=8 used=1i,free=503i,reqs=10i,fails=0i 1570696322000000000 -> nginx_plus_api_slabs_slots,port=80,source=demo.nginx.com,zone=hg.nginx.org,slot=16 used=3i,free=500i,reqs=1024i,fails=0i 1570696322000000000 -> nginx_plus_api_slabs_slots,port=80,source=demo.nginx.com,zone=trac.nginx.org,slot=8 used=1i,free=503i,reqs=10i,fails=0i 1570696322000000000 -> nginx_plus_api_slabs_slots,port=80,source=demo.nginx.com,zone=trac.nginx.org,slot=16 used=0i,free=1520i,reqs=0i,fails=1i 1570696322000000000 -> nginx_plus_api_ssl,port=80,source=demo.nginx.com handshakes=9398978i,handshakes_failed=289353i,session_reuses=1004389i 1570696322000000000 -> nginx_plus_api_http_requests,port=80,source=demo.nginx.com current=51i,total=264649353i 1570696322000000000 -> nginx_plus_api_http_server_zones,port=80,source=demo.nginx.com,zone=hg.nginx.org discarded=5i,processing=0i,received=24123604i,requests=60138i,responses_1xx=0i,responses_2xx=59353i,responses_3xx=531i,responses_4xx=249i,responses_5xx=0i,responses_total=60133i,sent=830165221i 1570696322000000000 -> nginx_plus_api_http_server_zones,port=80,source=demo.nginx.com,zone=trac.nginx.org discarded=250i,processing=0i,received=2184618i,requests=12404i,responses_1xx=0i,responses_2xx=8579i,responses_3xx=2513i,responses_4xx=583i,responses_5xx=479i,responses_total=12154i,sent=139384159i 1570696322000000000 -> nginx_plus_api_http_server_zones,port=80,source=demo.nginx.com,zone=lxr.nginx.org discarded=1i,processing=0i,received=1011701i,requests=4523i,responses_1xx=0i,responses_2xx=4332i,responses_3xx=28i,responses_4xx=39i,responses_5xx=123i,responses_total=4522i,sent=72631354i 1570696322000000000 -> nginx_plus_api_http_upstreams,port=80,source=demo.nginx.com,upstream=trac-backend keepalive=0i,zombies=0i 1570696322000000000 -> nginx_plus_api_http_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=trac-backend,upstream_address=10.0.0.1:8080 active=0i,backup=false,downtime=0i,fails=0i,header_time=235i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=88581178i,requests=3180i,response_time=235i,responses_1xx=0i,responses_2xx=3168i,responses_3xx=5i,responses_4xx=6i,responses_5xx=0i,responses_total=3179i,sent=1321720i,state="up",unavail=0i,weight=1i 1570696322000000000 -> nginx_plus_api_http_upstream_peers,id=1,port=80,source=demo.nginx.com,upstream=trac-backend,upstream_address=10.0.0.1:8081 active=0i,backup=true,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,requests=0i,responses_1xx=0i,responses_2xx=0i,responses_3xx=0i,responses_4xx=0i,responses_5xx=0i,responses_total=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696322000000000 -> nginx_plus_api_http_upstreams,port=80,source=demo.nginx.com,upstream=hg-backend keepalive=0i,zombies=0i 1570696322000000000 -> nginx_plus_api_http_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=hg-backend,upstream_address=10.0.0.1:8088 active=0i,backup=false,downtime=0i,fails=0i,header_time=22i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=909402572i,requests=18514i,response_time=88i,responses_1xx=0i,responses_2xx=17799i,responses_3xx=531i,responses_4xx=179i,responses_5xx=0i,responses_total=18509i,sent=10608107i,state="up",unavail=0i,weight=5i 1570696322000000000 -> nginx_plus_api_http_upstream_peers,id=1,port=80,source=demo.nginx.com,upstream=hg-backend,upstream_address=10.0.0.1:8089 active=0i,backup=true,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,requests=0i,responses_1xx=0i,responses_2xx=0i,responses_3xx=0i,responses_4xx=0i,responses_5xx=0i,responses_total=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696322000000000 -> nginx_plus_api_http_upstreams,port=80,source=demo.nginx.com,upstream=lxr-backend keepalive=0i,zombies=0i 1570696322000000000 -> nginx_plus_api_http_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=lxr-backend,upstream_address=unix:/tmp/cgi.sock active=0i,backup=false,downtime=0i,fails=123i,header_time=91i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=71782888i,requests=4354i,response_time=91i,responses_1xx=0i,responses_2xx=4230i,responses_3xx=0i,responses_4xx=0i,responses_5xx=0i,responses_total=4230i,sent=3088656i,state="up",unavail=0i,weight=1i 1570696322000000000 -> nginx_plus_api_http_upstream_peers,id=1,port=80,source=demo.nginx.com,upstream=lxr-backend,upstream_address=unix:/tmp/cgib.sock active=0i,backup=true,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,max_conns=42i,received=0i,requests=0i,responses_1xx=0i,responses_2xx=0i,responses_3xx=0i,responses_4xx=0i,responses_5xx=0i,responses_total=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696322000000000 -> nginx_plus_api_http_upstreams,port=80,source=demo.nginx.com,upstream=demo-backend keepalive=0i,zombies=0i 1570696322000000000 -> nginx_plus_api_http_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=demo-backend,upstream_address=10.0.0.2:15431 active=0i,backup=false,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,requests=0i,responses_1xx=0i,responses_2xx=0i,responses_3xx=0i,responses_4xx=0i,responses_5xx=0i,responses_total=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696322000000000 -> nginx_plus_api_http_caches,cache=http_cache,port=80,source=demo.nginx.com bypass_bytes=0i,bypass_bytes_written=0i,bypass_responses=0i,bypass_responses_written=0i,cold=false,expired_bytes=381518640i,expired_bytes_written=363449785i,expired_responses=42114i,expired_responses_written=39954i,hit_bytes=6321885979i,hit_responses=596730i,max_size=536870912i,miss_bytes=48512185i,miss_bytes_written=155600i,miss_responses=6052i,miss_responses_written=136i,revalidated_bytes=0i,revalidated_responses=0i,size=765952i,stale_bytes=0i,stale_responses=0i,updating_bytes=0i,updating_responses=0i 1570696323000000000 -> nginx_plus_api_stream_server_zones,port=80,source=demo.nginx.com,zone=postgresql_loadbalancer connections=0i,processing=0i,received=0i,sent=0i 1570696323000000000 -> nginx_plus_api_stream_server_zones,port=80,source=demo.nginx.com,zone=dns_loadbalancer connections=0i,processing=0i,received=0i,sent=0i 1570696323000000000 -> nginx_plus_api_stream_upstreams,port=80,source=demo.nginx.com,upstream=postgresql_backends zombies=0i 1570696323000000000 -> nginx_plus_api_stream_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=postgresql_backends,upstream_address=10.0.0.2:15432 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696323000000000 -> nginx_plus_api_stream_upstream_peers,id=1,port=80,source=demo.nginx.com,upstream=postgresql_backends,upstream_address=10.0.0.2:15433 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696323000000000 -> nginx_plus_api_stream_upstream_peers,id=2,port=80,source=demo.nginx.com,upstream=postgresql_backends,upstream_address=10.0.0.2:15434 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696323000000000 -> nginx_plus_api_stream_upstream_peers,id=3,port=80,source=demo.nginx.com,upstream=postgresql_backends,upstream_address=10.0.0.2:15435 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="down",unavail=0i,weight=1i 1570696323000000000 -> nginx_plus_api_stream_upstreams,port=80,source=demo.nginx.com,upstream=dns_udp_backends zombies=0i 1570696323000000000 -> nginx_plus_api_stream_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=dns_udp_backends,upstream_address=10.0.0.5:53 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="up",unavail=0i,weight=2i 1570696323000000000 -> nginx_plus_api_stream_upstream_peers,id=1,port=80,source=demo.nginx.com,upstream=dns_udp_backends,upstream_address=10.0.0.2:53 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696323000000000 -> nginx_plus_api_stream_upstream_peers,id=2,port=80,source=demo.nginx.com,upstream=dns_udp_backends,upstream_address=10.0.0.7:53 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="down",unavail=0i,weight=1i 1570696323000000000 -> nginx_plus_api_stream_upstreams,port=80,source=demo.nginx.com,upstream=unused_tcp_backends zombies=0i 1570696323000000000 -> nginx_plus_api_http_location_zones,port=80,source=demo.nginx.com,zone=swagger discarded=0i,received=1622i,requests=8i,responses_1xx=0i,responses_2xx=7i,responses_3xx=0i,responses_4xx=1i,responses_5xx=0i,responses_total=8i,sent=638333i 1570696323000000000 -> nginx_plus_api_http_location_zones,port=80,source=demo.nginx.com,zone=api-calls discarded=64i,received=337530181i,requests=1726513i,responses_1xx=0i,responses_2xx=1726428i,responses_3xx=0i,responses_4xx=21i,responses_5xx=0i,responses_total=1726449i,sent=1902577668i 1570696323000000000 -> nginx_plus_api_resolver_zones,port=80,source=demo.nginx.com,zone=resolver1 addr=0i,formerr=0i,name=0i,noerror=0i,notimp=0i,nxdomain=0i,refused=0i,servfail=0i,srv=0i,timedout=0i,unknown=0i 1570696324000000000 -> nginx_plus_api_http_limit_reqs,port=80,source=demo.nginx.com,limit=limit_1 delayed=0i,delayed_dry_run=0i,passed=6i,rejected=9i,rejected_dry_run=0i 1570696322000000000 -> nginx_plus_api_http_limit_reqs,port=80,source=demo.nginx.com,limit=limit_2 delayed=13i,delayed_dry_run=3i,passed=6i,rejected=1i,rejected_dry_run=31i 1570696322000000000 +nginx_plus_api_processes,port=80,source=demo.nginx.com respawned=0i 1570696321000000000 +nginx_plus_api_connections,port=80,source=demo.nginx.com accepted=68998606i,active=7i,dropped=0i,idle=57i 1570696322000000000 +nginx_plus_api_slabs_pages,port=80,source=demo.nginx.com,zone=hg.nginx.org used=1i,free=503i 1570696322000000000 +nginx_plus_api_slabs_pages,port=80,source=demo.nginx.com,zone=trac.nginx.org used=3i,free=500i 1570696322000000000 +nginx_plus_api_slabs_slots,port=80,source=demo.nginx.com,zone=hg.nginx.org,slot=8 used=1i,free=503i,reqs=10i,fails=0i 1570696322000000000 +nginx_plus_api_slabs_slots,port=80,source=demo.nginx.com,zone=hg.nginx.org,slot=16 used=3i,free=500i,reqs=1024i,fails=0i 1570696322000000000 +nginx_plus_api_slabs_slots,port=80,source=demo.nginx.com,zone=trac.nginx.org,slot=8 used=1i,free=503i,reqs=10i,fails=0i 1570696322000000000 +nginx_plus_api_slabs_slots,port=80,source=demo.nginx.com,zone=trac.nginx.org,slot=16 used=0i,free=1520i,reqs=0i,fails=1i 1570696322000000000 +nginx_plus_api_ssl,port=80,source=demo.nginx.com handshakes=9398978i,handshakes_failed=289353i,session_reuses=1004389i 1570696322000000000 +nginx_plus_api_http_requests,port=80,source=demo.nginx.com current=51i,total=264649353i 1570696322000000000 +nginx_plus_api_http_server_zones,port=80,source=demo.nginx.com,zone=hg.nginx.org discarded=5i,processing=0i,received=24123604i,requests=60138i,responses_1xx=0i,responses_2xx=59353i,responses_3xx=531i,responses_4xx=249i,responses_5xx=0i,responses_total=60133i,sent=830165221i 1570696322000000000 +nginx_plus_api_http_server_zones,port=80,source=demo.nginx.com,zone=trac.nginx.org discarded=250i,processing=0i,received=2184618i,requests=12404i,responses_1xx=0i,responses_2xx=8579i,responses_3xx=2513i,responses_4xx=583i,responses_5xx=479i,responses_total=12154i,sent=139384159i 1570696322000000000 +nginx_plus_api_http_server_zones,port=80,source=demo.nginx.com,zone=lxr.nginx.org discarded=1i,processing=0i,received=1011701i,requests=4523i,responses_1xx=0i,responses_2xx=4332i,responses_3xx=28i,responses_4xx=39i,responses_5xx=123i,responses_total=4522i,sent=72631354i 1570696322000000000 +nginx_plus_api_http_upstreams,port=80,source=demo.nginx.com,upstream=trac-backend keepalive=0i,zombies=0i 1570696322000000000 +nginx_plus_api_http_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=trac-backend,upstream_address=10.0.0.1:8080 active=0i,backup=false,downtime=0i,fails=0i,header_time=235i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=88581178i,requests=3180i,response_time=235i,responses_1xx=0i,responses_2xx=3168i,responses_3xx=5i,responses_4xx=6i,responses_5xx=0i,responses_total=3179i,sent=1321720i,state="up",unavail=0i,weight=1i 1570696322000000000 +nginx_plus_api_http_upstream_peers,id=1,port=80,source=demo.nginx.com,upstream=trac-backend,upstream_address=10.0.0.1:8081 active=0i,backup=true,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,requests=0i,responses_1xx=0i,responses_2xx=0i,responses_3xx=0i,responses_4xx=0i,responses_5xx=0i,responses_total=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696322000000000 +nginx_plus_api_http_upstreams,port=80,source=demo.nginx.com,upstream=hg-backend keepalive=0i,zombies=0i 1570696322000000000 +nginx_plus_api_http_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=hg-backend,upstream_address=10.0.0.1:8088 active=0i,backup=false,downtime=0i,fails=0i,header_time=22i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=909402572i,requests=18514i,response_time=88i,responses_1xx=0i,responses_2xx=17799i,responses_3xx=531i,responses_4xx=179i,responses_5xx=0i,responses_total=18509i,sent=10608107i,state="up",unavail=0i,weight=5i 1570696322000000000 +nginx_plus_api_http_upstream_peers,id=1,port=80,source=demo.nginx.com,upstream=hg-backend,upstream_address=10.0.0.1:8089 active=0i,backup=true,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,requests=0i,responses_1xx=0i,responses_2xx=0i,responses_3xx=0i,responses_4xx=0i,responses_5xx=0i,responses_total=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696322000000000 +nginx_plus_api_http_upstreams,port=80,source=demo.nginx.com,upstream=lxr-backend keepalive=0i,zombies=0i 1570696322000000000 +nginx_plus_api_http_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=lxr-backend,upstream_address=unix:/tmp/cgi.sock active=0i,backup=false,downtime=0i,fails=123i,header_time=91i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=71782888i,requests=4354i,response_time=91i,responses_1xx=0i,responses_2xx=4230i,responses_3xx=0i,responses_4xx=0i,responses_5xx=0i,responses_total=4230i,sent=3088656i,state="up",unavail=0i,weight=1i 1570696322000000000 +nginx_plus_api_http_upstream_peers,id=1,port=80,source=demo.nginx.com,upstream=lxr-backend,upstream_address=unix:/tmp/cgib.sock active=0i,backup=true,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,max_conns=42i,received=0i,requests=0i,responses_1xx=0i,responses_2xx=0i,responses_3xx=0i,responses_4xx=0i,responses_5xx=0i,responses_total=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696322000000000 +nginx_plus_api_http_upstreams,port=80,source=demo.nginx.com,upstream=demo-backend keepalive=0i,zombies=0i 1570696322000000000 +nginx_plus_api_http_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=demo-backend,upstream_address=10.0.0.2:15431 active=0i,backup=false,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,requests=0i,responses_1xx=0i,responses_2xx=0i,responses_3xx=0i,responses_4xx=0i,responses_5xx=0i,responses_total=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696322000000000 +nginx_plus_api_http_caches,cache=http_cache,port=80,source=demo.nginx.com bypass_bytes=0i,bypass_bytes_written=0i,bypass_responses=0i,bypass_responses_written=0i,cold=false,expired_bytes=381518640i,expired_bytes_written=363449785i,expired_responses=42114i,expired_responses_written=39954i,hit_bytes=6321885979i,hit_responses=596730i,max_size=536870912i,miss_bytes=48512185i,miss_bytes_written=155600i,miss_responses=6052i,miss_responses_written=136i,revalidated_bytes=0i,revalidated_responses=0i,size=765952i,stale_bytes=0i,stale_responses=0i,updating_bytes=0i,updating_responses=0i 1570696323000000000 +nginx_plus_api_stream_server_zones,port=80,source=demo.nginx.com,zone=postgresql_loadbalancer connections=0i,processing=0i,received=0i,sent=0i 1570696323000000000 +nginx_plus_api_stream_server_zones,port=80,source=demo.nginx.com,zone=dns_loadbalancer connections=0i,processing=0i,received=0i,sent=0i 1570696323000000000 +nginx_plus_api_stream_upstreams,port=80,source=demo.nginx.com,upstream=postgresql_backends zombies=0i 1570696323000000000 +nginx_plus_api_stream_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=postgresql_backends,upstream_address=10.0.0.2:15432 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696323000000000 +nginx_plus_api_stream_upstream_peers,id=1,port=80,source=demo.nginx.com,upstream=postgresql_backends,upstream_address=10.0.0.2:15433 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696323000000000 +nginx_plus_api_stream_upstream_peers,id=2,port=80,source=demo.nginx.com,upstream=postgresql_backends,upstream_address=10.0.0.2:15434 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696323000000000 +nginx_plus_api_stream_upstream_peers,id=3,port=80,source=demo.nginx.com,upstream=postgresql_backends,upstream_address=10.0.0.2:15435 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="down",unavail=0i,weight=1i 1570696323000000000 +nginx_plus_api_stream_upstreams,port=80,source=demo.nginx.com,upstream=dns_udp_backends zombies=0i 1570696323000000000 +nginx_plus_api_stream_upstream_peers,id=0,port=80,source=demo.nginx.com,upstream=dns_udp_backends,upstream_address=10.0.0.5:53 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="up",unavail=0i,weight=2i 1570696323000000000 +nginx_plus_api_stream_upstream_peers,id=1,port=80,source=demo.nginx.com,upstream=dns_udp_backends,upstream_address=10.0.0.2:53 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="up",unavail=0i,weight=1i 1570696323000000000 +nginx_plus_api_stream_upstream_peers,id=2,port=80,source=demo.nginx.com,upstream=dns_udp_backends,upstream_address=10.0.0.7:53 active=0i,backup=false,connections=0i,downtime=0i,fails=0i,healthchecks_checks=0i,healthchecks_fails=0i,healthchecks_unhealthy=0i,received=0i,sent=0i,state="down",unavail=0i,weight=1i 1570696323000000000 +nginx_plus_api_stream_upstreams,port=80,source=demo.nginx.com,upstream=unused_tcp_backends zombies=0i 1570696323000000000 +nginx_plus_api_http_location_zones,port=80,source=demo.nginx.com,zone=swagger discarded=0i,received=1622i,requests=8i,responses_1xx=0i,responses_2xx=7i,responses_3xx=0i,responses_4xx=1i,responses_5xx=0i,responses_total=8i,sent=638333i 1570696323000000000 +nginx_plus_api_http_location_zones,port=80,source=demo.nginx.com,zone=api-calls discarded=64i,received=337530181i,requests=1726513i,responses_1xx=0i,responses_2xx=1726428i,responses_3xx=0i,responses_4xx=21i,responses_5xx=0i,responses_total=1726449i,sent=1902577668i 1570696323000000000 +nginx_plus_api_resolver_zones,port=80,source=demo.nginx.com,zone=resolver1 addr=0i,formerr=0i,name=0i,noerror=0i,notimp=0i,nxdomain=0i,refused=0i,servfail=0i,srv=0i,timedout=0i,unknown=0i 1570696324000000000 +nginx_plus_api_http_limit_reqs,port=80,source=demo.nginx.com,limit=limit_1 delayed=0i,delayed_dry_run=0i,passed=6i,rejected=9i,rejected_dry_run=0i 1570696322000000000 +nginx_plus_api_http_limit_reqs,port=80,source=demo.nginx.com,limit=limit_2 delayed=13i,delayed_dry_run=3i,passed=6i,rejected=1i,rejected_dry_run=31i 1570696322000000000 ``` ### Reference material diff --git a/src/writeData/components/telegrafPlugins/nginx_sts.md b/src/writeData/components/telegrafPlugins/nginx_sts.md index a935da4637..4a205e666f 100644 --- a/src/writeData/components/telegrafPlugins/nginx_sts.md +++ b/src/writeData/components/telegrafPlugins/nginx_sts.md @@ -1,13 +1,28 @@ -# Nginx Stream STS Input Plugin +# Nginx Stream Server Traffic Input Plugin -This plugin gathers Nginx status using external virtual host traffic status -module - . This is an Nginx module -that provides access to stream host status information. It contains the current -status such as servers, upstreams, caches. This is similar to the live activity -monitoring of Nginx plus. For module configuration details please see its -[documentation](https://github.com/vozlt/nginx-module-sts#synopsis). +This plugin gathers metrics from the [Nginx web server][nginx] using the +[external stream server traffic status module][ssts_module]. This module provides +access to stream host status information containing the current status of +servers, upstreams and caches, similar to the live activity monitoring of +Nginx plus. For module configuration details please see the +[module documentation][module_doc]. -Telegraf minimum version: Telegraf 1.15.0 +⭐ Telegraf v1.15.0 +🏷️ server, web +💻 all + +[nginx]: https://www.nginx.com +[ssts_module]: https://github.com/vozlt/nginx-module-sts +[module_doc]: https://github.com/vozlt/nginx-module-sts#synopsis + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -109,7 +124,7 @@ Telegraf minimum version: Telegraf 1.15.0 ## Example Output -```shell +```text nginx_sts_upstream,host=localhost,port=80,source=127.0.0.1,upstream=backend_cluster,upstream_address=1.2.3.4:8080 upstream_connect_msec_counter=0i,out_bytes=0i,down=false,connects=0i,session_msec=0i,upstream_session_msec=0i,upstream_session_msec_counter=0i,upstream_connect_msec=0i,upstream_firstbyte_msec_counter=0i,response_3xx_count=0i,session_msec_counter=0i,weight=1i,max_fails=1i,backup=false,upstream_firstbyte_msec=0i,in_bytes=0i,response_1xx_count=0i,response_2xx_count=0i,response_4xx_count=0i,response_5xx_count=0i,fail_timeout=10i 1584699180000000000 nginx_sts_upstream,host=localhost,port=80,source=127.0.0.1,upstream=backend_cluster,upstream_address=9.8.7.6:8080 upstream_firstbyte_msec_counter=0i,response_2xx_count=0i,down=false,upstream_session_msec_counter=0i,out_bytes=0i,response_5xx_count=0i,weight=1i,max_fails=1i,fail_timeout=10i,connects=0i,session_msec_counter=0i,upstream_session_msec=0i,in_bytes=0i,response_1xx_count=0i,response_3xx_count=0i,response_4xx_count=0i,session_msec=0i,upstream_connect_msec=0i,upstream_connect_msec_counter=0i,upstream_firstbyte_msec=0i,backup=false 1584699180000000000 nginx_sts_server,host=localhost,port=80,source=127.0.0.1,zone=* response_2xx_count=0i,response_4xx_count=0i,response_5xx_count=0i,session_msec_counter=0i,in_bytes=0i,out_bytes=0i,session_msec=0i,response_1xx_count=0i,response_3xx_count=0i,connects=0i 1584699180000000000 diff --git a/src/writeData/components/telegrafPlugins/nginx_upstream_check.md b/src/writeData/components/telegrafPlugins/nginx_upstream_check.md index d2af042582..4bf6e1d1d9 100644 --- a/src/writeData/components/telegrafPlugins/nginx_upstream_check.md +++ b/src/writeData/components/telegrafPlugins/nginx_upstream_check.md @@ -1,16 +1,25 @@ # Nginx Upstream Check Input Plugin -Read the status output of the [nginx_upstream_check][1]. This module can -periodically check the servers in the Nginx's upstream with configured request -and interval to determine if the server is still available. If checks are failed -the server is marked as "down" and will not receive any requests until the check -will pass and a server will be marked as "up" again. +This plugin gathers metrics from the [Nginx web server][nginx] using the +[upstream check module][upstream_check_module]. This module periodically sends +the configured requests to servers in the Nginx's upstream determining their +availability. -The status page displays the current status of all upstreams and servers as well -as number of the failed and successful checks. This information can be exported -in JSON format and parsed by this input. +⭐ Telegraf v1.10.0 +🏷️ server, web +💻 all -[1]: https://github.com/yaoweibin/nginx_upstream_check_module +[nginx]: https://www.nginx.com +[upstream_check_module]: https://github.com/yaoweibin/nginx_upstream_check_module + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -79,7 +88,6 @@ When run with: It produces: ```text -* Plugin: nginx_upstream_check, Collection 1 -> nginx_upstream_check,host=node1,name=192.168.0.1:8080,port=0,type=http,upstream=my_backends,url=http://127.0.0.1:80/status?format\=json fall=0i,rise=100i,status="up",status_code=1i 1529088524000000000 -> nginx_upstream_check,host=node2,name=192.168.0.2:8080,port=0,type=http,upstream=my_backends,url=http://127.0.0.1:80/status?format\=json fall=100i,rise=0i,status="down",status_code=2i 1529088524000000000 +nginx_upstream_check,host=node1,name=192.168.0.1:8080,port=0,type=http,upstream=my_backends,url=http://127.0.0.1:80/status?format\=json fall=0i,rise=100i,status="up",status_code=1i 1529088524000000000 +nginx_upstream_check,host=node2,name=192.168.0.2:8080,port=0,type=http,upstream=my_backends,url=http://127.0.0.1:80/status?format\=json fall=100i,rise=0i,status="down",status_code=2i 1529088524000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/nginx_vts.md b/src/writeData/components/telegrafPlugins/nginx_vts.md index c7e2697213..0168ce9734 100644 --- a/src/writeData/components/telegrafPlugins/nginx_vts.md +++ b/src/writeData/components/telegrafPlugins/nginx_vts.md @@ -1,11 +1,28 @@ -# Nginx Virtual Host Traffic (VTS) Input Plugin - -This plugin gathers Nginx status using external virtual host traffic status -module - . This is an Nginx module -that provides access to virtual host status information. It contains the current -status such as servers, upstreams, caches. This is similar to the live activity -monitoring of Nginx plus. For module configuration details please see its -[documentation](https://github.com/vozlt/nginx-module-vts#synopsis). +# Nginx Virtual Host Traffic Input Plugin + +This plugin gathers metrics from the [Nginx web server][nginx] using the +[external virtual host traffic status module][vhts_module]. This module provides +access to virtual host status information containing the current status of +servers, upstreams and caches, similar to the live activity monitoring of +Nginx plus. For module configuration details please see the +[module documentation][module_doc]. + +⭐ Telegraf v1.9.0 +🏷️ server, web +💻 all + +[nginx]: https://www.nginx.com +[vhts_module]: https://github.com/vozlt/nginx-module-vts +[module_doc]: https://github.com/vozlt/nginx-module-vts#synopsis + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration diff --git a/src/writeData/components/telegrafPlugins/nomad.md b/src/writeData/components/telegrafPlugins/nomad.md index 1a3f47b69b..bb32c5a669 100644 --- a/src/writeData/components/telegrafPlugins/nomad.md +++ b/src/writeData/components/telegrafPlugins/nomad.md @@ -1,10 +1,22 @@ # Hashicorp Nomad Input Plugin -The Nomad plugin must grab metrics from every Nomad agent of the -cluster. Telegraf may be present in every node and connect to the agent -locally. In this case should be something like `http://127.0.0.1:4646`. +This plugin collects metrics from every [Nomad agent][nomad] of the specified +cluster. Telegraf may be present in every node and connect to the agent locally. -> Tested on Nomad 1.1.6 +⭐ Telegraf v1.22.0 +🏷️ server +💻 all + +[nomad]: https://www.nomadproject.io/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -26,7 +38,12 @@ locally. In this case should be something like `http://127.0.0.1:4646`. ## Metrics Both Nomad servers and agents collect various metrics. For every details, please -have a look at Nomad following documentation: +have a look at [Nomad metrics][metrics] and [Nomad telemetry][telemetry] +ocumentation. + +[metrics]: https://www.nomadproject.io/docs/operations/metrics +[telemetry]: https://www.nomadproject.io/docs/operations/telemetry + +## Example Output -- [https://www.nomadproject.io/docs/operations/metrics](https://www.nomadproject.io/docs/operations/metrics) -- [https://www.nomadproject.io/docs/operations/telemetry](https://www.nomadproject.io/docs/operations/telemetry) +There is no predefined metric format, so output depends on plugin input. diff --git a/src/writeData/components/telegrafPlugins/nsd.md b/src/writeData/components/telegrafPlugins/nsd.md index f2364e3217..50bd7977ed 100644 --- a/src/writeData/components/telegrafPlugins/nsd.md +++ b/src/writeData/components/telegrafPlugins/nsd.md @@ -1,8 +1,22 @@ -# NSD Input Plugin +# NLnet Labs Name Server Daemon Input Plugin -This plugin gathers stats from -[NSD](https://www.nlnetlabs.nl/projects/nsd/about) - an authoritative DNS name -server. +This plugin gathers statistics from a [NLnet Labs Name Server Daemon][nsd], an +authoritative DNS name server. + +⭐ Telegraf v1.0.0 +🏷️ server +💻 all + +[nsd]: https://www.nlnetlabs.nl/projects/nsd/about + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -177,3 +191,5 @@ dots in the nsd-control stat name are replaced by underscores (see - server - fields: - queries + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/nsq.md b/src/writeData/components/telegrafPlugins/nsq.md index 631e23c765..832fcfa1b5 100644 --- a/src/writeData/components/telegrafPlugins/nsq.md +++ b/src/writeData/components/telegrafPlugins/nsq.md @@ -1,9 +1,23 @@ # NSQ Input Plugin -This plugin gathers metrics from [NSQ](https://nsq.io/). +This plugin gathers metrics from [NSQ][nsq] realtime distributed messaging +platform instances using the [NSQD API][api]. -See the [NSQD API docs](https://nsq.io/components/nsqd.html) for endpoints that -the plugin can read. +⭐ Telegraf v1.16.0 +🏷️ server +💻 all + +[nsq]: https://nsq.io/ +[api]: https://nsq.io/components/nsqd.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -20,3 +34,71 @@ the plugin can read. ## Use TLS but skip chain & host verification # insecure_skip_verify = false ``` + +## Metrics + +- `nsq_server`: + - tags: + - `server_host` + - `server_version` + - fields: + - `server_count` + - `topic_count` +- `nsq_topic`: + - tags: + - `server_host` + - `server_version` + - `topic` + - fields: + - `backend_depth` + - `channel_count` + - `depth` + - `message_count` +- `nsq_channel`: + - tags: + - `server_host` + - `server_version` + - `topic` + - `channel` + - fields: + - `backend_depth` + - `client_count` + - `depth` + - `deferred_count` + - `inflight_count` + - `message_count` + - `requeue_count` + - `timeout_count` +- `nsq_client`: + - tags: + - `channel` + - `client_address` + - `client_hostname` + - `client_id` + - `client_name` + - `client_user_agent` + - `client_deflate` + - `client_snappy` + - `client_tls` + - `client_version` + - `server_host` + - `server_version` + - `topic` + - fields: + - `finish_count` + - `inflight_count` + - `message_count` + - `ready_count` + - `requeue_count` + +## Example Output + +```text +nsq_server,server_host=127.0.0.1:35871,server_version=0.3.6 server_count=1i,topic_count=2i 1742836824386224245 +nsq_topic,server_host=127.0.0.1:35871,server_version=0.3.6,topic=t1 backend_depth=13i,channel_count=1i,depth=12i,message_count=14i 1742836824386235365 +nsq_channel,channel=c1,server_host=127.0.0.1:35871,server_version=0.3.6,topic=t1 backend_depth=1i,client_count=1i,deferred_count=3i,depth=0i,inflight_count=2i,message_count=4i,requeue_count=5i,timeout_count=6i 1742836824386241985 +nsq_client,channel=c1,client_address=172.17.0.11:35560,client_deflate=false,client_hostname=373a715cd990,client_id=373a715cd990,client_name=373a715cd990,client_snappy=false,client_tls=false,client_user_agent=nsq_to_nsq/0.3.6\ go-nsq/1.0.5,client_version=V2,server_host=127.0.0.1:35871,server_version=0.3.6,topic=t1 finish_count=9i,inflight_count=7i,message_count=8i,ready_count=200i,requeue_count=10i 1742836824386252905 +nsq_topic,server_host=127.0.0.1:35871,server_version=0.3.6,topic=t2 backend_depth=29i,channel_count=1i,depth=28i,message_count=30i 1742836824386263806 +nsq_channel,channel=c2,server_host=127.0.0.1:35871,server_version=0.3.6,topic=t2 backend_depth=16i,client_count=1i,deferred_count=18i,depth=15i,inflight_count=17i,message_count=19i,requeue_count=20i,timeout_count=21i 1742836824386270026 +nsq_client,channel=c2,client_address=172.17.0.8:48145,client_deflate=true,client_hostname=377569bd462b,client_id=377569bd462b,client_name=377569bd462b,client_snappy=true,client_tls=true,client_user_agent=go-nsq/1.0.5,client_version=V2,server_host=127.0.0.1:35871,server_version=0.3.6,topic=t2 finish_count=25i,inflight_count=23i,message_count=24i,ready_count=22i,requeue_count=26i 1742836824386277926 +``` diff --git a/src/writeData/components/telegrafPlugins/nsq_consumer.md b/src/writeData/components/telegrafPlugins/nsq_consumer.md index d2fc086ed2..53296c132d 100644 --- a/src/writeData/components/telegrafPlugins/nsq_consumer.md +++ b/src/writeData/components/telegrafPlugins/nsq_consumer.md @@ -1,16 +1,40 @@ # NSQ Consumer Input Plugin -The [NSQ][nsq] consumer plugin reads from NSQD and creates metrics using one -of the supported [input data formats][]. +This service plugin consumes messages from [NSQ][nsq] realtime distributed +messaging platform brokers in one of the supported [data formats][data_formats]. + +⭐ Telegraf v0.10.1 +🏷️ messaging +💻 all + +[nsq]: https://nsq.io/ +[data_formats]: /docs/DATA_FORMATS_INPUT.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read metrics from NSQD topic(s) [[inputs.nsq_consumer]] - ## Server option still works but is deprecated, we just prepend it to the nsqd array. - # server = "localhost:4150" - ## An array representing the NSQD TCP HTTP Endpoints nsqd = ["localhost:4150"] @@ -20,14 +44,16 @@ of the supported [input data formats][]. channel = "consumer" max_in_flight = 100 - ## Maximum messages to read from the broker that have not been written by an - ## output. For best throughput set based on the number of metrics within - ## each message and the size of the output's metric_batch_size. + ## Max undelivered messages + ## This plugin uses tracking metrics, which ensure messages are read to + ## outputs before acknowledging them to the original broker to ensure data + ## is not lost. This option sets the maximum messages to read from the + ## broker that have not been written by an output. ## - ## For example, if each message from the queue contains 10 metrics and the - ## output metric_batch_size is 1000, setting this to 100 will ensure that a - ## full batch is collected and the write is triggered immediately without - ## waiting until the next flush_interval. + ## This value needs to be picked with awareness of the agent's + ## metric_batch_size value as well. Setting max undelivered messages too high + ## can result in a constant stream of data batches to the output. While + ## setting it too low may never flush the broker's messages. # max_undelivered_messages = 1000 ## Data format to consume. @@ -37,5 +63,11 @@ of the supported [input data formats][]. data_format = "influx" ``` -[nsq]: https://nsq.io -[input data formats]: /docs/DATA_FORMATS_INPUT.md +## Metrics + +The plugin accepts arbitrary input and parses it according to the `data_format` +setting. There is no predefined metric format. + +## Example Output + +There is no predefined metric format, so output depends on plugin input. diff --git a/src/writeData/components/telegrafPlugins/nstat.md b/src/writeData/components/telegrafPlugins/nstat.md index 1a8cd22974..754254cbeb 100644 --- a/src/writeData/components/telegrafPlugins/nstat.md +++ b/src/writeData/components/telegrafPlugins/nstat.md @@ -1,7 +1,20 @@ -# Nstat Input Plugin +# Kernel Network Statistics Input Plugin -Plugin collects network metrics from `/proc/net/netstat`, `/proc/net/snmp` and -`/proc/net/snmp6` files +This plugin collects network metrics from `/proc/net/netstat`, `/proc/net/snmp` +and `/proc/net/snmp6` files + +⭐ Telegraf v0.13.1 +🏷️ network, system +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -351,3 +364,14 @@ error would be raised. * All measurements have the following tags * host (host of the system) * name (the type of the metric: snmp, snmp6 or netstat) + +## Example Output + +```text +> nstat,host=Hugin,name=netstat IpExtInBcastOctets=2142i,IpExtInBcastPkts=1i,IpExtInCEPkts=0i,IpExtInCsumErrors=0i,IpExtInECT0Pkts=0i,IpExtInECT1Pkts=0i,IpExtInMcastOctets=2636i,IpExtInMcastPkts=14i,IpExtInNoECTPkts=234065i,IpExtInNoRoutes=2i,IpExtInOctets=135040263i,IpExtInTruncatedPkts=0i,IpExtOutBcastOctets=2162i,IpExtOutBcastPkts=2i,IpExtOutMcastOctets=3196i,IpExtOutMcastPkts=28i,IpExtOutOctets=45962238i,IpExtReasmOverlaps=0i,MPTcpExtAddAddr=0i,MPTcpExtAddAddrDrop=0i,MPTcpExtAddAddrTx=0i,MPTcpExtAddAddrTxDrop=0i,MPTcpExtBlackhole=0i,MPTcpExtDSSCorruptionFallback=0i,MPTcpExtDSSCorruptionReset=0i,MPTcpExtDSSNoMatchTCP=0i,MPTcpExtDSSNotMatching=0i,MPTcpExtDataCsumErr=0i,MPTcpExtDuplicateData=0i,MPTcpExtEchoAdd=0i,MPTcpExtEchoAddTx=0i,MPTcpExtEchoAddTxDrop=0i,MPTcpExtInfiniteMapRx=0i,MPTcpExtInfiniteMapTx=0i,MPTcpExtMPCapableACKRX=0i,MPTcpExtMPCapableEndpAttempt=0i,MPTcpExtMPCapableFallbackACK=0i,MPTcpExtMPCapableFallbackSYNACK=0i,MPTcpExtMPCapableSYNACKRX=0i,MPTcpExtMPCapableSYNRX=0i,MPTcpExtMPCapableSYNTX=0i,MPTcpExtMPCapableSYNTXDisabled=0i,MPTcpExtMPCapableSYNTXDrop=0i,MPTcpExtMPCurrEstab=0i,MPTcpExtMPFailRx=0i,MPTcpExtMPFailTx=0i,MPTcpExtMPFallbackTokenInit=0i,MPTcpExtMPFastcloseRx=0i,MPTcpExtMPFastcloseTx=0i,MPTcpExtMPJoinAckHMacFailure=0i,MPTcpExtMPJoinAckRx=0i,MPTcpExtMPJoinNoTokenFound=0i,MPTcpExtMPJoinPortAckRx=0i,MPTcpExtMPJoinPortSynAckRx=0i,MPTcpExtMPJoinPortSynRx=0i,MPTcpExtMPJoinSynAckBackupRx=0i,MPTcpExtMPJoinSynAckHMacFailure=0i,MPTcpExtMPJoinSynAckRx=0i,MPTcpExtMPJoinSynBackupRx=0i,MPTcpExtMPJoinSynRx=0i,MPTcpExtMPJoinSynTx=0i,MPTcpExtMPJoinSynTxBindErr=0i,MPTcpExtMPJoinSynTxConnectErr=0i,MPTcpExtMPJoinSynTxCreatSkErr=0i,MPTcpExtMPPrioRx=0i,MPTcpExtMPPrioTx=0i,MPTcpExtMPRstRx=0i,MPTcpExtMPRstTx=0i,MPTcpExtMPTCPRetrans=0i,MPTcpExtMismatchPortAckRx=0i,MPTcpExtMismatchPortSynRx=0i,MPTcpExtNoDSSInWindow=0i,MPTcpExtOFOMerge=0i,MPTcpExtOFOQueue=0i,MPTcpExtOFOQueueTail=0i,MPTcpExtPortAdd=0i,MPTcpExtRcvPruned=0i,MPTcpExtRcvWndConflict=0i,MPTcpExtRcvWndConflictUpdate=0i,MPTcpExtRcvWndShared=0i,MPTcpExtRmAddr=0i,MPTcpExtRmAddrDrop=0i,MPTcpExtRmAddrTx=0i,MPTcpExtRmAddrTxDrop=0i,MPTcpExtRmSubflow=0i,MPTcpExtSndWndShared=0i,MPTcpExtSubflowRecover=0i,MPTcpExtSubflowStale=0i,TcpExtArpFilter=0i,TcpExtBusyPollRxPackets=0i,TcpExtDelayedACKLocked=1i,TcpExtDelayedACKLost=123i,TcpExtDelayedACKs=1313i,TcpExtEmbryonicRsts=0i,TcpExtIPReversePathFilter=0i,TcpExtListenDrops=0i,TcpExtListenOverflows=0i,TcpExtLockDroppedIcmps=0i,TcpExtOfoPruned=0i,TcpExtOutOfWindowIcmps=0i,TcpExtPAWSActive=0i,TcpExtPAWSEstab=0i,TcpExtPFMemallocDrop=0i,TcpExtPruneCalled=0i,TcpExtRcvPruned=0i,TcpExtSyncookiesFailed=0i,TcpExtSyncookiesRecv=0i,TcpExtSyncookiesSent=0i,TcpExtTCPACKSkippedChallenge=0i,TcpExtTCPACKSkippedFinWait2=0i,TcpExtTCPACKSkippedPAWS=0i,TcpExtTCPACKSkippedSeq=1i,TcpExtTCPACKSkippedSynRecv=0i,TcpExtTCPACKSkippedTimeWait=0i,TcpExtTCPAOBad=0i,TcpExtTCPAODroppedIcmps=0i,TcpExtTCPAOGood=0i,TcpExtTCPAOKeyNotFound=0i,TcpExtTCPAORequired=0i,TcpExtTCPAbortFailed=0i,TcpExtTCPAbortOnClose=132i,TcpExtTCPAbortOnData=457i,TcpExtTCPAbortOnLinger=0i,TcpExtTCPAbortOnMemory=0i,TcpExtTCPAbortOnTimeout=0i,TcpExtTCPAckCompressed=15i,TcpExtTCPAutoCorking=1471i,TcpExtTCPBacklogCoalesce=113i,TcpExtTCPBacklogDrop=0i,TcpExtTCPChallengeACK=0i,TcpExtTCPDSACKIgnoredDubious=0i,TcpExtTCPDSACKIgnoredNoUndo=65i,TcpExtTCPDSACKIgnoredOld=0i,TcpExtTCPDSACKOfoRecv=0i,TcpExtTCPDSACKOfoSent=0i,TcpExtTCPDSACKOldSent=123i,TcpExtTCPDSACKRecv=78i,TcpExtTCPDSACKRecvSegs=78i,TcpExtTCPDSACKUndo=0i,TcpExtTCPDeferAcceptDrop=0i,TcpExtTCPDelivered=95905i,TcpExtTCPDeliveredCE=0i,TcpExtTCPFastOpenActive=0i,TcpExtTCPFastOpenActiveFail=0i,TcpExtTCPFastOpenBlackhole=0i,TcpExtTCPFastOpenCookieReqd=0i,TcpExtTCPFastOpenListenOverflow=0i,TcpExtTCPFastOpenPassive=0i,TcpExtTCPFastOpenPassiveAltKey=0i,TcpExtTCPFastOpenPassiveFail=0i,TcpExtTCPFastRetrans=3i,TcpExtTCPFromZeroWindowAdv=1i,TcpExtTCPFullUndo=2i,TcpExtTCPHPAcks=40380i,TcpExtTCPHPHits=46243i,TcpExtTCPHystartDelayCwnd=81i,TcpExtTCPHystartDelayDetect=3i,TcpExtTCPHystartTrainCwnd=0i,TcpExtTCPHystartTrainDetect=0i,TcpExtTCPKeepAlive=2816i,TcpExtTCPLossFailures=0i,TcpExtTCPLossProbeRecovery=0i,TcpExtTCPLossProbes=85i,TcpExtTCPLossUndo=0i,TcpExtTCPLostRetransmit=0i,TcpExtTCPMD5Failure=0i,TcpExtTCPMD5NotFound=0i,TcpExtTCPMD5Unexpected=0i,TcpExtTCPMTUPFail=0i,TcpExtTCPMTUPSuccess=0i,TcpExtTCPMemoryPressures=0i,TcpExtTCPMemoryPressuresChrono=0i,TcpExtTCPMigrateReqFailure=0i,TcpExtTCPMigrateReqSuccess=0i,TcpExtTCPMinTTLDrop=0i,TcpExtTCPOFODrop=0i,TcpExtTCPOFOMerge=0i,TcpExtTCPOFOQueue=509i,TcpExtTCPOrigDataSent=89707i,TcpExtTCPPLBRehash=0i,TcpExtTCPPartialUndo=1i,TcpExtTCPPureAcks=35929i,TcpExtTCPRcvCoalesce=9070i,TcpExtTCPRcvCollapsed=0i,TcpExtTCPRcvQDrop=0i,TcpExtTCPRenoFailures=0i,TcpExtTCPRenoRecovery=0i,TcpExtTCPRenoRecoveryFail=0i,TcpExtTCPRenoReorder=0i,TcpExtTCPReqQFullDoCookies=0i,TcpExtTCPReqQFullDrop=0i,TcpExtTCPRetransFail=0i,TcpExtTCPSACKDiscard=0i,TcpExtTCPSACKReneging=0i,TcpExtTCPSACKReorder=79i,TcpExtTCPSYNChallenge=0i,TcpExtTCPSackFailures=0i,TcpExtTCPSackMerged=3i,TcpExtTCPSackRecovery=3i,TcpExtTCPSackRecoveryFail=0i,TcpExtTCPSackShiftFallback=116i,TcpExtTCPSackShifted=2i,TcpExtTCPSlowStartRetrans=0i,TcpExtTCPSpuriousRTOs=0i,TcpExtTCPSpuriousRtxHostQueues=0i,TcpExtTCPSynRetrans=1i,TcpExtTCPTSReorder=1i,TcpExtTCPTimeWaitOverflow=0i,TcpExtTCPTimeouts=1i,TcpExtTCPToZeroWindowAdv=1i,TcpExtTCPWantZeroWindowAdv=4i,TcpExtTCPWinProbe=0i,TcpExtTCPWqueueTooBig=0i,TcpExtTCPZeroWindowDrop=0i,TcpExtTW=7592i,TcpExtTWKilled=0i,TcpExtTWRecycled=0i,TcpExtTcpDuplicateDataRehash=0i,TcpExtTcpTimeoutRehash=1i 1742837823000000000 +2025-03-24T17:37:03Z D! [agent] Stopping service inputs +> nstat,host=Hugin,name=snmp IcmpInAddrMaskReps=0i,IcmpInAddrMasks=0i,IcmpInCsumErrors=0i,IcmpInDestUnreachs=1i,IcmpInEchoReps=0i,IcmpInEchos=0i,IcmpInErrors=0i,IcmpInMsgs=1i,IcmpInParmProbs=0i,IcmpInRedirects=0i,IcmpInSrcQuenchs=0i,IcmpInTimeExcds=0i,IcmpInTimestampReps=0i,IcmpInTimestamps=0i,IcmpMsgInType3=1i,IcmpMsgOutType3=1i,IcmpOutAddrMaskReps=0i,IcmpOutAddrMasks=0i,IcmpOutDestUnreachs=1i,IcmpOutEchoReps=0i,IcmpOutEchos=0i,IcmpOutErrors=0i,IcmpOutMsgs=1i,IcmpOutParmProbs=0i,IcmpOutRateLimitGlobal=0i,IcmpOutRateLimitHost=0i,IcmpOutRedirects=0i,IcmpOutSrcQuenchs=0i,IcmpOutTimeExcds=0i,IcmpOutTimestampReps=0i,IcmpOutTimestamps=0i,IpDefaultTTL=64i,IpForwDatagrams=12i,IpForwarding=1i,IpFragCreates=2i,IpFragFails=0i,IpFragOKs=1i,IpInAddrErrors=0i,IpInDelivers=227088i,IpInDiscards=0i,IpInHdrErrors=0i,IpInReceives=227102i,IpInUnknownProtos=0i,IpOutDiscards=0i,IpOutNoRoutes=44i,IpOutRequests=194901i,IpOutTransmits=194914i,IpReasmFails=0i,IpReasmOKs=0i,IpReasmReqds=0i,IpReasmTimeout=0i,TcpActiveOpens=12453i,TcpAttemptFails=4005i,TcpCurrEstab=9i,TcpEstabResets=2312i,TcpInCsumErrors=0i,TcpInErrs=0i,TcpInSegs=206125i,TcpMaxConn=-1i,TcpOutRsts=6928i,TcpOutSegs=189170i,TcpPassiveOpens=7628i,TcpRetransSegs=86i,TcpRtoAlgorithm=1i,TcpRtoMax=120000i,TcpRtoMin=200i,UdpIgnoredMulti=0i,UdpInCsumErrors=0i,UdpInDatagrams=27391i,UdpInErrors=0i,UdpLiteIgnoredMulti=0i,UdpLiteInCsumErrors=0i,UdpLiteInDatagrams=0i,UdpLiteInErrors=0i,UdpLiteMemErrors=0i,UdpLiteNoPorts=0i,UdpLiteOutDatagrams=0i,UdpLiteRcvbufErrors=0i,UdpLiteSndbufErrors=0i,UdpMemErrors=0i,UdpNoPorts=1i,UdpOutDatagrams=14308i,UdpRcvbufErrors=0i,UdpSndbufErrors=0i 1742837823000000000 +2025-03-24T17:37:03Z D! [agent] Input channel closed +2025-03-24T17:37:03Z D! [agent] Stopped Successfully +> nstat,host=Hugin,name=snmp6 Icmp6InCsumErrors=0i,Icmp6InDestUnreachs=0i,Icmp6InEchoReplies=0i,Icmp6InEchos=0i,Icmp6InErrors=0i,Icmp6InGroupMembQueries=0i,Icmp6InGroupMembReductions=0i,Icmp6InGroupMembResponses=0i,Icmp6InMLDv2Reports=0i,Icmp6InMsgs=0i,Icmp6InNeighborAdvertisements=0i,Icmp6InNeighborSolicits=0i,Icmp6InParmProblems=0i,Icmp6InPktTooBigs=0i,Icmp6InRedirects=0i,Icmp6InRouterAdvertisements=0i,Icmp6InRouterSolicits=0i,Icmp6InTimeExcds=0i,Icmp6OutDestUnreachs=0i,Icmp6OutEchoReplies=0i,Icmp6OutEchos=0i,Icmp6OutErrors=0i,Icmp6OutGroupMembQueries=0i,Icmp6OutGroupMembReductions=0i,Icmp6OutGroupMembResponses=0i,Icmp6OutMLDv2Reports=271i,Icmp6OutMsgs=430i,Icmp6OutNeighborAdvertisements=0i,Icmp6OutNeighborSolicits=62i,Icmp6OutParmProblems=0i,Icmp6OutPktTooBigs=0i,Icmp6OutRateLimitHost=0i,Icmp6OutRedirects=0i,Icmp6OutRouterAdvertisements=0i,Icmp6OutRouterSolicits=97i,Icmp6OutTimeExcds=0i,Icmp6OutType133=97i,Icmp6OutType135=62i,Icmp6OutType143=271i,Ip6FragCreates=0i,Ip6FragFails=0i,Ip6FragOKs=0i,Ip6InAddrErrors=0i,Ip6InBcastOctets=0i,Ip6InCEPkts=0i,Ip6InDelivers=6433i,Ip6InDiscards=0i,Ip6InECT0Pkts=0i,Ip6InECT1Pkts=0i,Ip6InHdrErrors=0i,Ip6InMcastOctets=2652i,Ip6InMcastPkts=11i,Ip6InNoECTPkts=6433i,Ip6InNoRoutes=0i,Ip6InOctets=763395i,Ip6InReceives=6433i,Ip6InTooBigErrors=0i,Ip6InTruncatedPkts=0i,Ip6InUnknownProtos=0i,Ip6OutBcastOctets=0i,Ip6OutDiscards=12i,Ip6OutForwDatagrams=0i,Ip6OutMcastOctets=35016i,Ip6OutMcastPkts=453i,Ip6OutNoRoutes=4652i,Ip6OutOctets=795759i,Ip6OutRequests=6875i,Ip6OutTransmits=6875i,Ip6ReasmFails=0i,Ip6ReasmOKs=0i,Ip6ReasmReqds=0i,Ip6ReasmTimeout=0i,Udp6IgnoredMulti=0i,Udp6InCsumErrors=0i,Udp6InDatagrams=45i,Udp6InErrors=0i,Udp6MemErrors=0i,Udp6NoPorts=0i,Udp6OutDatagrams=24i,Udp6RcvbufErrors=0i,Udp6SndbufErrors=0i,UdpLite6InCsumErrors=0i,UdpLite6InDatagrams=0i,UdpLite6InErrors=0i,UdpLite6MemErrors=0i,UdpLite6NoPorts=0i,UdpLite6OutDatagrams=0i,UdpLite6RcvbufErrors=0i,UdpLite6SndbufErrors=0i 1742837823000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/ntpq.md b/src/writeData/components/telegrafPlugins/ntpq.md index 62be1c4459..64dab42d33 100644 --- a/src/writeData/components/telegrafPlugins/ntpq.md +++ b/src/writeData/components/telegrafPlugins/ntpq.md @@ -1,28 +1,24 @@ -# ntpq Input Plugin +# Network Time Protocol Query Input Plugin -Get standard NTP query metrics, requires ntpq executable. +This plugin gathers metrics about [Network Time Protocol][ntp] queries. -Below is the documentation of the various headers returned from the NTP query -command when running `ntpq -p`. +> [!IMPORTANT] +> This plugin requires the `ntpq` executable to be installed on the system. + +⭐ Telegraf v0.11.0 +🏷️ network +💻 all + +[ntp]: https://ntp.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -- remote – The remote peer or server being synced to. “LOCAL” is this local host -(included in case there are no remote peers or servers available); -- refid – Where or what the remote peer or server is itself synchronised to; -- st (stratum) – The remote peer or server Stratum -- t (type) – Type (u: unicast or manycast client, b: broadcast or multicast client, -l: local reference clock, s: symmetric peer, A: manycast server, -B: broadcast server, M: multicast server, see “Automatic Server Discovery“); -- when – When last polled (seconds ago, “h” hours ago, or “d” days ago); -- poll – Polling frequency: rfc5905 suggests this ranges in NTPv4 from 4 (16s) -to 17 (36h) (log2 seconds), however observation suggests the actual displayed -value is seconds for a much smaller range of 64 (26) to 1024 (210) seconds; -- reach – An 8-bit left-shift shift register value recording polls (bit set = -successful, bit reset = fail) displayed in octal; -- delay – Round trip communication delay to the remote peer or server (milliseconds); -- offset – Mean offset (phase) in the times reported between this local host and -the remote peer or server (RMS, milliseconds); -- jitter – Mean deviation (jitter) in the time reported for that remote peer or -server (RMS of difference of multiple time samples, milliseconds); +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -33,10 +29,6 @@ server (RMS of difference of multiple time samples, milliseconds); ## If no server is given, the local machine is queried. # servers = [] - ## If false, set the -n ntpq flag. Can reduce metric gather time. - ## DEPRECATED since 1.24.0: add '-n' to 'options' instead to skip DNS lookup - # dns_lookup = true - ## Options to pass to the ntpq command. # options = "-p" @@ -59,9 +51,33 @@ You can pass arbitrary options accepted by the `ntpq` command using the for example. +Below is the documentation of the various headers returned from the NTP query +command when running `ntpq -p`. + +- `remote` – The remote peer or server being synced to. “LOCAL” is this local + host (included in case there are no remote peers or servers available); +- `refid` – Where or what the remote peer or server is itself synchronised to; +- `st` (stratum) – The remote peer or server Stratum +- `t` (type) – Type (u: unicast or manycast client, b: broadcast or multicast + client, l: local reference clock, s: symmetric peer, A: manycast server, + B: broadcast server, M: multicast server, see “Automatic Server Discovery“); +- `when` – When last polled (seconds ago, “h” hours ago, or “d” days ago); +- `poll` – Polling frequency: rfc5905 suggests this ranges in NTPv4 from 4 (16s) + to 17 (36h) (log2 seconds), however observation suggests the actual + displayed value is seconds for a much smaller range of 64 (26) to 1024 + (210) seconds; +- `reach` – An 8-bit left-shift shift register value recording polls + (bit set = successful, bit reset = fail) displayed in octal; +- `delay` – Round trip communication delay to the remote peer or server + (milliseconds); +- `offset` – Mean offset (phase) in the times reported between this local host + and the remote peer or server (RMS, milliseconds); +- `jitter` – Mean deviation (jitter) in the time reported for that remote peer + or server (RMS of difference of multiple time samples, milliseconds); + ## Metrics -- ntpq +- `ntpq` - delay (float, milliseconds) - jitter (float, milliseconds) - offset (float, milliseconds) @@ -83,8 +99,6 @@ additional `source` tag. ## Example Output -```shell -$ telegraf --config ~/ws/telegraf.conf --input-filter ntpq --test -* Plugin: ntpq, Collection 1 -> ntpq,refid=.GPSs.,remote=*time.apple.com,stratum=1,type=u delay=91.797,jitter=3.735,offset=12.841,poll=64i,reach=377i,when=35i 1457960478909556134 +```text +ntpq,refid=.GPSs.,remote=*time.apple.com,stratum=1,type=u delay=91.797,jitter=3.735,offset=12.841,poll=64i,reach=377i,when=35i 1457960478909556134 ``` diff --git a/src/writeData/components/telegrafPlugins/nvidia_smi.md b/src/writeData/components/telegrafPlugins/nvidia_smi.md index 331e4685d7..f214bbe701 100644 --- a/src/writeData/components/telegrafPlugins/nvidia_smi.md +++ b/src/writeData/components/telegrafPlugins/nvidia_smi.md @@ -1,8 +1,42 @@ # Nvidia System Management Interface (SMI) Input Plugin -This plugin uses a query on the -[`nvidia-smi`](https://developer.nvidia.com/nvidia-system-management-interface) -binary to pull GPU stats including memory and GPU usage, temp and other. +This plugin collects metrics for [NVIDIA GPUs][nvidia] including memory and +GPU usage, temperature and other, using the +[NVIDIA System Management Interface][smi]. + +> [!IMPORTANT] +> This plugin requires the `nvidia-smi` binary to be installed on the system. + +⭐ Telegraf v1.7.0 +🏷️ system, hardware +💻 all + +[nvidia]: https://www.nvidia.com/ +[smi]: https://developer.nvidia.com/nvidia-system-management-interface + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Startup error behavior options + +In addition to the plugin-specific and global configuration settings the plugin +supports options for specifying the behavior when experiencing startup errors +using the `startup_error_behavior` setting. Available values are: + +- `error`: Telegraf with stop and exit in case of startup errors. This is the + default behavior. +- `ignore`: Telegraf will ignore startup errors for this plugin and disables it + but continues processing for all other plugins. +- `retry`: NOT AVAILABLE +- `probe`: Telegraf will call the `Probe() error` method, if available. If the + method returns an error, Telegraf disables the plugin but continues + processing for all other plugins. ## Configuration @@ -10,7 +44,7 @@ binary to pull GPU stats including memory and GPU usage, temp and other. # Pulls statistics from nvidia GPUs attached to the host [[inputs.nvidia_smi]] ## Optional: path to nvidia-smi binary, defaults "/usr/bin/nvidia-smi" - ## We will first try to locate the nvidia-smi binary with the explicitly specified value (or default value), + ## We will first try to locate the nvidia-smi binary with the explicitly specified value (or default value), ## if it is not found, we will try to locate it on PATH(exec.LookPath), if it is still not found, an error will be returned # bin_path = "/usr/bin/nvidia-smi" @@ -31,13 +65,31 @@ here `C:\Windows\System32\nvidia-smi.exe` You'll need to escape the `\` within the `telegraf.conf` like this: `C:\\Program Files\\NVIDIA Corporation\\NVSMI\\nvidia-smi.exe` +## Troubleshooting + +Check the full output by running `nvidia-smi` binary manually. + +Linux: + +```sh +sudo -u telegraf -- /usr/bin/nvidia-smi -q -x +``` + +Windows: + +```sh +"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" -q -x +``` + +Please include the output of this command if opening an GitHub issue. + ## Metrics - measurement: `nvidia_smi` - tags - `name` (type of GPU e.g. `GeForce GTX 1070 Ti`) - `compute_mode` (The compute mode of the GPU e.g. `Default`) - - `index` (The port index where the GPU is connected to the motherboard e.g. `1`) + - `index` (Port index where the GPU is connected to the motherboard e.g. `1`) - `pstate` (Overclocking state for the GPU e.g. `P0`) - `uuid` (A unique identifier for the GPU e.g. `GPU-f9ba66fc-a7f5-94c5-da19-019ef2f9c665`) - fields @@ -48,6 +100,16 @@ Files\\NVIDIA Corporation\\NVSMI\\nvidia-smi.exe` - `memory_free` (integer, MiB) - `memory_used` (integer, MiB) - `memory_total` (integer, MiB) + - `memory_reserved` (integer, MiB) + - `retired_pages_multiple_single_bit` (integer) + - `retired_pages_double_bit` (integer) + - `retired_pages_blacklist` (string) + - `retired_pages_pending` (string) + - `remapped_rows_correctable` (int) + - `remapped_rows_uncorrectable` (int) + - `remapped_rows_pending` (string) + - `remapped_rows_pending` (string) + - `remapped_rows_failure` (string) - `power_draw` (float, W) - `temperature_gpu` (integer, degrees C) - `utilization_gpu` (integer, percentage) @@ -66,33 +128,6 @@ Files\\NVIDIA Corporation\\NVSMI\\nvidia-smi.exe` - `driver_version` (string) - `cuda_version` (string) -## Sample Query - -The below query could be used to alert on the average temperature of the your -GPUs over the last minute - -```sql -SELECT mean("temperature_gpu") FROM "nvidia_smi" WHERE time > now() - 5m GROUP BY time(1m), "index", "name", "host" -``` - -## Troubleshooting - -Check the full output by running `nvidia-smi` binary manually. - -Linux: - -```sh -sudo -u telegraf -- /usr/bin/nvidia-smi -q -x -``` - -Windows: - -```sh -"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" -q -x -``` - -Please include the output of this command if opening an GitHub issue. - ## Example Output ```text @@ -110,4 +145,21 @@ confirmed to be an issue on an EVGA 2080 Ti. **NOTE:** For use with docker either generate your own custom docker image based on nvidia/cuda which also installs a telegraf package or use [volume mount binding](https://docs.docker.com/storage/bind-mounts/) to inject the required -binary into the docker container. +binary into the docker container. In particular you will need to pass through +the /dev/nvidia* devices, the nvidia-smi binary and the nvidia libraries. +An minimal docker-compose example of how to do this is: + +```yaml + telegraf: + image: telegraf + runtime: nvidia + devices: + - /dev/nvidiactl:/dev/nvidiactl + - /dev/nvidia0:/dev/nvidia0 + volumes: + - ./telegraf/etc/telegraf.conf:/etc/telegraf/telegraf.conf:ro + - /usr/bin/nvidia-smi:/usr/bin/nvidia-smi:ro + - /usr/lib/x86_64-linux-gnu/nvidia:/usr/lib/x86_64-linux-gnu/nvidia:ro + environment: + - LD_PRELOAD=/usr/lib/x86_64-linux-gnu/nvidia/current/libnvidia-ml.so +``` diff --git a/src/writeData/components/telegrafPlugins/opcua.md b/src/writeData/components/telegrafPlugins/opcua.md index 3cd8e270cc..de30aa6a00 100644 --- a/src/writeData/components/telegrafPlugins/opcua.md +++ b/src/writeData/components/telegrafPlugins/opcua.md @@ -1,9 +1,31 @@ -# OPC UA Client Input Plugin +# OPC UA Client Reader Input Plugin -The `opcua` plugin retrieves data from OPC UA client devices. +This plugin gathers data from an [OPC UA][opcua] server by subscribing to the +configured nodes. -Telegraf minimum version: Telegraf 1.16 -Plugin minimum tested version: 1.16 +⭐ Telegraf v1.16.0 +🏷️ iot +💻 all + +[opcua]: https://opcfoundation.org/about/opc-technologies/opc-ua/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `username` and +`password` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -12,109 +34,190 @@ Plugin minimum tested version: 1.16 [[inputs.opcua]] ## Metric name # name = "opcua" - # + ## OPC UA Endpoint URL # endpoint = "opc.tcp://localhost:4840" - # + ## Maximum time allowed to establish a connect to the endpoint. # connect_timeout = "10s" - # - ## Maximum time allowed for a request over the estabilished connection. + + ## Maximum time allowed for a request over the established connection. # request_timeout = "5s" - # + + ## Maximum time that a session shall remain open without activity. + # session_timeout = "20m" + + ## Retry options for failing reads e.g. due to invalid sessions + ## If the retry count is zero, the read will fail after the initial attempt. + # read_retry_timeout = "100ms" + # read_retry_count = 0 + + ## Number of consecutive errors before forcing a reconnection + ## If set to 1 (default), the client will reconnect after a single failed read + # reconnect_error_threshold = 1 + ## Security policy, one of "None", "Basic128Rsa15", "Basic256", ## "Basic256Sha256", or "auto" # security_policy = "auto" - # + ## Security mode, one of "None", "Sign", "SignAndEncrypt", or "auto" # security_mode = "auto" - # + ## Path to cert.pem. Required when security mode or policy isn't "None". ## If cert path is not supplied, self-signed cert and key will be generated. # certificate = "/etc/telegraf/cert.pem" - # + ## Path to private key.pem. Required when security mode or policy isn't "None". ## If key path is not supplied, self-signed cert and key will be generated. # private_key = "/etc/telegraf/key.pem" - # + ## Authentication Method, one of "Certificate", "UserName", or "Anonymous". To ## authenticate using a specific ID, select 'Certificate' or 'UserName' # auth_method = "Anonymous" - # - ## Username. Required for auth_method = "UserName" + + ## Username and password required for auth_method = "UserName" # username = "" - # - ## Password. Required for auth_method = "UserName" # password = "" - # + ## Option to select the metric timestamp to use. Valid options are: ## "gather" -- uses the time of receiving the data in telegraf ## "server" -- uses the timestamp provided by the server ## "source" -- uses the timestamp provided by the source # timestamp = "gather" - # + + ## Client trace messages + ## When set to true, and debug mode enabled in the agent settings, the OPCUA + ## client's messages are included in telegraf logs. These messages are very + ## noisey, but essential for debugging issues. + # client_trace = false + + ## Include additional Fields in each metric + ## Available options are: + ## DataType -- OPC-UA Data Type (string) + # optional_fields = [] + ## Node ID configuration ## name - field name to use in the output ## namespace - OPC UA namespace of the node (integer value 0 thru 3) ## identifier_type - OPC UA ID type (s=string, i=numeric, g=guid, b=opaque) ## identifier - OPC UA ID (tag as shown in opcua browser) - ## tags - extra tags to be added to the output metric (optional) - ## Example: - ## {name="ProductUri", namespace="0", identifier_type="i", identifier="2262", tags=[["tag1","value1"],["tag2","value2]]} + ## default_tags - extra tags to be added to the output metric (optional) + ## + ## Use either the inline notation or the bracketed notation, not both. + + ## Inline notation (default_tags not supported yet) # nodes = [ - # {name="", namespace="", identifier_type="", identifier=""}, - # {name="", namespace="", identifier_type="", identifier=""}, - #] + # {name="", namespace="", identifier_type="", identifier=""}, + # ] + + ## Bracketed notation + # [[inputs.opcua.nodes]] + # name = "node1" + # namespace = "" + # identifier_type = "" + # identifier = "" + # default_tags = { tag1 = "value1", tag2 = "value2" } # + # [[inputs.opcua.nodes]] + # name = "node2" + # namespace = "" + # identifier_type = "" + # identifier = "" + ## Node Group - ## Sets defaults for OPC UA namespace and ID type so they aren't required in - ## every node. A group can also have a metric name that overrides the main - ## plugin metric name. + ## Sets defaults so they aren't required in every node. + ## Default values can be set for: + ## * Metric name + ## * OPC UA namespace + ## * Identifier + ## * Default tags ## ## Multiple node groups are allowed #[[inputs.opcua.group]] ## Group Metric name. Overrides the top level name. If unset, the ## top level name is used. # name = - # + ## Group default namespace. If a node in the group doesn't set its ## namespace, this is used. # namespace = - # + ## Group default identifier type. If a node in the group doesn't set its ## namespace, this is used. # identifier_type = - # - ## Node ID Configuration. Array of nodes with the same settings as above. + + ## Default tags that are applied to every node in this group. Can be + ## overwritten in a node by setting a different value for the tag name. + ## example: default_tags = { tag1 = "value1" } + # default_tags = {} + + ## Node ID Configuration. Array of nodes with the same settings as above. + ## Use either the inline notation or the bracketed notation, not both. + + ## Inline notation (default_tags not supported yet) # nodes = [ - # {name="", namespace="", identifier_type="", identifier=""}, - # {name="", namespace="", identifier_type="", identifier=""}, + # {name="node1", namespace="", identifier_type="", identifier=""}, + # {name="node2", namespace="", identifier_type="", identifier=""}, #] + ## Bracketed notation + # [[inputs.opcua.group.nodes]] + # name = "node1" + # namespace = "" + # identifier_type = "" + # identifier = "" + # default_tags = { tag1 = "override1", tag2 = "value2" } + # + # [[inputs.opcua.group.nodes]] + # name = "node2" + # namespace = "" + # identifier_type = "" + # identifier = "" + ## Enable workarounds required by some devices to work correctly # [inputs.opcua.workarounds] - ## Set additional valid status codes, StatusOK (0x0) is always considered valid - # additional_valid_status_codes = ["0xC0"] + # ## Set additional valid status codes, StatusOK (0x0) is always considered valid + # # additional_valid_status_codes = ["0xC0"] + + # [inputs.opcua.request_workarounds] + # ## Use unregistered reads instead of registered reads + # # use_unregistered_reads = false ``` ## Node Configuration -An OPC UA node ID may resemble: "n=3;s=Temperature". In this example: +An OPC UA node ID may resemble: "ns=3;s=Temperature". In this example: -- n=3 is indicating the `namespace` is 3 -- s=Temperature is indicting that the `identifier_type` is a string and `identifier` value is 'Temperature' +- ns=3 is indicating the `namespace` is 3 +- s=Temperature is indicting that the `identifier_type` is a string and + `identifier` value is 'Temperature' - This example temperature node has a value of 79.0 -To gather data from this node enter the following line into the 'nodes' property above: -```shell +To gather data from this node enter the following line into the 'nodes' +property above: + +```text {field_name="temp", namespace="3", identifier_type="s", identifier="Temperature"}, ``` This node configuration produces a metric like this: ```text -opcua,id=n\=3;s\=Temperature temp=79.0,quality="OK (0x0)" 1597820490000000000 +opcua,id=ns\=3;s\=Temperature temp=79.0,Quality="OK (0x0)" 1597820490000000000 +``` + +With 'DataType' entered in Additional Metrics, this node configuration +produces a metric like this: + +```text +opcua,id=ns\=3;s\=Temperature temp=79.0,Quality="OK (0x0)",DataType="Float" 1597820490000000000 +``` + +If the value is an array, each element is unpacked into a field +using indexed keys. For example: +```text +opcua,id=ns\=3;s\=Temperature temp[0]=79.0,temp[1]=38.9,Quality="OK (0x0)",DataType="Float" 1597820490000000000 ``` ## Group Configuration @@ -129,29 +232,60 @@ The output metric will include tags set in the group and the node. If a tag with the same name is set in both places, the tag value from the node is used. -This example group configuration has two groups with two nodes each: +This example group configuration has three groups with two nodes each: ```toml + # Group 1 + [[inputs.opcua.group]] + name = "group1_metric_name" + namespace = "3" + identifier_type = "i" + default_tags = { group1_tag = "val1" } + [[inputs.opcua.group.nodes]] + name = "name" + identifier = "1001" + default_tags = { node1_tag = "val2" } + [[inputs.opcua.group.nodes]] + name = "name" + identifier = "1002" + default_tags = {node1_tag = "val3"} + + # Group 2 [[inputs.opcua.group]] - name="group1_metric_name" - namespace="3" - identifier_type="i" - tags=[["group1_tag", "val1"]] - nodes = [ - {name="name", identifier="1001", tags=[["node1_tag", "val2"]]}, - {name="name", identifier="1002", tags=[["node1_tag", "val3"]]}, - ] + name = "group2_metric_name" + namespace = "3" + identifier_type = "i" + default_tags = { group2_tag = "val3" } + [[inputs.opcua.group.nodes]] + name = "saw" + identifier = "1003" + default_tags = { node2_tag = "val4" } + [[inputs.opcua.group.nodes]] + name = "sin" + identifier = "1004" + + # Group 3 [[inputs.opcua.group]] - name="group2_metric_name" - namespace="3" - identifier_type="i" - tags=[["group2_tag", "val3"]] - nodes = [ - {name="saw", identifier="1003", tags=[["node2_tag", "val4"]]}, - {name="sin", identifier="1004"}, - ] + name = "group3_metric_name" + namespace = "3" + identifier_type = "i" + default_tags = { group3_tag = "val5" } + nodes = [ + {name="name", identifier="1001"}, + {name="name", identifier="1002"}, + ] ``` +## Connection Service + +This plugin actively reads to retrieve data from the OPC server. +This is done every `interval`. + +## Metrics + +The metrics collected by this input plugin will depend on the +configured `nodes` and `group`. + ## Example Output ```text diff --git a/src/writeData/components/telegrafPlugins/openldap.md b/src/writeData/components/telegrafPlugins/openldap.md index 7d07eb1f0e..25ec634606 100644 --- a/src/writeData/components/telegrafPlugins/openldap.md +++ b/src/writeData/components/telegrafPlugins/openldap.md @@ -1,6 +1,27 @@ # OpenLDAP Input Plugin -This plugin gathers metrics from OpenLDAP's cn=Monitor backend. +This plugin gathers metrics from [OpenLDAP][openldap]'s `cn=Monitor` backend. +To use this plugin you must enable the [slapd monitoring][slapd_docs] backend. + +> [!NOTE] +> It is recommended to use the newer [`ldap` input plugin][ldap_plugin] instead. + +⭐ Telegraf v1.4.0 +🏷️ server, network +💻 all + +[openldap]: https://www.openldap.org/ +[slapd_docs]: https://www.openldap.org/devel/admin/monitoringslapd.html +[ldap_plugin]: /plugins/inputs/ldap/README.md + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -30,15 +51,12 @@ This plugin gathers metrics from OpenLDAP's cn=Monitor backend. reverse_metric_names = true ``` -To use this plugin you must enable the [slapd -monitoring](https://www.openldap.org/devel/admin/monitoringslapd.html) backend. - ## Metrics -All **monitorCounter**, **monitoredInfo**, **monitorOpInitiated**, and -**monitorOpCompleted** attributes are gathered based on this LDAP query: +All `monitorCounter`, `monitoredInfo`, `monitorOpInitiated`, and +`monitorOpCompleted` attributes are gathered based on this LDAP query: -```sh +```text (|(objectClass=monitorCounterObject)(objectClass=monitorOperation)(objectClass=monitoredObject)) ``` @@ -47,59 +65,56 @@ Metric names are based on their entry DN with the cn=Monitor base removed. If `reverse_metric_names` is set to `true`, the names are reversed. This is recommended as it allows the names to sort more naturally. -Metrics for the **monitorOp*** attributes have **_initiated** and **_completed** -added to the base name as appropriate. +Metrics for the `monitorOp*` attributes have `_initiated` and `_completed` added +to the base name as appropriate. An OpenLDAP 2.4 server will provide these metrics: - openldap - - connections_current - - connections_max_file_descriptors - - connections_total - - operations_abandon_completed - - operations_abandon_initiated - - operations_add_completed - - operations_add_initiated - - operations_bind_completed - - operations_bind_initiated - - operations_compare_completed - - operations_compare_initiated - - operations_delete_completed - - operations_delete_initiated - - operations_extended_completed - - operations_extended_initiated - - operations_modify_completed - - operations_modify_initiated - - operations_modrdn_completed - - operations_modrdn_initiated - - operations_search_completed - - operations_search_initiated - - operations_unbind_completed - - operations_unbind_initiated - - statistics_bytes - - statistics_entries - - statistics_pdu - - statistics_referrals - - threads_active - - threads_backload - - threads_max - - threads_max_pending - - threads_open - - threads_pending - - threads_starting - - time_uptime - - waiters_read - - waiters_write - -### Tags - -- server= # value from config -- port= # value from config + - tags: + - server + - port + - fields: + - connections_current + - connections_max_file_descriptors + - connections_total + - operations_abandon_completed + - operations_abandon_initiated + - operations_add_completed + - operations_add_initiated + - operations_bind_completed + - operations_bind_initiated + - operations_compare_completed + - operations_compare_initiated + - operations_delete_completed + - operations_delete_initiated + - operations_extended_completed + - operations_extended_initiated + - operations_modify_completed + - operations_modify_initiated + - operations_modrdn_completed + - operations_modrdn_initiated + - operations_search_completed + - operations_search_initiated + - operations_unbind_completed + - operations_unbind_initiated + - statistics_bytes + - statistics_entries + - statistics_pdu + - statistics_referrals + - threads_active + - threads_backload + - threads_max + - threads_max_pending + - threads_open + - threads_pending + - threads_starting + - time_uptime + - waiters_read + - waiters_write ## Example Output -```shell -$ telegraf -config telegraf.conf -input-filter openldap -test --debug -* Plugin: inputs.openldap, Collection 1 -> openldap,server=localhost,port=389,host=niska.ait.psu.edu operations_bind_initiated=10i,operations_unbind_initiated=6i,operations_modrdn_completed=0i,operations_delete_initiated=0i,operations_add_completed=2i,operations_delete_completed=0i,operations_abandon_completed=0i,statistics_entries=1516i,threads_open=2i,threads_active=1i,waiters_read=1i,operations_modify_completed=0i,operations_extended_initiated=4i,threads_pending=0i,operations_search_initiated=36i,operations_compare_initiated=0i,connections_max_file_descriptors=4096i,operations_modify_initiated=0i,operations_modrdn_initiated=0i,threads_max=16i,time_uptime=6017i,connections_total=1037i,connections_current=1i,operations_add_initiated=2i,statistics_bytes=162071i,operations_unbind_completed=6i,operations_abandon_initiated=0i,statistics_pdu=1566i,threads_max_pending=0i,threads_backload=1i,waiters_write=0i,operations_bind_completed=10i,operations_search_completed=35i,operations_compare_completed=0i,operations_extended_completed=4i,statistics_referrals=0i,threads_starting=0i 1516912070000000000 +```text +openldap,server=localhost,port=389,host=niska.ait.psu.edu operations_bind_initiated=10i,operations_unbind_initiated=6i,operations_modrdn_completed=0i,operations_delete_initiated=0i,operations_add_completed=2i,operations_delete_completed=0i,operations_abandon_completed=0i,statistics_entries=1516i,threads_open=2i,threads_active=1i,waiters_read=1i,operations_modify_completed=0i,operations_extended_initiated=4i,threads_pending=0i,operations_search_initiated=36i,operations_compare_initiated=0i,connections_max_file_descriptors=4096i,operations_modify_initiated=0i,operations_modrdn_initiated=0i,threads_max=16i,time_uptime=6017i,connections_total=1037i,connections_current=1i,operations_add_initiated=2i,statistics_bytes=162071i,operations_unbind_completed=6i,operations_abandon_initiated=0i,statistics_pdu=1566i,threads_max_pending=0i,threads_backload=1i,waiters_write=0i,operations_bind_completed=10i,operations_search_completed=35i,operations_compare_completed=0i,operations_extended_completed=4i,statistics_referrals=0i,threads_starting=0i 1516912070000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/openntpd.md b/src/writeData/components/telegrafPlugins/openntpd.md index 25eaddd47f..5db00f347a 100644 --- a/src/writeData/components/telegrafPlugins/openntpd.md +++ b/src/writeData/components/telegrafPlugins/openntpd.md @@ -1,24 +1,26 @@ # OpenNTPD Input Plugin -Get standard NTP query metrics from [OpenNTPD][] using the ntpctl command. - -[OpenNTPD]: http://www.openntpd.org/ - -Below is the documentation of the various headers returned from the NTP query -command when running `ntpctl -s peers`. - -- remote – The remote peer or server being synced to. -- wt – the peer weight -- tl – the peer trust level -- st (stratum) – The remote peer or server Stratum -- next – number of seconds until the next poll -- poll – polling interval in seconds -- delay – Round trip communication delay to the remote peer -or server (milliseconds); -- offset – Mean offset (phase) in the times reported between this local host and -the remote peer or server (RMS, milliseconds); -- jitter – Mean deviation (jitter) in the time reported for that remote peer or -server (RMS of difference of multiple time samples, milliseconds); +This plugin gathers metrics from [OpenNTPD][openntpd] using the `ntpctl` +command. + +> [!NOTE] +> The `ntpctl` binary must be present on the system and executable by Telegraf. +> The plugin supports using `sudo` for execution. + +⭐ Telegraf v1.12.0 +🏷️ server, network +💻 all + +[openntpd]: http://www.openntpd.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -32,32 +34,17 @@ server (RMS of difference of multiple time samples, milliseconds); # binary = "/usr/sbin/ntpctl" ## Maximum time the ntpctl binary is allowed to run. - # timeout = "5ms" + # timeout = "5s" ``` -## Metrics +### Permissions -- ntpctl - - tags: - - remote - - stratum - - fields: - - delay (float, milliseconds) - - jitter (float, milliseconds) - - offset (float, milliseconds) - - poll (int, seconds) - - next (int, seconds) - - wt (int) - - tl (int) +It's important to note that this plugin references `ntpctl`, which may require +additional permissions to execute successfully. Depending on the user/group +permissions of the telegraf user executing this plugin, you may need to alter +the group membership, set facls, or use sudo. -## Permissions - -It's important to note that this plugin references ntpctl, which may require -additional permissions to execute successfully. -Depending on the user/group permissions of the telegraf user executing this -plugin, you may need to alter the group membership, set facls, or use sudo. - -**Group membership (Recommended)**: +#### Group membership (recommended) ```bash $ groups telegraf @@ -69,7 +56,8 @@ $ groups telegraf telegraf : telegraf ntpd ``` -**Sudo privileges**: +#### Sudo privileges + If you use this method, you will need the following in your telegraf config: ```toml @@ -89,9 +77,24 @@ Defaults!NTPCTL !logfile, !syslog, !pam_session Please use the solution you see as most appropriate. +## Metrics + +- ntpctl + - tags: + - remote (remote peer for synchorization) + - stratum (remote peer stratum) + - fields: + - delay (round trip delay to the remote peer in milliseconds; `float`) + - jitter (mean deviation (jitter) for remote peer; `float`) + - offset (mean offset (phase) to remote peer in milliseconds; `float`) + - poll (polling interval in seconds; `int`) + - next (number of seconds until the next poll; `int`) + - wt (peer weight; `int`) + - tl (peer trust level; `int`) + ## Example Output -```shell +```text openntpd,remote=194.57.169.1,stratum=2,host=localhost tl=10i,poll=1007i, offset=2.295,jitter=3.896,delay=53.766,next=266i,wt=1i 1514454299000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/opensmtpd.md b/src/writeData/components/telegrafPlugins/opensmtpd.md index 2a8a5fad1f..5349fb16dc 100644 --- a/src/writeData/components/telegrafPlugins/opensmtpd.md +++ b/src/writeData/components/telegrafPlugins/opensmtpd.md @@ -1,7 +1,26 @@ # OpenSMTPD Input Plugin -This plugin gathers stats from [OpenSMTPD - a FREE implementation of the -server-side SMTP protocol](https://www.opensmtpd.org/) +This plugin gathers statistics from [OpenSMTPD][opensmtp] using the `smtpctl` +binary. + +> [!NOTE] +> The `smtpctl` binary must be present on the system and executable by Telegraf. +> The plugin supports using `sudo` for execution. + +⭐ Telegraf v1.5.0 +🏷️ server, network +💻 all + +[opensmtp]: https://www.opensmtpd.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -18,10 +37,50 @@ server-side SMTP protocol](https://www.opensmtpd.org/) #timeout = "1s" ``` +### Permissions + +It's important to note that this plugin references `smtpctl`, which may require +additional permissions to execute successfully. Depending on the user/group +permissions of the telegraf user executing this plugin, you may need to alter +the group membership, set facls, or use sudo. + +#### Group membership (recommended) + +```bash +$ groups telegraf +telegraf : telegraf + +$ usermod -a -G opensmtpd telegraf + +$ groups telegraf +telegraf : telegraf opensmtpd +``` + +#### Sudo privileges + +If you use this method, you will need the following in your telegraf config: + +```toml +[[inputs.opensmtpd]] + use_sudo = true +``` + +You will also need to update your sudoers file: + +```bash +$ visudo +# Add the following line: +Cmnd_Alias SMTPCTL = /usr/sbin/smtpctl +telegraf ALL=(ALL) NOPASSWD: SMTPCTL +Defaults!SMTPCTL !logfile, !syslog, !pam_session +``` + +Please use the solution you see as most appropriate. + ## Metrics -This is the full list of stats provided by smtpctl and potentially collected by -telegram depending of your smtpctl configuration. +This is the full list of statistics provided by smtpctl and potentially +collected by telegraf depending of your smtpctl configuration. - smtpctl bounce_envelope @@ -61,50 +120,8 @@ telegram depending of your smtpctl configuration. smtp_session_local uptime -## Permissions - -It's important to note that this plugin references smtpctl, which may require -additional permissions to execute successfully. Depending on the user/group -permissions of the telegraf user executing this plugin, you may need to alter -the group membership, set facls, or use sudo. - -**Group membership (Recommended)**: - -```bash -$ groups telegraf -telegraf : telegraf - -$ usermod -a -G opensmtpd telegraf - -$ groups telegraf -telegraf : telegraf opensmtpd -``` - -**Sudo privileges**: -If you use this method, you will need the following in your telegraf config: - -```toml -[[inputs.opensmtpd]] - use_sudo = true -``` - -You will also need to update your sudoers file: - -```bash -$ visudo -# Add the following line: -Cmnd_Alias SMTPCTL = /usr/sbin/smtpctl -telegraf ALL=(ALL) NOPASSWD: SMTPCTL -Defaults!SMTPCTL !logfile, !syslog, !pam_session -``` - -Please use the solution you see as most appropriate. - ## Example Output -```shell - telegraf --config etc/telegraf.conf --input-filter opensmtpd --test -* Plugin: inputs.opensmtpd, Collection 1 -> opensmtpd,host=localhost scheduler_delivery_tempfail=822,mta_host=10,mta_task_running=4,queue_bounce=13017,scheduler_delivery_permfail=51022,mta_relay=7,queue_evpcache_size=2,scheduler_envelope_expired=26,bounce_message=0,mta_domain=7,queue_evpcache_update_hit=848,smtp_session_local=12294,bounce_envelope=0,queue_evpcache_load_hit=4389703,scheduler_ramqueue_update=0,mta_route=3,scheduler_delivery_ok=2149489,smtp_session_inet4=2131997,control_session=1,scheduler_envelope_incoming=0,uptime=10346728,scheduler_ramqueue_envelope=2,smtp_session=0,bounce_session=0,mta_envelope=2,mta_session=6,mta_task=2,scheduler_ramqueue_message=2,mta_connector=7,mta_source=1,scheduler_envelope=2,scheduler_envelope_inflight=2 1510220300000000000 - +```text +opensmtpd,host=localhost scheduler_delivery_tempfail=822,mta_host=10,mta_task_running=4,queue_bounce=13017,scheduler_delivery_permfail=51022,mta_relay=7,queue_evpcache_size=2,scheduler_envelope_expired=26,bounce_message=0,mta_domain=7,queue_evpcache_update_hit=848,smtp_session_local=12294,bounce_envelope=0,queue_evpcache_load_hit=4389703,scheduler_ramqueue_update=0,mta_route=3,scheduler_delivery_ok=2149489,smtp_session_inet4=2131997,control_session=1,scheduler_envelope_incoming=0,uptime=10346728,scheduler_ramqueue_envelope=2,smtp_session=0,bounce_session=0,mta_envelope=2,mta_session=6,mta_task=2,scheduler_ramqueue_message=2,mta_connector=7,mta_source=1,scheduler_envelope=2,scheduler_envelope_inflight=2 1510220300000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/openstack.md b/src/writeData/components/telegrafPlugins/openstack.md index 5ff74c91ee..66319cd6b2 100644 --- a/src/writeData/components/telegrafPlugins/openstack.md +++ b/src/writeData/components/telegrafPlugins/openstack.md @@ -1,61 +1,30 @@ # OpenStack Input Plugin -Collects the metrics from following services of OpenStack: +This plugin collects metrics about services from [OpenStack][openstack] +endpoints. -* CINDER(Block Storage) -* GLANCE(Image service) -* HEAT(Orchestration) -* KEYSTONE(Identity service) -* NEUTRON(Networking) -* NOVA(Compute Service) +> [!CAUTION] +> Due to the large number of unique tags generated by the plugin it is +> **highly recommended** to use [metric filtering][metric_filtering] like +> `taginclude` and `tagexclude` to reduce cardinality. -At present this plugin requires the following APIs: - -* blockstorage v3 -* compute v2 -* identity v3 -* networking v2 -* orchestration v1 - -## Configuration and Recommendations - -### Recommendations +⭐ Telegraf v1.21.0 +🏷️ server, cloud +💻 all -Due to the large number of unique tags that this plugin generates, in order to -keep the cardinality down it is **highly recommended** to use -[modifiers](https://github.com/influxdata/telegraf/tree/master/docs/CONFIGURATION.md#modifiers) like `tagexclude` to -discard unwanted tags. +[openstack]: https://www.openstack.org/ +[metric_filtering]: /docs/CONFIGURATION.md#modifiers -For deployments with only a small number of VMs and hosts, a small polling -interval (e.g. seconds-minutes) is acceptable. For larger deployments, polling a -large number of systems will impact performance. Use the `interval` option to -change how often the plugin is run: +## Global configuration options -`interval`: How often a metric is gathered. Setting this value at the plugin -level overrides the global agent interval setting. - -Also, consider polling OpenStack services at different intervals depending on -your requirements. This will help with load and cardinality as well. - -```toml -[[inputs.openstack]] - interval = 5m - .... - authentication_endpoint = "https://my.openstack.cloud:5000" - ... - enabled_services = ["nova_services"] - .... +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -[[inputs.openstack]] - interval = 30m - .... - authentication_endpoint = "https://my.openstack.cloud:5000" - ... - enabled_services = ["services", "projects", "hypervisors", "flavors", "networks", "volumes"] - .... -``` +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins -### Configuration +## Configuration ```toml @sample.conf # Collects performance metrics from OpenStack services @@ -76,12 +45,15 @@ your requirements. This will help with load and cardinality as well. password = "password" ## Available services are: - ## "agents", "aggregates", "flavors", "hypervisors", "networks", "nova_services", - ## "ports", "projects", "servers", "services", "stacks", "storage_pools", "subnets", "volumes" + ## "agents", "aggregates", "cinder_services", "flavors", "hypervisors", + ## "networks", "nova_services", "ports", "projects", "servers", + ## "serverdiagnostics", "services", "stacks", "storage_pools", "subnets", + ## "volumes" # enabled_services = ["services", "projects", "hypervisors", "flavors", "networks", "volumes"] - ## Collect Server Diagnostics - # server_diagnotics = false + ## Query all instances of all tenants for the volumes and server services + ## NOTE: Usually this is only permitted for administrators! + # query_all_tenants = true ## output secrets (such as adminPass(for server) and UserID(for volume)). # output_secrets = false @@ -111,261 +83,314 @@ your requirements. This will help with load and cardinality as well. # measure_openstack_requests = false ``` +### Available services to collect + +This plugin allows to collects metrics from following services: + +- CINDER(Block Storage) +- GLANCE(Image service) +- HEAT(Orchestration) +- KEYSTONE(Identity service) +- NEUTRON(Networking) +- NOVA(Compute Service) + +### API requirements + +At present this plugin requires the following APIs: + +- blockstorage v3 +- compute v2 +- identity v3 +- networking v2 +- orchestration v1 + +### Recommendations + +Due to the large number of unique tags generated by the plugin it is +**highly recommended** to use [metric filtering][metric_filtering] like +`taginclude` and `tagexclude` to reduce cardinality. + +For deployments with only a small number of VMs and hosts, a small polling +interval (e.g. seconds-minutes) is acceptable. For larger deployments, polling a +large number of systems will impact performance. Use the `interval` option to +change how often the plugin is run. + +Also, consider polling OpenStack services at different intervals depending on +your requirements. This will help with load and cardinality as well. + +```toml +[[inputs.openstack]] + interval = "5m" + .... + authentication_endpoint = "https://my.openstack.cloud:5000" + ... + enabled_services = ["nova_services"] + .... + +[[inputs.openstack]] + interval = "30m" + .... + authentication_endpoint = "https://my.openstack.cloud:5000" + ... + enabled_services = ["services", "projects", "hypervisors", "flavors", "networks", "volumes"] + .... +``` + ## Metrics -* openstack_aggregate - * name - * aggregate_host [string] - * aggregate_hosts [integer] - * created_at [string] - * deleted [boolean] - * deleted_at [string] - * id [integer] - * updated_at [string] -* openstack_flavor - * is_public - * name - * disk [integer] - * ephemeral [integer] - * id [string] - * ram [integer] - * rxtx_factor [float] - * swap [integer] - * vcpus [integer] -* openstack_hypervisor - * cpu_arch - * cpu_feature_tsc - * cpu_feature_tsc-deadline - * cpu_feature_tsc_adjust - * cpu_feature_tsx-ctrl - * cpu_feature_vme - * cpu_feature_vmx - * cpu_feature_x2apic - * cpu_feature_xgetbv1 - * cpu_feature_xsave - * cpu_model - * cpu_vendor - * hypervisor_hostname - * hypervisor_type - * hypervisor_version - * service_host - * service_id - * state - * status - * cpu_topology_cores [integer] - * cpu_topology_sockets [integer] - * cpu_topology_threads [integer] - * current_workload [integer] - * disk_available_least [integer] - * free_disk_gb [integer] - * free_ram_mb [integer] - * host_ip [string] - * id [string] - * local_gb [integer] - * local_gb_used [integer] - * memory_mb [integer] - * memory_mb_used [integer] - * running_vms [integer] - * vcpus [integer] - * vcpus_used [integer] -* openstack_identity - * description - * domain_id - * name - * parent_id - * enabled boolean - * id string - * is_domain boolean - * projects integer -* openstack_network - * name - * openstack_tags_xyz - * project_id - * status - * tenant_id - * admin_state_up [boolean] - * availability_zone_hints [string] - * created_at [string] - * id [string] - * shared [boolean] - * subnet_id [string] - * subnets [integer] - * updated_at [string] -* openstack_neutron_agent - * agent_host - * agent_type - * availability_zone - * binary - * topic - * admin_state_up [boolean] - * alive [boolean] - * created_at [string] - * heartbeat_timestamp [string] - * id [string] - * resources_synced [boolean] - * started_at [string] -* openstack_nova_service - * host_machine - * name - * state - * status - * zone - * disabled_reason [string] - * forced_down [boolean] - * id [string] - * updated_at [string] -* openstack_port - * device_id - * device_owner - * name - * network_id - * project_id - * status - * tenant_id - * admin_state_up [boolean] - * allowed_address_pairs [integer] - * fixed_ips [integer] - * id [string] - * ip_address [string] - * mac_address [string] - * security_groups [string] - * subnet_id [string] -* openstack_request_duration - * agents [integer] - * aggregates [integer] - * flavors [integer] - * hypervisors [integer] - * networks [integer] - * nova_services [integer] - * ports [integer] - * projects [integer] - * servers [integer] - * stacks [integer] - * storage_pools [integer] - * subnets [integer] - * volumes [integer] -* openstack_server - * flavor - * host_id - * host_name - * image - * key_name - * name - * project - * status - * tenant_id - * user_id - * accessIPv4 [string] - * accessIPv6 [string] - * addresses [integer] - * adminPass [string] - * created [string] - * disk_gb [integer] - * fault_code [integer] - * fault_created [string] - * fault_details [string] - * fault_message [string] - * id [string] - * progress [integer] - * ram_mb [integer] - * security_groups [integer] - * updated [string] - * vcpus [integer] - * volume_id [string] - * volumes_attached [integer] -* openstack_server_diagnostics - * disk_name - * no_of_disks - * no_of_ports - * port_name - * server_id - * cpu0_time [float] - * cpu1_time [float] - * cpu2_time [float] - * cpu3_time [float] - * cpu4_time [float] - * cpu5_time [float] - * cpu6_time [float] - * cpu7_time [float] - * disk_errors [float] - * disk_read [float] - * disk_read_req [float] - * disk_write [float] - * disk_write_req [float] - * memory [float] - * memory-actual [float] - * memory-rss [float] - * memory-swap_in [float] - * port_rx [float] - * port_rx_drop [float] - * port_rx_errors [float] - * port_rx_packets [float] - * port_tx [float] - * port_tx_drop [float] - * port_tx_errors [float] - * port_tx_packets [float] -* openstack_service - * name - * service_enabled [boolean] - * service_id [string] -* openstack_storage_pool - * driver_version - * name - * storage_protocol - * vendor_name - * volume_backend_name - * free_capacity_gb [float] - * total_capacity_gb [float] -* openstack_subnet - * cidr - * gateway_ip - * ip_version - * name - * network_id - * openstack_tags_subnet_type_PRV - * project_id - * tenant_id - * allocation_pools [string] - * dhcp_enabled [boolean] - * dns_nameservers [string] - * id [string] -* openstack_volume - * attachment_attachment_id - * attachment_device - * attachment_host_name - * availability_zone - * bootable - * description - * name - * status - * user_id - * volume_type - * attachment_attached_at [string] - * attachment_server_id [string] - * created_at [string] - * encrypted [boolean] - * id [string] - * multiattach [boolean] - * size [integer] - * total_attachments [integer] - * updated_at [string] +- openstack_aggregate + - name + - aggregate_host [string] + - aggregate_hosts [integer] + - created_at [string] + - deleted [boolean] + - deleted_at [string] + - id [integer] + - updated_at [string] +- openstack_flavor + - is_public + - name + - disk [integer] + - ephemeral [integer] + - id [string] + - ram [integer] + - rxtx_factor [float] + - swap [integer] + - vcpus [integer] +- openstack_hypervisor + - cpu_arch + - cpu_feature_tsc + - cpu_feature_tsc-deadline + - cpu_feature_tsc_adjust + - cpu_feature_tsx-ctrl + - cpu_feature_vme + - cpu_feature_vmx + - cpu_feature_x2apic + - cpu_feature_xgetbv1 + - cpu_feature_xsave + - cpu_model + - cpu_vendor + - hypervisor_hostname + - hypervisor_type + - hypervisor_version + - service_host + - service_id + - state + - status + - cpu_topology_cores [integer] + - cpu_topology_sockets [integer] + - cpu_topology_threads [integer] + - current_workload [integer] + - disk_available_least [integer] + - free_disk_gb [integer] + - free_ram_mb [integer] + - host_ip [string] + - id [string] + - local_gb [integer] + - local_gb_used [integer] + - memory_mb [integer] + - memory_mb_used [integer] + - running_vms [integer] + - vcpus [integer] + - vcpus_used [integer] +- openstack_identity + - description + - domain_id + - name + - parent_id + - enabled boolean + - id string + - is_domain boolean + - projects integer +- openstack_network + - name + - openstack_tags_xyz + - project_id + - status + - tenant_id + - admin_state_up [boolean] + - availability_zone_hints [string] + - created_at [string] + - id [string] + - shared [boolean] + - subnet_id [string] + - subnets [integer] + - updated_at [string] +- openstack_neutron_agent + - agent_host + - agent_type + - availability_zone + - binary + - topic + - admin_state_up [boolean] + - alive [boolean] + - created_at [string] + - heartbeat_timestamp [string] + - id [string] + - resources_synced [boolean] + - started_at [string] +- openstack_nova_service + - host_machine + - name + - state + - status + - zone + - disabled_reason [string] + - forced_down [boolean] + - id [string] + - updated_at [string] +- openstack_port + - device_id + - device_owner + - name + - network_id + - project_id + - status + - tenant_id + - admin_state_up [boolean] + - allowed_address_pairs [integer] + - fixed_ips [integer] + - id [string] + - ip_address [string] + - mac_address [string] + - security_groups [string] + - subnet_id [string] +- openstack_request_duration + - agents [integer] + - aggregates [integer] + - flavors [integer] + - hypervisors [integer] + - networks [integer] + - nova_services [integer] + - ports [integer] + - projects [integer] + - servers [integer] + - stacks [integer] + - storage_pools [integer] + - subnets [integer] + - volumes [integer] +- openstack_server + - flavor + - host_id + - host_name + - image + - key_name + - name + - project + - status + - tenant_id + - user_id + - accessIPv4 [string] + - accessIPv6 [string] + - addresses [integer] + - adminPass [string] + - created [string] + - disk_gb [integer] + - fault_code [integer] + - fault_created [string] + - fault_details [string] + - fault_message [string] + - id [string] + - progress [integer] + - ram_mb [integer] + - security_groups [integer] + - updated [string] + - vcpus [integer] + - volume_id [string] + - volumes_attached [integer] +- openstack_server_diagnostics + - disk_name + - no_of_disks + - no_of_ports + - port_name + - server_id + - cpu0_time [float] + - cpu1_time [float] + - cpu2_time [float] + - cpu3_time [float] + - cpu4_time [float] + - cpu5_time [float] + - cpu6_time [float] + - cpu7_time [float] + - disk_errors [float] + - disk_read [float] + - disk_read_req [float] + - disk_write [float] + - disk_write_req [float] + - memory [float] + - memory-actual [float] + - memory-rss [float] + - memory-swap_in [float] + - port_rx [float] + - port_rx_drop [float] + - port_rx_errors [float] + - port_rx_packets [float] + - port_tx [float] + - port_tx_drop [float] + - port_tx_errors [float] + - port_tx_packets [float] +- openstack_service + - name + - service_enabled [boolean] + - service_id [string] +- openstack_storage_pool + - driver_version + - name + - storage_protocol + - vendor_name + - volume_backend_name + - free_capacity_gb [float] + - total_capacity_gb [float] +- openstack_subnet + - cidr + - gateway_ip + - ip_version + - name + - network_id + - openstack_tags_subnet_type_PRV + - project_id + - tenant_id + - allocation_pools [string] + - dhcp_enabled [boolean] + - dns_nameservers [string] + - id [string] +- openstack_volume + - attachment_attachment_id + - attachment_device + - attachment_host_name + - availability_zone + - bootable + - description + - name + - status + - user_id + - volume_type + - attachment_attached_at [string] + - attachment_server_id [string] + - created_at [string] + - encrypted [boolean] + - id [string] + - multiattach [boolean] + - size [integer] + - total_attachments [integer] + - updated_at [string] ## Example Output ```text -> openstack_neutron_agent,agent_host=vim2,agent_type=DHCP\ agent,availability_zone=nova,binary=neutron-dhcp-agent,host=telegraf_host,topic=dhcp_agent admin_state_up=true,alive=true,created_at="2021-01-07T03:40:53Z",heartbeat_timestamp="2021-10-14T07:46:40Z",id="17e1e446-d7da-4656-9e32-67d3690a306f",resources_synced=false,started_at="2021-07-02T21:47:42Z" 1634197616000000000 -> openstack_aggregate,host=telegraf_host,name=non-dpdk aggregate_host="vim3",aggregate_hosts=2i,created_at="2021-02-01T18:28:00Z",deleted=false,deleted_at="0001-01-01T00:00:00Z",id=3i,updated_at="0001-01-01T00:00:00Z" 1634197617000000000 -> openstack_flavor,host=telegraf_host,is_public=true,name=hwflavor disk=20i,ephemeral=0i,id="f89785c0-6b9f-47f5-a02e-f0fcbb223163",ram=8192i,rxtx_factor=1,swap=0i,vcpus=8i 1634197617000000000 -> openstack_hypervisor,cpu_arch=x86_64,cpu_feature_3dnowprefetch=true,cpu_feature_abm=true,cpu_feature_acpi=true,cpu_feature_adx=true,cpu_feature_aes=true,cpu_feature_apic=true,cpu_feature_xtpr=true,cpu_model=C-Server,cpu_vendor=xyz,host=telegraf_host,hypervisor_hostname=vim3,hypervisor_type=QEMU,hypervisor_version=4002000,service_host=vim3,service_id=192,state=up,status=enabled cpu_topology_cores=28i,cpu_topology_sockets=1i,cpu_topology_threads=2i,current_workload=0i,disk_available_least=2596i,free_disk_gb=2744i,free_ram_mb=374092i,host_ip="xx:xx:xx:x::xxx",id="12",local_gb=3366i,local_gb_used=622i,memory_mb=515404i,memory_mb_used=141312i,running_vms=15i,vcpus=0i,vcpus_used=72i 1634197618000000000 -> openstack_network,host=telegraf_host,name=Network\ 2,project_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,status=active,tenant_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx admin_state_up=true,availability_zone_hints="",created_at="2021-07-29T15:58:25Z",id="f5af5e71-e890-4245-a377-d4d86273c319",shared=false,subnet_id="2f7341c6-074d-42aa-9abc-71c662d9b336",subnets=1i,updated_at="2021-09-02T16:46:48Z" 1634197618000000000 -> openstack_nova_service,host=telegraf_host,host_machine=vim3,name=nova-compute,state=up,status=enabled,zone=nova disabled_reason="",forced_down=false,id="192",updated_at="2021-10-14T07:46:52Z" 1634197619000000000 -> openstack_port,device_id=a043b8b3-2831-462a-bba8-19088f3db45a,device_owner=compute:nova,host=telegraf_host,name=offload-port1,network_id=6b40d744-9a48-43f2-a4c8-2e0ccb45ac96,project_id=71f9bc44621234f8af99a3949258fc7b,status=ACTIVE,tenant_id=71f9bc44621234f8af99a3949258fc7b admin_state_up=true,allowed_address_pairs=0i,fixed_ips=1i,id="fb64626a-07e1-4d78-a70d-900e989537cc",ip_address="1.1.1.5",mac_address="xx:xx:xx:xx:xx:xx",security_groups="",subnet_id="eafa1eca-b318-4746-a55a-682478466689" 1634197620000000000 -> openstack_identity,domain_id=default,host=telegraf_host,name=service,parent_id=default enabled=true,id="a0877dd2ed1d4b5f952f5689bc04b0cb",is_domain=false,projects=7i 1634197621000000000 -> openstack_server,flavor=0d438971-56cf-4f86-801f-7b04b29384cb,host=telegraf_host,host_id=c0fe05b14261d35cf8748a3f5aae1234b88c2fd62b69fe24ca4a27e9,host_name=vim1,image=b295f1f3-1w23-470c-8734-197676eedd16,name=test-VM7,project=admin,status=active,tenant_id=80ac889731f540498fb1dc78e4bcd5ed,user_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx accessIPv4="",accessIPv6="",addresses=1i,adminPass="",created="2021-09-07T14:40:11Z",disk_gb=8i,fault_code=0i,fault_created="0001-01-01T00:00:00Z",fault_details="",fault_message="",id="db92ee0d-459b-458e-9fe3-2be5ec7c87e1",progress=0i,ram_mb=16384i,security_groups=1i,updated="2021-09-07T14:40:19Z",vcpus=4i,volumes_attached=0i 1634197656000000000 -> openstack_service,host=telegraf_host,name=identity service_enabled=true,service_id="ad605eff92444a158d0f78768f2c4668" 1634197656000000000 -> openstack_storage_pool,driver_version=1.0.0,host=telegraf_host,name=storage_bloack_1,storage_protocol=nfs,vendor_name=xyz,volume_backend_name=abc free_capacity_gb=4847.54,total_capacity_gb=4864 1634197658000000000 -> openstack_subnet,cidr=10.10.20.10/28,gateway_ip=10.10.20.17,host=telegraf_host,ip_version=4,name=IPv4_Subnet_2,network_id=73c6e1d3-f522-4a3f-8e3c-762a0c06d68b,openstack_tags_lab=True,project_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,tenant_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx allocation_pools="10.10.20.11-10.10.20.30",dhcp_enabled=true,dns_nameservers="",id="db69fbb2-9ca1-4370-8c78-82a27951c94b" 1634197660000000000 -> openstack_volume,attachment_attachment_id=c83ca0d6-c467-44a0-ac1f-f87d769c0c65,attachment_device=/dev/vda,attachment_host_name=vim1,availability_zone=nova,bootable=true,host=telegraf_host,status=in-use,user_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,volume_type=storage_bloack_1 attachment_attached_at="2021-01-12T21:02:04Z",attachment_server_id="c0c6b4af-0d26-4a0b-a6b4-4ea41fa3bb4a",created_at="2021-01-12T21:01:47Z",encrypted=false,id="d4204f1b-b1ae-1233-b25c-a57d91d2846e",multiattach=false,size=80i,total_attachments=1i,updated_at="2021-01-12T21:02:04Z" 1634197660000000000 -> openstack_request_duration,host=telegraf_host networks=703214354i 1634197660000000000 -> openstack_server_diagnostics,disk_name=vda,host=telegraf_host,no_of_disks=1,no_of_ports=2,port_name=vhu1234566c-9c,server_id=fdddb58c-bbb9-1234-894b-7ae140178909 cpu0_time=4924220000000,cpu1_time=218809610000000,cpu2_time=218624300000000,cpu3_time=220505700000000,disk_errors=-1,disk_read=619156992,disk_read_req=35423,disk_write=8432728064,disk_write_req=882445,memory=8388608,memory-actual=8388608,memory-rss=37276,memory-swap_in=0,port_rx=410516469288,port_rx_drop=13373626,port_rx_errors=-1,port_rx_packets=52140392,port_tx=417312195654,port_tx_drop=0,port_tx_errors=0,port_tx_packets=321385978 1634197660000000000 +openstack_neutron_agent,agent_host=vim2,agent_type=DHCP\ agent,availability_zone=nova,binary=neutron-dhcp-agent,host=telegraf_host,topic=dhcp_agent admin_state_up=true,alive=true,created_at="2021-01-07T03:40:53Z",heartbeat_timestamp="2021-10-14T07:46:40Z",id="17e1e446-d7da-4656-9e32-67d3690a306f",resources_synced=false,started_at="2021-07-02T21:47:42Z" 1634197616000000000 +openstack_aggregate,host=telegraf_host,name=non-dpdk aggregate_host="vim3",aggregate_hosts=2i,created_at="2021-02-01T18:28:00Z",deleted=false,deleted_at="0001-01-01T00:00:00Z",id=3i,updated_at="0001-01-01T00:00:00Z" 1634197617000000000 +openstack_flavor,host=telegraf_host,is_public=true,name=hwflavor disk=20i,ephemeral=0i,id="f89785c0-6b9f-47f5-a02e-f0fcbb223163",ram=8192i,rxtx_factor=1,swap=0i,vcpus=8i 1634197617000000000 +openstack_hypervisor,cpu_arch=x86_64,cpu_feature_3dnowprefetch=true,cpu_feature_abm=true,cpu_feature_acpi=true,cpu_feature_adx=true,cpu_feature_aes=true,cpu_feature_apic=true,cpu_feature_xtpr=true,cpu_model=C-Server,cpu_vendor=xyz,host=telegraf_host,hypervisor_hostname=vim3,hypervisor_type=QEMU,hypervisor_version=4002000,service_host=vim3,service_id=192,state=up,status=enabled cpu_topology_cores=28i,cpu_topology_sockets=1i,cpu_topology_threads=2i,current_workload=0i,disk_available_least=2596i,free_disk_gb=2744i,free_ram_mb=374092i,host_ip="xx:xx:xx:x::xxx",id="12",local_gb=3366i,local_gb_used=622i,memory_mb=515404i,memory_mb_used=141312i,running_vms=15i,vcpus=0i,vcpus_used=72i 1634197618000000000 +openstack_network,host=telegraf_host,name=Network\ 2,project_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,status=active,tenant_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx admin_state_up=true,availability_zone_hints="",created_at="2021-07-29T15:58:25Z",id="f5af5e71-e890-4245-a377-d4d86273c319",shared=false,subnet_id="2f7341c6-074d-42aa-9abc-71c662d9b336",subnets=1i,updated_at="2021-09-02T16:46:48Z" 1634197618000000000 +openstack_nova_service,host=telegraf_host,host_machine=vim3,name=nova-compute,state=up,status=enabled,zone=nova disabled_reason="",forced_down=false,id="192",updated_at="2021-10-14T07:46:52Z" 1634197619000000000 +openstack_port,device_id=a043b8b3-2831-462a-bba8-19088f3db45a,device_owner=compute:nova,host=telegraf_host,name=offload-port1,network_id=6b40d744-9a48-43f2-a4c8-2e0ccb45ac96,project_id=71f9bc44621234f8af99a3949258fc7b,status=ACTIVE,tenant_id=71f9bc44621234f8af99a3949258fc7b admin_state_up=true,allowed_address_pairs=0i,fixed_ips=1i,id="fb64626a-07e1-4d78-a70d-900e989537cc",ip_address="1.1.1.5",mac_address="xx:xx:xx:xx:xx:xx",security_groups="",subnet_id="eafa1eca-b318-4746-a55a-682478466689" 1634197620000000000 +openstack_identity,domain_id=default,host=telegraf_host,name=service,parent_id=default enabled=true,id="a0877dd2ed1d4b5f952f5689bc04b0cb",is_domain=false,projects=7i 1634197621000000000 +openstack_server,flavor=0d438971-56cf-4f86-801f-7b04b29384cb,host=telegraf_host,host_id=c0fe05b14261d35cf8748a3f5aae1234b88c2fd62b69fe24ca4a27e9,host_name=vim1,image=b295f1f3-1w23-470c-8734-197676eedd16,name=test-VM7,project=admin,status=active,tenant_id=80ac889731f540498fb1dc78e4bcd5ed,user_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx accessIPv4="",accessIPv6="",addresses=1i,adminPass="",created="2021-09-07T14:40:11Z",disk_gb=8i,fault_code=0i,fault_created="0001-01-01T00:00:00Z",fault_details="",fault_message="",id="db92ee0d-459b-458e-9fe3-2be5ec7c87e1",progress=0i,ram_mb=16384i,security_groups=1i,updated="2021-09-07T14:40:19Z",vcpus=4i,volumes_attached=0i 1634197656000000000 +openstack_service,host=telegraf_host,name=identity service_enabled=true,service_id="ad605eff92444a158d0f78768f2c4668" 1634197656000000000 +openstack_storage_pool,driver_version=1.0.0,host=telegraf_host,name=storage_bloack_1,storage_protocol=nfs,vendor_name=xyz,volume_backend_name=abc free_capacity_gb=4847.54,total_capacity_gb=4864 1634197658000000000 +openstack_subnet,cidr=10.10.20.10/28,gateway_ip=10.10.20.17,host=telegraf_host,ip_version=4,name=IPv4_Subnet_2,network_id=73c6e1d3-f522-4a3f-8e3c-762a0c06d68b,openstack_tags_lab=True,project_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,tenant_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx allocation_pools="10.10.20.11-10.10.20.30",dhcp_enabled=true,dns_nameservers="",id="db69fbb2-9ca1-4370-8c78-82a27951c94b" 1634197660000000000 +openstack_volume,attachment_attachment_id=c83ca0d6-c467-44a0-ac1f-f87d769c0c65,attachment_device=/dev/vda,attachment_host_name=vim1,availability_zone=nova,bootable=true,host=telegraf_host,status=in-use,user_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,volume_type=storage_bloack_1 attachment_attached_at="2021-01-12T21:02:04Z",attachment_server_id="c0c6b4af-0d26-4a0b-a6b4-4ea41fa3bb4a",created_at="2021-01-12T21:01:47Z",encrypted=false,id="d4204f1b-b1ae-1233-b25c-a57d91d2846e",multiattach=false,size=80i,total_attachments=1i,updated_at="2021-01-12T21:02:04Z" 1634197660000000000 +openstack_request_duration,host=telegraf_host networks=703214354i 1634197660000000000 +openstack_server_diagnostics,disk_name=vda,host=telegraf_host,no_of_disks=1,no_of_ports=2,port_name=vhu1234566c-9c,server_id=fdddb58c-bbb9-1234-894b-7ae140178909 cpu0_time=4924220000000,cpu1_time=218809610000000,cpu2_time=218624300000000,cpu3_time=220505700000000,disk_errors=-1,disk_read=619156992,disk_read_req=35423,disk_write=8432728064,disk_write_req=882445,memory=8388608,memory-actual=8388608,memory-rss=37276,memory-swap_in=0,port_rx=410516469288,port_rx_drop=13373626,port_rx_errors=-1,port_rx_packets=52140392,port_tx=417312195654,port_tx_drop=0,port_tx_errors=0,port_tx_packets=321385978 1634197660000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/opentelemetry.md b/src/writeData/components/telegrafPlugins/opentelemetry.md index 9e1caefc9d..5fc42d472c 100644 --- a/src/writeData/components/telegrafPlugins/opentelemetry.md +++ b/src/writeData/components/telegrafPlugins/opentelemetry.md @@ -1,7 +1,41 @@ # OpenTelemetry Input Plugin -This plugin receives traces, metrics and logs from -[OpenTelemetry](https://opentelemetry.io) clients and agents via gRPC. +This service plugin receives traces, metrics, logs and profiles from +[OpenTelemetry][opentelemetry] clients and compatible agents via gRPC. + +> [!NOTE] +> Telegraf v1.32 through v1.35 support the Profiles signal using the v1 +> experimental API. +> Telegraf v1.36 supports the Profiles signal using the v1 development API +> before v0.1.0. +> Telegraf v1.37+ supports the Profiles signal using the v1 development API +> v0.1.0. + +⭐ Telegraf v1.19.0 +🏷️ logging, messaging +💻 all + +[opentelemetry]: https://opentelemetry.io + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -15,6 +49,40 @@ This plugin receives traces, metrics and logs from ## Override the default (5s) new connection timeout # timeout = "5s" + ## gRPC Maximum Message Size + # max_msg_size = "4MB" + + ## Override the default span attributes to be used as line protocol tags. + ## These are always included as tags: + ## - trace ID + ## - span ID + ## Common attributes can be found here: + ## - https://github.com/open-telemetry/opentelemetry-collector/tree/main/semconv + # span_dimensions = ["service.name", "span.name"] + + ## Override the default log record attributes to be used as line protocol tags. + ## These are always included as tags, if available: + ## - trace ID + ## - span ID + ## Common attributes can be found here: + ## - https://github.com/open-telemetry/opentelemetry-collector/tree/main/semconv + ## When using InfluxDB for both logs and traces, be certain that log_record_dimensions + ## matches the span_dimensions value. + # log_record_dimensions = ["service.name"] + + ## Override the default profile attributes to be used as line protocol tags. + ## These are always included as tags, if available: + ## - profile_id + ## - address + ## - sample + ## - sample_name + ## - sample_unit + ## - sample_type + ## - sample_type_unit + ## Common attributes can be found here: + ## - https://github.com/open-telemetry/opentelemetry-collector/tree/main/semconv + # profile_dimensions = [] + ## Override the default (prometheus-v1) metrics schema. ## Supports: "prometheus-v1", "prometheus-v2" ## For more information about the alternatives, read the Prometheus input @@ -67,7 +135,7 @@ spans end_time_unix_nano="2021-02-19 20:50:25.6896741 +0000 UTC",instrumentation ### `prometheus-v1` -```shell +```text cpu_temp,foo=bar gauge=87.332 http_requests_total,method=post,code=200 counter=1027 http_requests_total,method=post,code=400 counter=3 @@ -77,7 +145,7 @@ rpc_duration_seconds 0.01=3102,0.05=3272,0.5=4773,0.9=9001,0.99=76656,sum=1.7560 ### `prometheus-v2` -```shell +```text prometheus,foo=bar cpu_temp=87.332 prometheus,method=post,code=200 http_requests_total=1027 prometheus,method=post,code=400 http_requests_total=3 @@ -102,3 +170,19 @@ logs fluent.tag="fluent.info",pid=18i,ppid=9i,worker=0i 1613769568895331700 logs fluent.tag="fluent.debug",instance=1720i,queue_size=0i,stage_size=0i 1613769568895697200 logs fluent.tag="fluent.info",worker=0i 1613769568896515100 ``` + +### Profiles + +```text +profiles,address=95210353,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=0,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="fab9b8c848218405738c11a7ec4982e9",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=18694144u,filename="chromium",frame_type="native",location="",memory_limit=250413056u,memory_start=18698240u,stack_trace_id="hYmAzQVF8vy8MWbzsKpQNw",start_time_unix_nano=1721306050081621681u,value=1i 1721306048731622020 +profiles,address=15945263,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=1,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="7dab4a2e0005d025e75cc72191f8d6bf",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=15638528u,filename="dockerd",frame_type="native",location="",memory_limit=47255552u,memory_start=15638528u,stack_trace_id="4N3KEcGylb5Qoi2905c1ZA",start_time_unix_nano=1721306050081621681u,value=1i 1721306049831718725 +profiles,address=15952400,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=1,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="7dab4a2e0005d025e75cc72191f8d6bf",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=15638528u,filename="dockerd",frame_type="native",location="",memory_limit=47255552u,memory_start=15638528u,stack_trace_id="4N3KEcGylb5Qoi2905c1ZA",start_time_unix_nano=1721306050081621681u,value=1i 1721306049831718725 +profiles,address=15953899,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=1,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="7dab4a2e0005d025e75cc72191f8d6bf",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=15638528u,filename="dockerd",frame_type="native",location="",memory_limit=47255552u,memory_start=15638528u,stack_trace_id="4N3KEcGylb5Qoi2905c1ZA",start_time_unix_nano=1721306050081621681u,value=1i 1721306049831718725 +profiles,address=16148175,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=1,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="7dab4a2e0005d025e75cc72191f8d6bf",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=15638528u,filename="dockerd",frame_type="native",location="",memory_limit=47255552u,memory_start=15638528u,stack_trace_id="4N3KEcGylb5Qoi2905c1ZA",start_time_unix_nano=1721306050081621681u,value=1i 1721306049831718725 +profiles,address=4770577,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=2,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="cfc3dc7d1638c1284a6b62d4b5c0d74e",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=0u,filename="",frame_type="kernel",location="do_epoll_wait",memory_limit=0u,memory_start=0u,stack_trace_id="UaO9bysJnAYXFYobSdHXqg",start_time_unix_nano=1721306050081621681u,value=1i 1721306050081621681 +profiles,address=4773632,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=2,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="cfc3dc7d1638c1284a6b62d4b5c0d74e",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=0u,filename="",frame_type="kernel",location="__x64_sys_epoll_wait",memory_limit=0u,memory_start=0u,stack_trace_id="UaO9bysJnAYXFYobSdHXqg",start_time_unix_nano=1721306050081621681u,value=1i 1721306050081621681 +profiles,address=14783666,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=2,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="cfc3dc7d1638c1284a6b62d4b5c0d74e",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=0u,filename="",frame_type="kernel",location="do_syscall_64",memory_limit=0u,memory_start=0u,stack_trace_id="UaO9bysJnAYXFYobSdHXqg",start_time_unix_nano=1721306050081621681u,value=1i 1721306050081621681 +profiles,address=16777518,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=2,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="cfc3dc7d1638c1284a6b62d4b5c0d74e",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=0u,filename="",frame_type="kernel",location="entry_SYSCALL_64_after_hwframe",memory_limit=0u,memory_start=0u,stack_trace_id="UaO9bysJnAYXFYobSdHXqg",start_time_unix_nano=1721306050081621681u,value=1i 1721306050081621681 +profiles,address=1139937,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=2,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="982ed6c7a77f99f0ae746be0187953bf",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=147456u,filename="libc.so.6",frame_type="native",location="",memory_limit=1638400u,memory_start=147456u,stack_trace_id="UaO9bysJnAYXFYobSdHXqg",start_time_unix_nano=1721306050081621681u,value=1i 1721306050081621681 +profiles,address=117834912,host.name=testbox,profile_id=618098d29a6cefd6a4c0ea806880c2a8,sample=2,sample_name=cpu,sample_type=samples,sample_type_unit=count,sample_unit=nanoseconds build_id="fab9b8c848218405738c11a7ec4982e9",build_id_type="BUILD_ID_BINARY_HASH",end_time_unix_nano=1721306050081621681u,file_offset=18694144u,filename="chromium",frame_type="native",location="",memory_limit=250413056u,memory_start=18698240u,stack_trace_id="UaO9bysJnAYXFYobSdHXqg",start_time_unix_nano=1721306050081621681u,value=1i 1721306050081621681 +``` diff --git a/src/writeData/components/telegrafPlugins/openweathermap.md b/src/writeData/components/telegrafPlugins/openweathermap.md index f6884371f9..332ccfde02 100644 --- a/src/writeData/components/telegrafPlugins/openweathermap.md +++ b/src/writeData/components/telegrafPlugins/openweathermap.md @@ -1,14 +1,26 @@ # OpenWeatherMap Input Plugin -Collect current weather and forecast data from OpenWeatherMap. +This plugin collects weather and forecast data from the +[OpenWeatherMap][openweathermap] service. -To use this plugin you will need an [api key][] (app_id). +> [!IMPORTANT] +> To use this plugin you will need an [APP-ID][api_key] to work. -City identifiers can be found in the [city list][]. Alternately you -can [search][] by name; the `city_id` can be found as the last digits -of the URL: . Language -identifiers can be found in the [lang list][]. Documentation for -condition ID, icon, and main is at [weather conditions][]. +⭐ Telegraf v1.11.0 +🏷️ applications, web +💻 all + +[openweathermap]: https://openweathermap.org +[api_key]: https://openweathermap.org/appid + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -28,7 +40,7 @@ condition ID, icon, and main is at [weather conditions][]. # lang = "en" ## APIs to fetch; can contain "weather" or "forecast". - fetch = ["weather", "forecast"] + # fetch = ["weather", "forecast"] ## OpenWeatherMap base URL # base_url = "https://api.openweathermap.org/" @@ -38,13 +50,31 @@ condition ID, icon, and main is at [weather conditions][]. ## Preferred unit system for temperature and wind speed. Can be one of ## "metric", "imperial", or "standard". + ## The default is "metric" if not specified. # units = "metric" - ## Query interval; OpenWeatherMap weather data is updated every 10 - ## minutes. - interval = "10m" + ## Style to query the current weather; available options + ## batch -- query multiple cities at once using the "group" endpoint + ## individual -- query each city individually using the "weather" endpoint + ## You should use "individual" here as it is documented and provides more + ## frequent updates. The default is "batch" for backward compatibility. + # query_style = "batch" + + ## Query interval to fetch data. + ## By default the global 'interval' setting is used. You should override the + ## interval here if the global setting is shorter than 10 minutes as + ## OpenWeatherMap weather data is only updated every 10 minutes. + # interval = "10m" ``` +City identifiers can be found in the [city list file][city_list] or you search +your city by name on the [OpenWeatherMap website][openweathermap] and use the +numeric last element of the resulting URL. +Language identifiers can be found in the [API documentation][languages]. + +[city_list]: http://bulk.openweathermap.org/sample/city.list.json.gz +[languages]: https://openweathermap.org/current#multi + ## Metrics - weather @@ -54,31 +84,32 @@ condition ID, icon, and main is at [weather conditions][]. - condition_id - condition_main - fields: - - cloudiness (int, percent) - - humidity (int, percent) - - pressure (float, atmospheric pressure hPa) - - rain (float, rain volume for the last 1-3 hours (depending on API response) in mm) - - sunrise (int, nanoseconds since unix epoch) - - sunset (int, nanoseconds since unix epoch) - - temperature (float, degrees) - - feels_like (float, degrees) - - visibility (int, meters, not available on forecast data) - - wind_degrees (float, wind direction in degrees) - - wind_speed (float, wind speed in meters/sec or miles/sec) + - cloudiness (int, percent) + - humidity (int, percent) + - pressure (float) - atmospheric pressure hPa + - rain (float) - rain volume in mm for the last 1-3h + (depending on API response) + - snow (float) - snow volume in mm for the last 1-3h + (depending on API response) + - sunrise (int) - nanoseconds since unix epoch + - sunset (int) - nanoseconds since unix epoch + - temperature (float, degrees) + - feels_like (float, degrees) + - visibility (int, meters) - not available on forecast data + - wind_degrees (float) - wind direction in degrees + - wind_speed (float) - wind speed in meters/sec or miles/sec - condition_description (string, localized long description) - condition_icon -## Example Output +Documentation for condition ID, icon, and main is can be found in the +[documentation][weather_conditions]. -```shell -> weather,city=San\ Francisco,city_id=5391959,condition_id=803,condition_main=Clouds,country=US,forecast=114h,host=robot pressure=1027,temperature=10.09,wind_degrees=34,wind_speed=1.24,condition_description="broken clouds",cloudiness=80i,humidity=67i,rain=0,feels_like=8.9,condition_icon="04n" 1645952400000000000 -> weather,city=San\ Francisco,city_id=5391959,condition_id=804,condition_main=Clouds,country=US,forecast=117h,host=robot humidity=65i,rain=0,temperature=10.12,wind_degrees=31,cloudiness=90i,pressure=1026,feels_like=8.88,wind_speed=1.31,condition_description="overcast clouds",condition_icon="04n" 1645963200000000000 -> weather,city=San\ Francisco,city_id=5391959,condition_id=804,condition_main=Clouds,country=US,forecast=120h,host=robot cloudiness=100i,humidity=61i,rain=0,temperature=10.28,wind_speed=1.94,condition_icon="04d",pressure=1027,feels_like=8.96,wind_degrees=16,condition_description="overcast clouds" 1645974000000000000 +[weather_conditions]: https://openweathermap.org/weather-conditions -``` +## Example Output -[api key]: https://openweathermap.org/appid -[city list]: http://bulk.openweathermap.org/sample/city.list.json.gz -[search]: https://openweathermap.org/find -[lang list]: https://openweathermap.org/current#multi -[weather conditions]: https://openweathermap.org/weather-conditions +```text +weather,city=San\ Francisco,city_id=5391959,condition_id=803,condition_main=Clouds,country=US,forecast=114h,host=robot pressure=1027,temperature=10.09,wind_degrees=34,wind_speed=1.24,condition_description="broken clouds",cloudiness=80i,humidity=67i,rain=0,feels_like=8.9,condition_icon="04n" 1645952400000000000 +weather,city=San\ Francisco,city_id=5391959,condition_id=804,condition_main=Clouds,country=US,forecast=117h,host=robot humidity=65i,rain=0,temperature=10.12,wind_degrees=31,cloudiness=90i,pressure=1026,feels_like=8.88,wind_speed=1.31,condition_description="overcast clouds",condition_icon="04n" 1645963200000000000 +weather,city=San\ Francisco,city_id=5391959,condition_id=804,condition_main=Clouds,country=US,forecast=120h,host=robot cloudiness=100i,humidity=61i,rain=0,temperature=10.28,wind_speed=1.94,condition_icon="04d",pressure=1027,feels_like=8.96,wind_degrees=16,condition_description="overcast clouds" 1645974000000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/passenger.md b/src/writeData/components/telegrafPlugins/passenger.md index 937dc9e732..d85964b2b0 100644 --- a/src/writeData/components/telegrafPlugins/passenger.md +++ b/src/writeData/components/telegrafPlugins/passenger.md @@ -1,25 +1,33 @@ # Passenger Input Plugin -Gather [Phusion Passenger](https://www.phusionpassenger.com/) metrics using the -`passenger-status` command line utility. +This plugin gathers metrics from the [Phusion Passenger][phusion] service. -## Series Cardinality Warning +> [!WARNING] +> Depending on your environment, this plugin can create a high number of series +> which can cause high load on your database. Please use +> [measurement filtering][metric_filtering] to manage your series cardinality! -Depending on your environment, this `passenger_process` measurement of this -plugin can quickly create a high number of series which, when unchecked, can -cause high load on your database. You can use the following techniques to -manage your series cardinality: +The plugin uses the `passenger-status` command line tool. -- Use the - [measurement filtering](https://docs.influxdata.com/telegraf/latest/configuration/#metric-filtering) - options to exclude unneeded tags. In some environments, you may wish to use - `tagexclude` to remove the `pid` and `process_group_id` tags. -- Write to a database with an appropriate - [retention policy](https://docs.influxdata.com/influxdb/latest/reference/internals/data-retention/). -- Consider using the - [Time Series Index](https://docs.influxdata.com/influxdb/latest/reference/internals/storage-engine/#time-series-index-tsi). -- Monitor your databases - [series cardinality](https://docs.influxdata.com/influxdb/latest/reference/syntax/influxql/spec/#show-cardinality). +> [!NOTE] +> This plugin requires the `passenger-status` binary to be installed on the +> system and to be executable by Telegraf. + +⭐ Telegraf v0.10.1 +🏷️ web +💻 all + +[phusion]: https://www.phusionpassenger.com/ +[metric_filtering]: /docs/CONFIGURATION.md#metric-filtering + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -42,6 +50,24 @@ manage your series cardinality: Telegraf must have permission to execute the `passenger-status` command. On most systems, Telegraf runs as the `telegraf` user. +### Series Cardinality + +Depending on your environment, this `passenger_process` measurement of this +plugin can quickly create a high number of series which, when unchecked, can +cause high load on your database. You can use the following techniques to +manage your series cardinality: + +- Use the + [measurement filtering](https://docs.influxdata.com/telegraf/latest/administration/configuration/#measurement-filtering) + options to exclude unneeded tags. In some environments, you may wish to use + `tagexclude` to remove the `pid` and `process_group_id` tags. +- Write to a database with an appropriate + [retention policy](https://docs.influxdata.com/influxdb/latest/guides/downsampling_and_retention/). +- Consider using the + [Time Series Index](https://docs.influxdata.com/influxdb/latest/concepts/time-series-index/). +- Monitor your databases + [series cardinality](https://docs.influxdata.com/influxdb/latest/query_language/spec/#show-cardinality). + ## Metrics - passenger @@ -99,7 +125,7 @@ most systems, Telegraf runs as the `telegraf` user. ## Example Output -```shell +```text passenger,passenger_version=5.0.17 capacity_used=23i,get_wait_list_size=0i,max=23i,process_count=23i 1452984112799414257 passenger_supergroup,name=/var/app/current/public capacity_used=23i,get_wait_list_size=0i 1452984112799496977 passenger_group,app_root=/var/app/current,app_type=rack,name=/var/app/current/public capacity_used=23i,get_wait_list_size=0i,processes_being_spawned=0i 1452984112799527021 diff --git a/src/writeData/components/telegrafPlugins/pf.md b/src/writeData/components/telegrafPlugins/pf.md index c34213fca1..dac04d0be6 100644 --- a/src/writeData/components/telegrafPlugins/pf.md +++ b/src/writeData/components/telegrafPlugins/pf.md @@ -1,26 +1,25 @@ # PF Input Plugin -The pf plugin gathers information from the FreeBSD/OpenBSD pf -firewall. Currently it can retrieve information about the state table: the -number of current entries in the table, and counters for the number of searches, -inserts, and removals to the table. +This plugin gathers information from the FreeBSD or OpenBSD pf firewall like +the number of current entries in the table, counters for the number of searches, +inserts, and removals to tables using the `pfctl` command. -The pf plugin retrieves this information by invoking the `pfstat` command. The -`pfstat` command requires read access to the device file `/dev/pf`. You have -several options to permit telegraf to run `pfctl`: +> [!NOTE] +> This plugin requires the `pfctl` binary to be executable by Telegraf. It +> requires read access to the device file `/dev/pf`. -* Run telegraf as root. This is strongly discouraged. -* Change the ownership and permissions for /dev/pf such that the user telegraf runs at can read the /dev/pf device file. This is probably not that good of an idea either. -* Configure sudo to grant telegraf to run `pfctl` as root. This is the most restrictive option, but require sudo setup. -* Add "telegraf" to the "proxy" group as /dev/pf is owned by root:proxy. +⭐ Telegraf v1.5.0 +🏷️ system, network +💻 freebsd -## Using sudo +## Global configuration options -You may edit your sudo configuration with the following: +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -```sudo -telegraf ALL=(root) NOPASSWD: /sbin/pfctl -s info -``` +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -34,32 +33,49 @@ telegraf ALL=(root) NOPASSWD: /sbin/pfctl -s info use_sudo = false ``` +### Permissions + +You have several options to grant Telegraf the permissions to run `pfctl`: + +- Run telegraf as root. This is strongly discouraged. +- Change the ownership and permissions for `/dev/pf` to allow being read by the + Telegraf user. This is discouraged. +- Configure sudo to allow running `pfctl` as root by the Telegraf user. + This is the most restrictive option, but require sudo setup. +- Add the Telegraf user to the `proxy` group as `/dev/pf`. + +For the `sudo` option you may add the following to the sudo configuration: + +```sudo +telegraf ALL=(root) NOPASSWD: /sbin/pfctl -s info +``` + ## Metrics -* pf - * entries (integer, count) - * searches (integer, count) - * inserts (integer, count) - * removals (integer, count) - * match (integer, count) - * bad-offset (integer, count) - * fragment (integer, count) - * short (integer, count) - * normalize (integer, count) - * memory (integer, count) - * bad-timestamp (integer, count) - * congestion (integer, count) - * ip-option (integer, count) - * proto-cksum (integer, count) - * state-mismatch (integer, count) - * state-insert (integer, count) - * state-limit (integer, count) - * src-limit (integer, count) - * synproxy (integer, count) +- pf + - entries (integer, count) + - searches (integer, count) + - inserts (integer, count) + - removals (integer, count) + - match (integer, count) + - bad-offset (integer, count) + - fragment (integer, count) + - short (integer, count) + - normalize (integer, count) + - memory (integer, count) + - bad-timestamp (integer, count) + - congestion (integer, count) + - ip-option (integer, count) + - proto-cksum (integer, count) + - state-mismatch (integer, count) + - state-insert (integer, count) + - state-limit (integer, count) + - src-limit (integer, count) + - synproxy (integer, count) ## Example Output -```text +```shell > pfctl -s info Status: Enabled for 0 days 00:26:05 Debug: Urgent @@ -86,8 +102,6 @@ Counters synproxy 0 0.0/s ``` -```shell -> ./telegraf --config telegraf.conf --input-filter pf --test -* Plugin: inputs.pf, Collection 1 -> pf,host=columbia entries=3i,searches=2668i,inserts=12i,removals=9i 1510941775000000000 +```text +pf,host=columbia entries=3i,searches=2668i,inserts=12i,removals=9i 1510941775000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/pgbouncer.md b/src/writeData/components/telegrafPlugins/pgbouncer.md index a1f7585ca0..dff8442c37 100644 --- a/src/writeData/components/telegrafPlugins/pgbouncer.md +++ b/src/writeData/components/telegrafPlugins/pgbouncer.md @@ -1,11 +1,27 @@ # PgBouncer Input Plugin -The `pgbouncer` plugin provides metrics for your PgBouncer load balancer. +This plugin collects metrics from a [PgBouncer load balancer][pgbouncer] +instance. Check the [documentation][metric_docs] for available metrics and their +meaning. -More information about the meaning of these metrics can be found in the -[PgBouncer Documentation](https://pgbouncer.github.io/usage.html). +> [!NOTE] +> This plugin requires PgBouncer v1.5+. -- PgBouncer minimum tested version: 1.5 +⭐ Telegraf v1.8.0 +🏷️ server, web +💻 all + +[pgbouncer]: https://pgbouncer.github.io +[metric_docs]: https://pgbouncer.github.io/usage.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -21,17 +37,19 @@ More information about the meaning of these metrics can be found in the ## All connection parameters are optional. ## address = "host=localhost user=pgbouncer sslmode=disable" -``` -### `address` + ## Specify which "show" commands to gather metrics for. + ## Choose from: "stats", "pools", "lists", "databases" + # show_commands = ["stats", "pools"] +``` -Specify address via a postgresql connection string: +To specify the `address` use either a PostgreSQL connection string: ```text host=/run/postgresql port=6432 user=telegraf database=pgbouncer ``` -Or via an url matching: +or via an URL of the following form: ```text postgres://[pqgotest[:password]]@host:port[/dbname]?sslmode=[disable|verify-ca|verify-full] @@ -39,9 +57,9 @@ postgres://[pqgotest[:password]]@host:port[/dbname]?sslmode=[disable|verify-ca|v All connection parameters are optional. -Without the dbname parameter, the driver will default to a database with the -same name as the user. This dbname is just for instantiating a connection with -the server and doesn't restrict the databases we are trying to grab metrics for. +Without the `dbname` parameter, the driver will default to a database with the +same name as the user. The `dbname` is for instantiating a connection with the +server only and doesn't restrict access to the databases queried. ## Metrics @@ -80,9 +98,45 @@ the server and doesn't restrict the databases we are trying to grab metrics for. - sv_tested - sv_used +- pgbouncer_lists + - tags: + - db + - server + - user + - fields: + - databases + - users + - pools + - free_clients + - used_clients + - login_clients + - free_servers + - used_servers + - dns_names + - dns_zones + - dns_queries + +- pgbouncer_databases + - tags: + - db + - pg_dbname + - server + - user + - fields: + - current_connections + - pool_size + - min_pool_size + - reserve_pool + - max_connections + - paused + - disabled + ## Example Output -```shell +```text pgbouncer,db=pgbouncer,server=host\=debian-buster-postgres\ user\=dbn\ port\=6432\ dbname\=pgbouncer\ avg_query_count=0i,avg_query_time=0i,avg_wait_time=0i,avg_xact_count=0i,avg_xact_time=0i,total_query_count=26i,total_query_time=0i,total_received=0i,total_sent=0i,total_wait_time=0i,total_xact_count=26i,total_xact_time=0i 1581569936000000000 pgbouncer_pools,db=pgbouncer,pool_mode=statement,server=host\=debian-buster-postgres\ user\=dbn\ port\=6432\ dbname\=pgbouncer\ ,user=pgbouncer cl_active=1i,cl_waiting=0i,maxwait=0i,maxwait_us=0i,sv_active=0i,sv_idle=0i,sv_login=0i,sv_tested=0i,sv_used=0i 1581569936000000000 +pgbouncer_lists,db=pgbouncer,server=host\=debian-buster-postgres\ user\=dbn\ port\=6432\ dbname\=pgbouncer\ ,user=pgbouncer databases=1i,dns_names=0i,dns_queries=0i,dns_zones=0i,free_clients=47i,free_servers=0i,login_clients=0i,pools=1i,used_clients=3i,used_servers=0i,users=4i 1581569936000000000 +pgbouncer_databases,db=pgbouncer,pg_dbname=pgbouncer,server=host\=debian-buster-postgres\ user\=dbn\ port\=6432\ dbname\=pgbouncer\ name=pgbouncer disabled=0i,pool_size=2i,current_connections=0i,min_pool_size=0i,reserve_pool=0i,max_connections=0i,paused=0i 1581569936000000000 +pgbouncer_databases,db=postgres,pg_dbname=postgres,server=host\=debian-buster-postgres\ user\=dbn\ port\=6432\ dbname\=pgbouncer\ name=postgres current_connections=0i,disabled=0i,pool_size=20i,min_pool_size=0i,reserve_pool=0i,paused=0i,max_connections=0i 1581569936000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/phpfpm.md b/src/writeData/components/telegrafPlugins/phpfpm.md index a1b3759c6e..1bb1107b9d 100644 --- a/src/writeData/components/telegrafPlugins/phpfpm.md +++ b/src/writeData/components/telegrafPlugins/phpfpm.md @@ -1,6 +1,22 @@ # PHP-FPM Input Plugin -Get phpfpm stats using either HTTP status page or fpm socket. +This plugin gathers statistics of the [PHP FastCGI Process Manager][phpfpm] +using either the HTTP status page or the fpm socket. + +⭐ Telegraf v0.1.10 +🏷️ server, web +💻 all + +[phpfpm]: https://www.php.net/manual/en/install.fpm.php + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -30,6 +46,12 @@ Get phpfpm stats using either HTTP status page or fpm socket. ## urls = ["http://192.168.1.20/status", "/tmp/fpm.sock"] urls = ["http://localhost/status"] + ## Format of stats to parse, set to "status" or "json" + ## If the user configures the URL to return JSON (e.g. + ## http://localhost/status?json), set to JSON. Otherwise, will attempt to + ## parse line-by-line. The JSON mode will produce additional metrics. + # format = "status" + ## Duration allowed to complete HTTP requests. # timeout = "5s" @@ -61,11 +83,45 @@ host, and socket path is accessible to telegraf user. - max_active_processes - max_children_reached - slow_requests +- phpfpm_process + - tags: + - pool + - request method + - request uri + - script + - url + - user + - fields: + - pid + - content length + - last request cpu + - last request memory + - request duration + - requests + - start time + - start since + - state ## Example Output -```shell +```text phpfpm,pool=www accepted_conn=13i,active_processes=2i,idle_processes=1i,listen_queue=0i,listen_queue_len=0i,max_active_processes=2i,max_children_reached=0i,max_listen_queue=0i,slow_requests=0i,total_processes=3i 1453011293083331187 phpfpm,pool=www2 accepted_conn=12i,active_processes=1i,idle_processes=2i,listen_queue=0i,listen_queue_len=0i,max_active_processes=2i,max_children_reached=0i,max_listen_queue=0i,slow_requests=0i,total_processes=3i 1453011293083691422 phpfpm,pool=www3 accepted_conn=11i,active_processes=1i,idle_processes=2i,listen_queue=0i,listen_queue_len=0i,max_active_processes=2i,max_children_reached=0i,max_listen_queue=0i,slow_requests=0i,total_processes=3i 1453011293083691658 ``` + +With the JSON output, additional metrics around processes are generated: + +```text +phpfpm,pool=www,url=http://127.0.0.1:44637?full&json accepted_conn=3879i,active_processes=1i,idle_processes=9i,listen_queue=0i,listen_queue_len=0i,max_active_processes=3i,max_children_reached=0i,max_listen_queue=0i,slow_requests=0i,start_since=4901i,total_processes=10i +phpfpm_process,pool=www,request_method=GET,request_uri=/fpm-status?json&full,script=-,url=http://127.0.0.1:44637?full&json,user=- content_length=0i,pid=583i,last_request_cpu=0,last_request_memory=0,request_duration=159i,requests=386i,start_time=1702044927i,state="Running" +phpfpm_process,pool=www,request_method=GET,request_uri=/fpm-status,script=-,url=http://127.0.0.1:44637?full&json,user=- content_length=0i,pid=584i,last_request_cpu=0,last_request_memory=2097152,request_duration=174i,requests=390i,start_time=1702044927i,state="Idle" +phpfpm_process,pool=www,request_method=GET,request_uri=/index.php,script=script.php,url=http://127.0.0.1:44637?full&json,user=- content_length=0i,pid=585i,last_request_cpu=104.93,last_request_memory=2097152,request_duration=9530i,requests=389i,start_time=1702044927i,state="Idle" +phpfpm_process,pool=www,request_method=GET,request_uri=/ping,script=-,url=http://127.0.0.1:44637?full&json,user=- content_length=0i,pid=586i,last_request_cpu=0,last_request_memory=2097152,request_duration=127i,requests=399i,start_time=1702044927i,state="Idle" +phpfpm_process,pool=www,request_method=GET,request_uri=/index.php,script=script.php,url=http://127.0.0.1:44637?full&json,user=- content_length=0i,pid=587i,last_request_cpu=0,last_request_memory=2097152,request_duration=9713i,requests=382i,start_time=1702044927i,state="Idle" +phpfpm_process,pool=www,request_method=GET,request_uri=/ping,script=-,url=http://127.0.0.1:44637?full&json,user=- content_length=0i,pid=588i,last_request_cpu=0,last_request_memory=2097152,request_duration=133i,requests=383i,start_time=1702044927i,state="Idle" +phpfpm_process,pool=www,request_method=GET,request_uri=/fpm-status?json,script=-,url=http://127.0.0.1:44637?full&json,user=- content_length=0i,pid=589i,last_request_cpu=0,last_request_memory=2097152,request_duration=154i,requests=381i,start_time=1702044927i,state="Idle" +phpfpm_process,pool=www,request_method=GET,request_uri=/ping,script=-,url=http://127.0.0.1:44637?full&json,user=- content_length=0i,pid=590i,last_request_cpu=0,last_request_memory=2097152,request_duration=108i,requests=397i,start_time=1702044927i,state="Idle" +phpfpm_process,pool=www,request_method=GET,request_uri=/index.php,script=script.php,url=http://127.0.0.1:44637?full&json,user=- content_length=0i,pid=591i,last_request_cpu=110.28,last_request_memory=2097152,request_duration=9068i,requests=381i,start_time=1702044927i,state="Idle" +phpfpm_process,pool=www,request_method=GET,request_uri=/index.php,script=script.php,url=http://127.0.0.1:44637?full&json,user=- content_length=0i,pid=592i,last_request_cpu=64.27,last_request_memory=2097152,request_duration=15559i,requests=391i,start_time=1702044927i,state="Idle" +``` diff --git a/src/writeData/components/telegrafPlugins/ping.md b/src/writeData/components/telegrafPlugins/ping.md index 64a496a875..d2619a0050 100644 --- a/src/writeData/components/telegrafPlugins/ping.md +++ b/src/writeData/components/telegrafPlugins/ping.md @@ -1,27 +1,24 @@ # Ping Input Plugin -Sends a ping message by executing the system ping command and reports the -results. +This plugin collects metrics on ICMP ping packets including the round-trip time, +response times and other packet statistics. -This plugin has two main methods of operation: `exec` and `native`. The -recommended method is `native`, which has greater system compatibility and -performance. However, for backwards compatibility the `exec` method is the -default. +> [!NOTE] +> When using the `exec` method the `ping` command must be available on the +> systems and executable by Telegraf. -When using `method = "exec"`, the systems ping utility is executed to send the -ping packets. +⭐ Telegraf v0.1.8 +🏷️ network +💻 all -Most ping command implementations are supported, one notable exception being -that there is currently no support for GNU Inetutils ping. You may instead use -the iputils-ping implementation: +## Global configuration options -```sh -apt-get install iputils-ping -``` +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -When using `method = "native"` a ping is sent and the results are reported in -native Go by the Telegraf process, eliminating the need to execute the system -`ping` command. +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -71,7 +68,12 @@ native Go by the Telegraf process, eliminating the need to execute the system ## etc) will be ignored. # arguments = ["-c", "3"] - ## Use only IPv6 addresses when resolving a hostname. + ## Use only IPv4 addresses when resolving a hostname. By default, both IPv4 + ## and IPv6 can be used. + # ipv4 = false + + ## Use only IPv6 addresses when resolving a hostname. By default, both IPv4 + ## and IPv6 can be used. # ipv6 = false ## Number of data bytes to be sent. Corresponds to the "-s" @@ -79,6 +81,26 @@ native Go by the Telegraf process, eliminating the need to execute the system # size = 56 ``` +### Ping methods + +This plugin has two main methods of operation, the `exec` and `native` mode. +The latter is the recommended method as it provides better system compatibility +and performance. However, for backwards compatibility the `exec` method is the +default. + +When using the `exec` method, most ping command implementations are supported, +one notable exception being the GNU `inetutils` ping. You may instead use the +iputils-ping implementation: + +```sh +apt-get install iputils-ping +``` + +For the `native` method a corresponding ICMP packet is sent and the results are +reported in native Go by the Telegraf process, eliminating the need to execute +the system `ping` command. Therefore, this method doesn't have external +dependencies. + ### File Limit Since this plugin runs the ping command, it may need to open multiple files per @@ -111,8 +133,8 @@ systemctl restart telegraf ### Linux Permissions -When using `method = "native"`, Telegraf will attempt to use privileged raw ICMP -sockets. On most systems, doing so requires `CAP_NET_RAW` capabilities or for +When using the `native` method, Telegraf will attempt to use privileged raw ICMP +sockets. On most systems, doing so requires `CAP_NET_RAW` capabilities or for Telegraf to be run as root. With systemd: @@ -161,7 +183,8 @@ executable ping program for your OS. - minimum_response_ms (float) - maximum_response_ms (float) - standard_deviation_ms (float, Available on Windows only with method = "native") - - percentile\_ms (float, Where `` is the percentile specified in `percentiles`. Available with method = "native" only) + - percentile\_ms (float, Where `` is the percentile specified in + `percentiles`. Available with method = "native" only) - errors (float, Windows only) - reply_received (integer, Windows with method = "exec" only) - percent_reply_loss (float, Windows with method = "exec" only) @@ -180,6 +203,6 @@ progress at and ## Example Output -```shell +```text ping,url=example.org average_response_ms=23.066,ttl=63,maximum_response_ms=24.64,minimum_response_ms=22.451,packets_received=5i,packets_transmitted=5i,percent_packet_loss=0,result_code=0i,standard_deviation_ms=0.809 1535747258000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/postfix.md b/src/writeData/components/telegrafPlugins/postfix.md index 069bd74538..684502ef22 100644 --- a/src/writeData/components/telegrafPlugins/postfix.md +++ b/src/writeData/components/telegrafPlugins/postfix.md @@ -1,16 +1,30 @@ # Postfix Input Plugin -The postfix plugin reports metrics on the postfix queues. +This plugin collects metrics on a local [Postfix][postfix] instance reporting +the length, size and age of the active, hold, incoming, maildrop, and deferred +[queues][queues]. -For each of the active, hold, incoming, maildrop, and deferred queues -(), it will report the queue -length (number of items), size (bytes used by items), and age (age of oldest -item in seconds). +⭐ Telegraf v1.5.0 +🏷️ server +💻 freebsd, linux, macos, solaris + +[postfix]: https://www.postfix.org/ +[queues]: https://www.postfix.org/QSHAPE_README.html#queues + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Measure postfix queue statistics +# This plugin ONLY supports non-Windows [[inputs.postfix]] ## Postfix queue directory. If not provided, telegraf will try to use ## 'postconf -h queue_directory' to determine it. @@ -54,7 +68,7 @@ sudo setfacl -dm g:telegraf:rX /var/spool/postfix/ ## Example Output -```shell +```text postfix_queue,queue=active length=3,size=12345,age=9 postfix_queue,queue=hold length=0,size=0,age=0 postfix_queue,queue=maildrop length=1,size=2000,age=2 diff --git a/src/writeData/components/telegrafPlugins/postgresql.md b/src/writeData/components/telegrafPlugins/postgresql.md index 940dedbba0..32e9b946ff 100644 --- a/src/writeData/components/telegrafPlugins/postgresql.md +++ b/src/writeData/components/telegrafPlugins/postgresql.md @@ -1,50 +1,43 @@ # PostgreSQL Input Plugin -This postgresql plugin provides metrics for your postgres database. It currently -works with postgres versions 8.1+. It uses data from the built in -_pg_stat_database_ and pg_stat_bgwriter views. The metrics recorded depend on -your version of postgres. See table: +This plugin provides metrics for a [PostgreSQL][postgres] Server instance. +Recorded metrics are lightweight and use Dynamic Management Views supplied +by PostgreSQL. -```sh -pg version 9.2+ 9.1 8.3-9.0 8.1-8.2 7.4-8.0(unsupported) ---- --- --- ------- ------- ------- -datid x x x x -datname x x x x -numbackends x x x x x -xact_commit x x x x x -xact_rollback x x x x x -blks_read x x x x x -blks_hit x x x x x -tup_returned x x x -tup_fetched x x x -tup_inserted x x x -tup_updated x x x -tup_deleted x x x -conflicts x x -temp_files x -temp_bytes x -deadlocks x -blk_read_time x -blk_write_time x -stats_reset* x x -``` +⭐ Telegraf v0.10.3 +🏷️ datastore +💻 all -_* value ignored and therefore not recorded._ +[postgres]: https://www.postgresql.org/ -More information about the meaning of these metrics can be found in the -[PostgreSQL Documentation][1]. +## Global configuration options -[1]: http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `address` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration ```toml @sample.conf # Read metrics from one or many postgresql servers [[inputs.postgresql]] - ## specify address via a url matching: - ## postgres://[pqgotest[:password]]@localhost[/dbname]?sslmode=[disable|verify-ca|verify-full] + ## Specify address via a url matching: + ## postgres://[pqgotest[:password]]@localhost[/dbname]?sslmode=[disable|verify-ca|verify-full]&statement_timeout=... ## or a simple string: ## host=localhost user=pqgotest password=... sslmode=... dbname=app_production + ## Users can pass the path to the socket as the host value to use a socket + ## connection (e.g. `/var/run/postgresql`). ## ## All connection parameters are optional. ## @@ -54,6 +47,7 @@ More information about the meaning of these metrics can be found in the ## to grab metrics for. ## address = "host=localhost user=postgres sslmode=disable" + ## A custom name for the database that will be used as the "server" tag in the ## measurement output. If not specified, a default one generated from ## the connection address is used. @@ -62,6 +56,9 @@ More information about the meaning of these metrics can be found in the ## connection configuration. ## maxlifetime - specify the maximum lifetime of a connection. ## default is forever (0s) + ## + ## Note that this does not interrupt queries, the lifetime will not be enforced + ## whilst a query is running # max_lifetime = "0s" ## A list of databases to explicitly ignore. If not specified, metrics for all @@ -90,6 +87,16 @@ Or via an url matching: postgres://[pqgotest[:password]]@host:port[/dbname]?sslmode=[disable|verify-ca|verify-full] ``` +Users can pass the path to the socket as the host value to use a socket +connection (e.g. `/var/run/postgresql`). + +It is also possible to specify a query timeout maximum execution time (in ms) +for any individual statement passed over the connection + +```text +postgres://[pqgotest[:password]]@host:port[/dbname]?sslmode=[disable|verify-ca|verify-full]&statement_timeout=10000 +``` + All connection parameters are optional. Without the dbname parameter, the driver will default to a database with the same name as the user. This dbname is just for instantiating a connection with the server and doesn't restrict the @@ -109,6 +116,19 @@ databases are gathered. Do NOT use with the 'ignored_databases' option. databases = ["app_production", "testing"]` ``` +### Permissions + +The plugins gathers metrics from the `pg_stat_database` and `pg_stat_bgwriter` +views. To grant a user access to the views run: + +```sql +GRANT pg_read_all_stats TO user; +``` + +See the [PostgreSQL docs][] for more information on the predefined roles. + +[PostgreSQL docs]: https://www.postgresql.org/docs/current/predefined-roles.html + ### TLS Configuration Add the `sslkey`, `sslcert` and `sslrootcert` options to your DSN: @@ -116,3 +136,51 @@ Add the `sslkey`, `sslcert` and `sslrootcert` options to your DSN: ```shell host=localhost user=pgotest dbname=app_production sslmode=require sslkey=/etc/telegraf/key.pem sslcert=/etc/telegraf/cert.pem sslrootcert=/etc/telegraf/ca.pem ``` + +## Metrics + +This postgresql plugin provides metrics for your postgres database. It currently +works with postgres versions 8.1+. It uses data from the built in +_pg_stat_database_ and pg_stat_bgwriter views. The metrics recorded depend on +your version of postgres. See table: + +```sh +pg version 9.2+ 9.1 8.3-9.0 8.1-8.2 7.4-8.0(unsupported) +--- --- --- ------- ------- ------- +datid x x x x +datname x x x x +numbackends x x x x x +xact_commit x x x x x +xact_rollback x x x x x +blks_read x x x x x +blks_hit x x x x x +tup_returned x x x +tup_fetched x x x +tup_inserted x x x +tup_updated x x x +tup_deleted x x x +conflicts x x +temp_files x +temp_bytes x +deadlocks x +blk_read_time x +blk_write_time x +stats_reset* x x +``` + +_* value ignored and therefore not recorded._ + +More information about the meaning of these metrics can be found in the +[PostgreSQL Documentation][1]. + +[1]: http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW + +## Example Output + +```text +postgresql,db=postgres_global,server=dbname\=postgres\ host\=localhost\ port\=5432\ statement_timeout\=10000\ user\=postgres tup_fetched=1271i,tup_updated=5i,session_time=1451414320768.855,xact_rollback=2i,conflicts=0i,blk_write_time=0,temp_bytes=0i,datid=0i,sessions_fatal=0i,tup_returned=1339i,sessions_abandoned=0i,blk_read_time=0,blks_read=88i,idle_in_transaction_time=0,sessions=0i,active_time=0,tup_inserted=24i,tup_deleted=0i,temp_files=0i,numbackends=0i,xact_commit=4i,sessions_killed=0i,blks_hit=5616i,deadlocks=0i 1672399790000000000 +postgresql,db=postgres,host=oss_cluster_host,server=dbname\=postgres\ host\=localhost\ port\=5432\ statement_timeout\=10000\ user\=postgres conflicts=0i,sessions_abandoned=2i,active_time=460340.823,tup_returned=119382i,tup_deleted=0i,blk_write_time=0,xact_commit=305i,blks_hit=16358i,deadlocks=0i,sessions=12i,numbackends=1i,temp_files=0i,xact_rollback=5i,sessions_fatal=0i,datname="postgres",blk_read_time=0,idle_in_transaction_time=0,temp_bytes=0i,tup_inserted=3i,tup_updated=0i,blks_read=299i,datid=5i,session_time=469056.613,sessions_killed=0i,tup_fetched=5550i 1672399790000000000 +postgresql,db=template1,host=oss_cluster_host,server=dbname\=postgres\ host\=localhost\ port\=5432\ statement_timeout\=10000\ user\=postgres active_time=0,idle_in_transaction_time=0,blks_read=1352i,sessions_abandoned=0i,tup_fetched=28544i,session_time=0,sessions_killed=0i,temp_bytes=0i,tup_returned=188541i,xact_commit=1168i,blk_read_time=0,sessions_fatal=0i,datid=1i,datname="template1",conflicts=0i,xact_rollback=0i,numbackends=0i,deadlocks=0i,sessions=0i,tup_inserted=17520i,temp_files=0i,tup_updated=743i,blk_write_time=0,blks_hit=99487i,tup_deleted=34i 1672399790000000000 +postgresql,db=template0,host=oss_cluster_host,server=dbname\=postgres\ host\=localhost\ port\=5432\ statement_timeout\=10000\ user\=postgres sessions=0i,datid=4i,tup_updated=0i,sessions_abandoned=0i,blk_write_time=0,numbackends=0i,blks_read=0i,blks_hit=0i,sessions_fatal=0i,temp_files=0i,deadlocks=0i,conflicts=0i,xact_commit=0i,xact_rollback=0i,session_time=0,datname="template0",tup_returned=0i,tup_inserted=0i,idle_in_transaction_time=0,tup_fetched=0i,active_time=0,temp_bytes=0i,tup_deleted=0i,blk_read_time=0,sessions_killed=0i 1672399790000000000 +postgresql,db=postgres,host=oss_cluster_host,server=dbname\=postgres\ host\=localhost\ port\=5432\ statement_timeout\=10000\ user\=postgres buffers_clean=0i,buffers_alloc=426i,checkpoints_req=1i,buffers_checkpoint=50i,buffers_backend_fsync=0i,checkpoint_write_time=5053,checkpoints_timed=26i,checkpoint_sync_time=26,maxwritten_clean=0i,buffers_backend=9i 1672399790000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/postgresql_extensible.md b/src/writeData/components/telegrafPlugins/postgresql_extensible.md index d2f706606d..a5a50d378c 100644 --- a/src/writeData/components/telegrafPlugins/postgresql_extensible.md +++ b/src/writeData/components/telegrafPlugins/postgresql_extensible.md @@ -1,15 +1,35 @@ # PostgreSQL Extensible Input Plugin -This postgresql plugin provides metrics for your postgres database. It has been -designed to parse SQL queries in the plugin section of your `telegraf.conf`. +This plugin queries a [PostgreSQL][postgres] server and provides metrics for +the returned result. This is useful when using PostgreSQL extensions to collect +additional metrics. -The example below has two queries are specified, with the following parameters: +> [!TIP] +> Please also check the more generic [sql input plugin][inputs_sql]. -* The SQL query itself -* The minimum PostgreSQL version supported (the numeric display visible in pg_settings) -* A boolean to define if the query has to be run against some specific database (defined in the `databases` variable of the plugin section) -* The name of the measurement -* A list of the columns to be defined as tags +⭐ Telegraf v0.12.0 +🏷️ datastore +💻 all + +[postgres]: https://www.postgresql.org/ +[inputs_sql]: /plugins/inputs/sql/README.md + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `address` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -17,7 +37,7 @@ The example below has two queries are specified, with the following parameters: # Read metrics from one or many postgresql servers [[inputs.postgresql_extensible]] # specify address via a url matching: - # postgres://[pqgotest[:password]]@host:port[/dbname]?sslmode=... + # postgres://[pqgotest[:password]]@host:port[/dbname]?sslmode=...&statement_timeout=... # or a simple string: # host=localhost port=5432 user=pqgotest password=... sslmode=... dbname=app_production # @@ -29,10 +49,6 @@ The example below has two queries are specified, with the following parameters: # address = "host=localhost user=postgres sslmode=disable" - ## A list of databases to pull metrics about. - ## deprecated in 1.22.3; use the sqlquery option to specify database to use - # databases = ["app_production", "testing"] - ## Whether to use prepared statements when connecting to the database. ## This should be set to false when connecting through a PgBouncer instance ## with pool_mode set to transaction. @@ -42,6 +58,9 @@ The example below has two queries are specified, with the following parameters: # The script option can be used to specify the .sql file path. # If script and sqlquery options specified at same time, sqlquery will be used # + # the measurement field defines measurement name for metrics produced + # by the query. Default is "postgresql". + # # the tagvalue field is used to define custom tags (separated by comas). # the query is expected to return columns which match the names of the # defined tags. The values in these columns must be of a string-type, @@ -51,36 +70,47 @@ The example below has two queries are specified, with the following parameters: # default, all rows inserted with current time. By setting a timestamp column, # the row will be inserted with that column's value. # + # The min_version field specifies minimal database version this query + # will run on. + # + # The max_version field when set specifies maximal database version + # this query will NOT run on. + # + # Database version in `minversion` and `maxversion` is represented as + # a single integer without last component, for example: + # 9.6.2 -> 906 + # 15.2 -> 1500 + # # Structure : # [[inputs.postgresql_extensible.query]] + # measurement string # sqlquery string - # version string + # min_version int + # max_version int # withdbname boolean # tagvalue string (coma separated) # timestamp string [[inputs.postgresql_extensible.query]] - sqlquery="SELECT * FROM pg_stat_database where datname" - version=901 - withdbname=false + measurement="pg_stat_database" + sqlquery="SELECT * FROM pg_stat_database WHERE datname" + min_version=901 tagvalue="" [[inputs.postgresql_extensible.query]] script="your_sql-filepath.sql" - version=901 - withdbname=false + min_version=901 + max_version=1300 tagvalue="" ``` The system can be easily extended using homemade metrics collection tools or -using postgresql extensions ([pg_stat_statements][1], [pg_proctab][2] or -[powa][3]) - -[1]: http://www.postgresql.org/docs/current/static/pgstatstatements.html +using the postgresql extensions [pg_stat_statements][pg_stat_statements], +[pg_proctab][pg_proctab] or [powa][powa]. -[2]: https://github.com/markwkm/pg_proctab +[pg_stat_statements]: http://www.postgresql.org/docs/current/static/pgstatstatements.html +[pg_proctab]: https://github.com/markwkm/pg_proctab +[powa]: http://dalibo.github.io/powa/ -[3]: http://dalibo.github.io/powa/ - -## Sample Queries +### Sample Queries * telegraf.conf postgresql_extensible queries (assuming that you have configured correctly your connection) @@ -136,7 +166,7 @@ using postgresql extensions ([pg_stat_statements][1], [pg_proctab][2] or tagvalue="type,enabled" ``` -## Postgresql Side +### Postgresql Side postgresql.conf : @@ -159,7 +189,7 @@ create extension pg_proctab; * pg_stat_kcache is available on the postgresql.org yum repo * pg_proctab is available at : -## Views +### Views * Blocking sessions @@ -261,3 +291,28 @@ CREATE OR REPLACE VIEW public.sessions AS stat_activity stat WHERE proc.pid = stat.pid; ``` + +## Example Output + +The example out below was taken by running the query + +```sql +select count(*)*100 / (select cast(nullif(setting, '') AS integer) from pg_settings where name='max_connections') as percentage_of_used_cons from pg_stat_activity +``` + +Which generates the following + +```text +postgresql,db=postgres,server=dbname\=postgres\ host\=localhost\ port\=5432\ statement_timeout\=10000\ user\=postgres percentage_of_used_cons=6i 1672400531000000000 +``` + +## Metrics + +The metrics collected by this input plugin will depend on the configured query. + +By default, the following format will be used + +* postgresql + * tags: + * db + * server diff --git a/src/writeData/components/telegrafPlugins/powerdns.md b/src/writeData/components/telegrafPlugins/powerdns.md index 56e1efcdb1..4e47c88adf 100644 --- a/src/writeData/components/telegrafPlugins/powerdns.md +++ b/src/writeData/components/telegrafPlugins/powerdns.md @@ -1,6 +1,25 @@ # PowerDNS Input Plugin -The powerdns plugin gathers metrics about PowerDNS using unix socket. +This plugin gathers metrics from [PowerDNS][powerdns] servers using unix +sockets. + +> [!NOTE] +> This plugin will need access to the powerdns control socket. + +⭐ Telegraf v0.10.2 +🏷️ server +💻 all + +[powerdns]: https://www.powerdns.com/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -16,16 +35,17 @@ The powerdns plugin gathers metrics about PowerDNS using unix socket. ### Permissions -Telegraf will need read access to the powerdns control socket. - -On many systems this can be accomplished by adding the `telegraf` user to the -`pdns` group: +Telegraf will need access to the powerdns control socket. On many systems this +can be accomplished by adding the `telegraf` user to the `pdns` group: ```sh usermod telegraf -a -G pdns ``` -## Measurements & Fields +Additionally, telegraf may need additional permissions. Look at the +`socket-mode` PowerDNS option to set permissions on the socket. + +## Metrics - powerdns - corrupt-packets @@ -73,7 +93,6 @@ usermod telegraf -a -G pdns ## Example Output -```sh -$ ./telegraf --config telegraf.conf --input-filter powerdns --test -> powerdns,server=/var/run/pdns.controlsocket corrupt-packets=0i,deferred-cache-inserts=0i,deferred-cache-lookup=0i,dnsupdate-answers=0i,dnsupdate-changes=0i,dnsupdate-queries=0i,dnsupdate-refused=0i,key-cache-size=0i,latency=26i,meta-cache-size=0i,packetcache-hit=0i,packetcache-miss=1i,packetcache-size=0i,qsize-q=0i,query-cache-hit=0i,query-cache-miss=6i,rd-queries=1i,recursing-answers=0i,recursing-questions=0i,recursion-unanswered=0i,security-status=3i,servfail-packets=0i,signature-cache-size=0i,signatures=0i,sys-msec=4349i,tcp-answers=0i,tcp-queries=0i,timedout-packets=0i,udp-answers=1i,udp-answers-bytes=50i,udp-do-queries=0i,udp-queries=0i,udp4-answers=1i,udp4-queries=1i,udp6-answers=0i,udp6-queries=0i,uptime=166738i,user-msec=3036i 1454078624932715706 +```text +powerdns,server=/var/run/pdns.controlsocket corrupt-packets=0i,deferred-cache-inserts=0i,deferred-cache-lookup=0i,dnsupdate-answers=0i,dnsupdate-changes=0i,dnsupdate-queries=0i,dnsupdate-refused=0i,key-cache-size=0i,latency=26i,meta-cache-size=0i,packetcache-hit=0i,packetcache-miss=1i,packetcache-size=0i,qsize-q=0i,query-cache-hit=0i,query-cache-miss=6i,rd-queries=1i,recursing-answers=0i,recursing-questions=0i,recursion-unanswered=0i,security-status=3i,servfail-packets=0i,signature-cache-size=0i,signatures=0i,sys-msec=4349i,tcp-answers=0i,tcp-queries=0i,timedout-packets=0i,udp-answers=1i,udp-answers-bytes=50i,udp-do-queries=0i,udp-queries=0i,udp4-answers=1i,udp4-queries=1i,udp6-answers=0i,udp6-queries=0i,uptime=166738i,user-msec=3036i 1454078624932715706 ``` diff --git a/src/writeData/components/telegrafPlugins/powerdns_recursor.md b/src/writeData/components/telegrafPlugins/powerdns_recursor.md index 377e1ef0e8..13d94851ef 100644 --- a/src/writeData/components/telegrafPlugins/powerdns_recursor.md +++ b/src/writeData/components/telegrafPlugins/powerdns_recursor.md @@ -1,7 +1,26 @@ # PowerDNS Recursor Input Plugin -The `powerdns_recursor` plugin gathers metrics about PowerDNS Recursor using -the unix controlsocket. +This plugin gathers metrics from [PowerDNS Recursor][powerdns_recursor] +instances using the unix control-sockets. + +> [!NOTE] +> Telegraf will need read and write access to the control socket and the +> `socket_dir`. + +⭐ Telegraf v1.11.0 +🏷️ server +💻 all + +[powerdns_recursor]: https://www.powerdns.com/powerdns-recursor + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -16,8 +35,26 @@ the unix controlsocket. # socket_dir = "/var/run/" ## Socket permissions for the receive socket. # socket_mode = "0666" + + ## The version of the PowerDNS control protocol to use. You will have to + ## change this based on your PowerDNS Recursor version, see below: + ## Version 1: PowerDNS <4.5.0 + ## Version 2: PowerDNS 4.5.0 - 4.5.11 + ## Version 3: PowerDNS >=4.6.0 + ## By default this is set to 1. + # control_protocol_version = 1 + ``` +### Newer PowerDNS Recursor versions + +By default, this plugin is compatible with PowerDNS Recursor versions older +than `4.5.0`. If you are using a newer version then you'll need to adjust the +`control_protocol_version` configuration option based on your version. For +versions between `4.5.0` and `4.5.11` set it to `2` and for versions `4.6.0` +and newer set it to `3`. If you don't, you will get an `i/o timeout` or a +`protocol wrong type for socket` error. + ### Permissions Telegraf will need read/write access to the control socket and to the @@ -162,6 +199,6 @@ chmod 770 /var/run/pdns ## Example Output -```shell +```text powerdns_recursor,server=/var/run/pdns_recursor.controlsocket all-outqueries=3631810i,answers-slow=36863i,answers0-1=179612i,answers1-10=1223305i,answers10-100=1252199i,answers100-1000=408357i,auth-zone-queries=4i,auth4-answers-slow=44758i,auth4-answers0-1=59721i,auth4-answers1-10=1766787i,auth4-answers10-100=1329638i,auth4-answers100-1000=430372i,auth6-answers-slow=0i,auth6-answers0-1=0i,auth6-answers1-10=0i,auth6-answers10-100=0i,auth6-answers100-1000=0i,cache-entries=296689i,cache-hits=150654i,cache-misses=2949682i,case-mismatches=0i,chain-resends=420004i,client-parse-errors=0i,concurrent-queries=0i,dlg-only-drops=0i,dnssec-queries=152970i,dnssec-result-bogus=0i,dnssec-result-indeterminate=0i,dnssec-result-insecure=0i,dnssec-result-nta=0i,dnssec-result-secure=47i,dnssec-validations=47i,dont-outqueries=62i,ecs-queries=0i,ecs-responses=0i,edns-ping-matches=0i,edns-ping-mismatches=0i,failed-host-entries=21i,fd-usage=32i,ignored-packets=0i,ipv6-outqueries=0i,ipv6-questions=0i,malloc-bytes=0i,max-cache-entries=1000000i,max-mthread-stack=33747i,max-packetcache-entries=500000i,negcache-entries=100019i,no-packet-error=0i,noedns-outqueries=73341i,noerror-answers=25453808i,noping-outqueries=0i,nsset-invalidations=2398i,nsspeeds-entries=3966i,nxdomain-answers=3341302i,outgoing-timeouts=44384i,outgoing4-timeouts=44384i,outgoing6-timeouts=0i,over-capacity-drops=0i,packetcache-entries=78258i,packetcache-hits=25999027i,packetcache-misses=3100179i,policy-drops=0i,policy-result-custom=0i,policy-result-drop=0i,policy-result-noaction=3100336i,policy-result-nodata=0i,policy-result-nxdomain=0i,policy-result-truncate=0i,qa-latency=6553i,query-pipe-full-drops=0i,questions=29099363i,real-memory-usage=280494080i,resource-limits=0i,security-status=1i,server-parse-errors=0i,servfail-answers=304253i,spoof-prevents=0i,sys-msec=1312600i,tcp-client-overflow=0i,tcp-clients=0i,tcp-outqueries=116i,tcp-questions=133i,throttle-entries=21i,throttled-out=13296i,throttled-outqueries=13296i,too-old-drops=2i,udp-in-errors=4i,udp-noport-errors=2918i,udp-recvbuf-errors=0i,udp-sndbuf-errors=0i,unauthorized-tcp=0i,unauthorized-udp=0i,unexpected-packets=0i,unreachables=1708i,uptime=167482i,user-msec=1282640i,x-our-latency=19i,x-ourtime-slow=642i,x-ourtime0-1=3095566i,x-ourtime1-2=3401i,x-ourtime16-32=201i,x-ourtime2-4=304i,x-ourtime4-8=198i,x-ourtime8-16=24i 1533903879000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/processes.md b/src/writeData/components/telegrafPlugins/processes.md index 12caba4eca..6b0c74c106 100644 --- a/src/writeData/components/telegrafPlugins/processes.md +++ b/src/writeData/components/telegrafPlugins/processes.md @@ -1,19 +1,34 @@ # Processes Input Plugin -This plugin gathers info about the total number of processes and groups -them by status (zombie, sleeping, running, etc.) +This plugin gathers info about the total number of processes and groups them by +status (zombie, sleeping, running, etc.) -On linux this plugin requires access to procfs (/proc), on other OSes -it requires access to execute `ps`. +> [!NOTE] +> On Linux this plugin requires access to procfs (/proc), on other operating +> systems the plugin must be able to execute the `ps` command. -**Supported Platforms**: Linux, FreeBSD, Darwin +⭐ Telegraf v0.11.0 +🏷️ system +💻 freebsd, linux, macos + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Get the number of processes and group them by status +# This plugin ONLY supports non-Windows [[inputs.processes]] - # no configuration + ## Use sudo to run ps command on *BSD systems. Linux systems will read + ## /proc, so this does not apply there. + # use_sudo = false ``` Another possible configuration is to define an alternative path for resolving @@ -22,6 +37,28 @@ retrieve process information from the specified location. `docker run -v /proc:/rootfs/proc:ro -e HOST_PROC=/rootfs/proc` +### Using sudo + +Linux systems will read from `/proc`, while BSD systems will use the `ps` +command. The `ps` command generally does not require elevated permissions. +However, if a user wants to collect system-wide stats, elevated permissions are +required. If the user has configured sudo with the ability to run this +command, then set the `use_sudo` to true. + +If your account does not already have the ability to run commands with +passwordless sudo then updates to the sudoers file are required. Below is an +example to allow the requires ps commands: + +First, use the `visudo` command to start editing the sudoers file. Then add +the following content, where `` is the username of the user that +needs this access: + +```text +Cmnd_Alias PS = /bin/ps + ALL=(root) NOPASSWD: PS +Defaults!PS !logfile, !syslog, !pam_session +``` + ## Metrics - processes @@ -39,13 +76,11 @@ retrieve process information from the specified location. - parked (linux only) - total_threads (linux only) -## Process State Mappings - Different OSes use slightly different State codes for their processes, these state codes are documented in `man ps`, and I will give a mapping of what major OS state codes correspond to in telegraf metrics: -```sh +```text Linux FreeBSD Darwin meaning R R R running S S S sleeping @@ -59,6 +94,6 @@ Linux FreeBSD Darwin meaning ## Example Output -```shell +```text processes blocked=8i,running=1i,sleeping=265i,stopped=0i,total=274i,zombie=0i,dead=0i,paging=0i,total_threads=687i 1457478636980905042 ``` diff --git a/src/writeData/components/telegrafPlugins/procstat.md b/src/writeData/components/telegrafPlugins/procstat.md index e59549267e..a2b907b723 100644 --- a/src/writeData/components/telegrafPlugins/procstat.md +++ b/src/writeData/components/telegrafPlugins/procstat.md @@ -1,18 +1,23 @@ # Procstat Input Plugin -The procstat plugin can be used to monitor the system resource usage of one or -more processes. The procstat_lookup metric displays the query information, -specifically the number of PIDs returned on a search +This plugin allows to monitor the system resource usage of one or more +processes. The plugin provides metrics about the individual processes as well as +accumulated metrics on the number of PIDs returned on a search. Processes can +be filtered e.g. by regular expressions on the command, the user owning the +process or the service that started the process. -Processes can be selected for monitoring using one of several methods: +⭐ Telegraf v0.2.0 +🏷️ system +💻 all -- pidfile -- exe -- pattern -- user -- systemd_unit -- cgroup -- win_service +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -32,6 +37,8 @@ Processes can be selected for monitoring using one of several methods: # include_systemd_children = false ## CGroup name or path, supports globs # cgroup = "systemd/system.slice/nginx.service" + ## Supervisor service names of hypervisorctl management + # supervisor_units = ["webserver", "proxy"] ## Windows service name # win_service = "" @@ -43,38 +50,127 @@ Processes can be selected for monitoring using one of several methods: ## Field name prefix # prefix = "" - ## When true add the full cmdline as a tag. - # cmdline_tag = false - ## Mode to use when calculating CPU usage. Can be one of 'solaris' or 'irix'. # mode = "irix" - ## Add the PID as a tag instead of as a field. When collecting multiple - ## processes with otherwise matching tags this setting should be enabled to - ## ensure each process has a unique identity. - ## - ## Enabling this option may result in a large number of series, especially - ## when processes have a short lifetime. - # pid_tag = false + ## Add the given information tag instead of a field + ## This allows to create unique metrics/series when collecting processes with + ## otherwise identical tags. However, please be careful as this can easily + ## result in a large number of series, especially with short-lived processes, + ## creating high cardinality at the output. + ## Available options are: + ## cmdline -- full commandline + ## pid -- ID of the process + ## ppid -- ID of the process' parent + ## status -- state of the process + ## user -- username owning the process + ## socket only options: + ## protocol -- protocol type of the process socket + ## state -- state of the process socket + ## src -- source address of the process socket (non-unix sockets) + ## src_port -- source port of the process socket (non-unix sockets) + ## dest -- destination address of the process socket (non-unix sockets) + ## dest_port -- destination port of the process socket (non-unix sockets) + ## name -- name of the process socket (unix sockets only) + ## Available for procstat_lookup: + ## level -- level of the process filtering + # tag_with = [] + + ## Properties to collect + ## Available options are + ## cpu -- CPU usage statistics + ## limits -- set resource limits + ## memory -- memory usage statistics + ## mmap -- mapped memory usage statistics (caution: can cause high load) + ## sockets -- socket statistics for protocols in 'socket_protocols' + # properties = ["cpu", "limits", "memory", "mmap"] + + ## Protocol filter for the sockets property + ## Available options are + ## all -- all of the protocols below + ## tcp4 -- TCP socket statistics for IPv4 + ## tcp6 -- TCP socket statistics for IPv6 + ## udp4 -- UDP socket statistics for IPv4 + ## udp6 -- UDP socket statistics for IPv6 + ## unix -- Unix socket statistics + # socket_protocols = ["all"] ## Method to use when finding process IDs. Can be one of 'pgrep', or ## 'native'. The pgrep finder calls the pgrep executable in the PATH while ## the native finder performs the search directly in a manor dependent on the ## platform. Default is 'pgrep' # pid_finder = "pgrep" + + ## New-style filtering configuration (multiple filter sections are allowed) + # [[inputs.procstat.filter]] + # ## Name of the filter added as 'filter' tag + # name = "shell" + # + # ## Service filters, only one is allowed + # ## Systemd unit names (wildcards are supported) + # # systemd_units = [] + # ## CGroup name or path (wildcards are supported) + # # cgroups = [] + # ## Supervisor service names of hypervisorctl management + # # supervisor_units = [] + # ## Windows service names + # # win_service = [] + # + # ## Process filters, multiple are allowed + # ## Regular expressions to use for matching against the full command + # # patterns = ['.*'] + # ## List of users owning the process (wildcards are supported) + # # users = ['*'] + # ## List of executable paths of the process (wildcards are supported) + # # executables = ['*'] + # ## List of process names (wildcards are supported) + # # process_names = ['*'] + # ## Recursion depth for determining children of the matched processes + # ## A negative value means all children with infinite depth + # # recursion_depth = 0 ``` ### Windows support -Preliminary support for Windows has been added, however you may prefer using -the `win_perf_counters` input plugin as a more mature alternative. +The plugin reports process information on Windows, however if you need more +in-depth information about the process you may prefer using the +`win_perf_counters` or `win_wmi` input plugins. + +### Darwin specifics + +If you use this plugin with `supervisor_units` *and* `pattern` on Darwin, you +**have to** use the `pgrep` finder as the underlying library relies on `pgrep`. + +### Permissions + +Some files or directories may require elevated permissions. As such a user may +need to provide telegraf with higher levels of permissions to access and produce +metrics. + +### Remote users on Posix systems + +To resolve usernames of processes owned by remote users e.g. LDAP or NIS the +plugin relies on the `id` command. This command must be available on the system, +in the PATH and executable by Telegraf, otherwise the username cannot be +resolved and the user-ID is used instead. ## Metrics +For descriptions of these tags and fields, consider reading one of the +following: + +- [Linux Kernel /proc Filesystem][kernel /proc] +- [proc manpage][manpage] + +[kernel /proc]: https://www.kernel.org/doc/html/latest/filesystems/proc.html +[manpage]: https://man7.org/linux/man-pages/man5/proc.5.html + +Below are an example set of tags and fields: + - procstat - tags: - - pid (when `pid_tag` is true) - - cmdline (when 'cmdline_tag' is true) + - pid (if requested) + - cmdline (if requested) - process_name - pidfile (when defined) - exe (when defined) @@ -83,29 +179,32 @@ the `win_perf_counters` input plugin as a more mature alternative. - systemd_unit (when defined) - cgroup (when defined) - cgroup_full (when cgroup or systemd_unit is used with glob) + - supervisor_unit (when defined) - win_service (when defined) + - parent_pid (for child processes) + - child_level (for child processes) - fields: - child_major_faults (int) - child_minor_faults (int) - created_at (int) [epoch in nanoseconds] - cpu_time (int) - - cpu_time_guest (float) - - cpu_time_guest_nice (float) - - cpu_time_idle (float) - - cpu_time_iowait (float) - - cpu_time_irq (float) - - cpu_time_nice (float) - - cpu_time_soft_irq (float) - - cpu_time_steal (float) + - cpu_time_iowait (float) (zero for all OSes except Linux) - cpu_time_system (float) - cpu_time_user (float) - cpu_usage (float) + - disk_read_bytes (int, Linux only, *telegraf* may need to be ran as **root**) + - disk_write_bytes (int, Linux only, *telegraf* may need to be ran as **root**) - involuntary_context_switches (int) - major_faults (int) - - memory_data (int) - - memory_locked (int) + - memory_anonymous (int) + - memory_private_clean (int) + - memory_private_dirty (int) + - memory_pss (int) + - memory_referenced (int) - memory_rss (int) - - memory_stack (int) + - memory_shared_clean (int) + - memory_shared_dirty (int) + - memory_size (int) - memory_swap (int) - memory_usage (float) - memory_vms (int) @@ -114,6 +213,8 @@ the `win_perf_counters` input plugin as a more mature alternative. - num_fds (int, *telegraf* may need to be ran as **root**) - num_threads (int) - pid (int) + - ppid (int) + - status (string) - read_bytes (int, *telegraf* may need to be ran as **root**) - read_count (int, *telegraf* may need to be ran as **root**) - realtime_priority (int) @@ -153,18 +254,50 @@ the `win_perf_counters` input plugin as a more mature alternative. - user - systemd_unit - cgroup + - supervisor_unit - win_service - result - fields: - pid_count (int) - running (int) - result_code (int, success = 0, lookup_error = 1) +- procstat_socket (if configured, Linux only) + - tags: + - pid (if requested) + - protocol (if requested) + - cmdline (if requested) + - process_name + - pidfile (when defined) + - exe (when defined) + - pattern (when defined) + - user (when selected) + - systemd_unit (when defined) + - cgroup (when defined) + - cgroup_full (when cgroup or systemd_unit is used with glob) + - supervisor_unit (when defined) + - win_service (when defined) + - fields: + - protocol + - state + - pid + - src + - src_port (tcp and udp sockets only) + - dest (tcp and udp sockets only) + - dest_port (tcp and udp sockets only) + - bytes_received (tcp sockets only) + - bytes_sent (tcp sockets only) + - lost (tcp sockets only) + - retransmits (tcp sockets only) + - rx_queue + - tx_queue + - inode (unix sockets only) *NOTE: Resource limit > 2147483647 will be reported as 2147483647.* ## Example Output -```shell +```text procstat_lookup,host=prash-laptop,pattern=influxd,pid_finder=pgrep,result=success pid_count=1i,running=1i,result_code=0i 1582089700000000000 -procstat,host=prash-laptop,pattern=influxd,process_name=influxd,user=root involuntary_context_switches=151496i,child_minor_faults=1061i,child_major_faults=8i,cpu_time_user=2564.81,cpu_time_idle=0,cpu_time_irq=0,cpu_time_guest=0,pid=32025i,major_faults=8609i,created_at=1580107536000000000i,voluntary_context_switches=1058996i,cpu_time_system=616.98,cpu_time_steal=0,cpu_time_guest_nice=0,memory_swap=0i,memory_locked=0i,memory_usage=1.7797634601593018,num_threads=18i,cpu_time_nice=0,cpu_time_iowait=0,cpu_time_soft_irq=0,memory_rss=148643840i,memory_vms=1435688960i,memory_data=0i,memory_stack=0i,minor_faults=1856550i 1582089700000000000 +procstat,host=prash-laptop,pattern=influxd,process_name=influxd,user=root involuntary_context_switches=151496i,child_minor_faults=1061i,child_major_faults=8i,cpu_time_user=2564.81,pid=32025i,major_faults=8609i,created_at=1580107536000000000i,voluntary_context_switches=1058996i,cpu_time_system=616.98,memory_swap=0i,memory_locked=0i,memory_usage=1.7797634601593018,num_threads=18i,cpu_time_iowait=0,memory_rss=148643840i,memory_vms=1435688960i,memory_data=0i,memory_stack=0i,minor_faults=1856550i 1582089700000000000 +procstat_socket,host=prash-laptop,process_name=browser,protocol=tcp4 bytes_received=826987i,bytes_sent=32869i,dest="192.168.0.2",dest_port=443i,lost=0i,pid=32025i,retransmits=0i,rx_queue=0i,src="192.168.0.1",src_port=52106i,state="established",tx_queue=0i 1582089700000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/prometheus.md b/src/writeData/components/telegrafPlugins/prometheus.md index ec239cb7a2..74491433d9 100644 --- a/src/writeData/components/telegrafPlugins/prometheus.md +++ b/src/writeData/components/telegrafPlugins/prometheus.md @@ -1,7 +1,31 @@ # Prometheus Input Plugin -The prometheus input plugin gathers metrics from HTTP servers exposing metrics -in Prometheus format. +This plugin gathers metrics from [Prometheus][prometheus] metric endpoints such +as applications implementing such an endpoint or node-exporter instances. This +plugin also supports various service-discovery methods. + +⭐ Telegraf v0.1.5 +🏷️ applications, server +💻 all + +[prometheus]: https://prometheus.io/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `username`, `password` +and `bearer_token_string` option. See the +[secret-store documentation][SECRETSTORE] for more details on how to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -10,46 +34,83 @@ in Prometheus format. [[inputs.prometheus]] ## An array of urls to scrape metrics from. urls = ["http://localhost:9100/metrics"] - + ## Metric version controls the mapping from Prometheus metrics into Telegraf metrics. ## See "Metric Format Configuration" in plugins/inputs/prometheus/README.md for details. ## Valid options: 1, 2 # metric_version = 1 - + ## Url tag name (tag containing scrapped url. optional, default is "url") # url_tag = "url" - + ## Whether the timestamp of the scraped metrics will be ignored. ## If set to true, the gather time will be used. # ignore_timestamp = false - + + ## Override content-type of the returned message + ## Available options are for prometheus: + ## text, protobuf-delimiter, protobuf-compact, protobuf-text, + ## and for openmetrics: + ## openmetrics-text, openmetrics-protobuf + ## By default the content-type of the response is used. + # content_type_override = "" + ## An array of Kubernetes services to scrape metrics from. # kubernetes_services = ["http://my-service-dns.my-namespace:9100/metrics"] - + ## Kubernetes config file to create client from. # kube_config = "/path/to/kubernetes.config" - - ## Scrape Kubernetes pods for the following prometheus annotations: - ## - prometheus.io/scrape: Enable scraping for this pod - ## - prometheus.io/scheme: If the metrics endpoint is secured then you will need to - ## set this to 'https' & most likely set the tls config. - ## - prometheus.io/path: If the metrics path is not /metrics, define it with this annotation. + + ## Scrape Pods + ## Enable scraping of k8s pods. Further settings as to which pods to scape + ## are determiend by the 'method' option below. When enabled, the default is + ## to use annotations to determine whether to scrape or not. + # monitor_kubernetes_pods = false + + ## Scrape Pods Method + ## annotations: default, looks for specific pod annotations documented below + ## settings: only look for pods matching the settings provided, not + ## annotations + ## settings+annotations: looks at pods that match annotations using the user + ## defined settings + # monitor_kubernetes_pods_method = "annotations" + + ## Scrape Pods 'annotations' method options + ## If set method is set to 'annotations' or 'settings+annotations', these + ## annotation flags are looked for: + ## - prometheus.io/scrape: Required to enable scraping for this pod. Can also + ## use 'prometheus.io/scrape=false' annotation to opt-out entirely. + ## - prometheus.io/scheme: If the metrics endpoint is secured then you will + ## need to set this to 'https' & most likely set the tls config + ## - prometheus.io/path: If the metrics path is not /metrics, define it with + ## this annotation ## - prometheus.io/port: If port is not 9102 use this annotation - # monitor_kubernetes_pods = true - + + ## Scrape Pods 'settings' method options + ## When using 'settings' or 'settings+annotations', the default values for + ## annotations can be modified using with the following options: + # monitor_kubernetes_pods_scheme = "http" + # monitor_kubernetes_pods_port = "9102" + # monitor_kubernetes_pods_path = "/metrics" + ## Get the list of pods to scrape with either the scope of ## - cluster: the kubernetes watch api (default, no need to specify) ## - node: the local cadvisor api; for scalability. Note that the config node_ip or the environment variable NODE_IP must be set to the host IP. # pod_scrape_scope = "cluster" - + ## Only for node scrape scope: node IP of the node that telegraf is running on. ## Either this config or the environment variable NODE_IP must be set. # node_ip = "10.180.1.1" - + ## Only for node scrape scope: interval in seconds for how often to get updated pod list for scraping. ## Default is 60 seconds. # pod_scrape_interval = 60 - + + ## Content length limit + ## When set, telegraf will drop responses with length larger than the configured value. + ## Default is "0KB" which means unlimited. + # content_length_limit = "0KB" + ## Restricts Kubernetes monitoring to a single namespace ## ex: monitor_kubernetes_pods_namespace = "default" # monitor_kubernetes_pods_namespace = "" @@ -62,43 +123,89 @@ in Prometheus format. # eg. To scrape pods on a specific node # kubernetes_field_selector = "spec.nodeName=$HOSTNAME" - # cache refresh interval to set the interval for re-sync of pods list. + ## Filter which pod annotations and labels will be added to metric tags + # + # pod_annotation_include = ["annotation-key-1"] + # pod_annotation_exclude = ["exclude-me"] + # pod_label_include = ["label-key-1"] + # pod_label_exclude = ["exclude-me"] + + # cache refresh interval to set the interval for re-sync of pods list. # Default is 60 minutes. # cache_refresh_interval = 60 - ## Scrape Services available in Consul Catalog - # [inputs.prometheus.consul] - # enabled = true - # agent = "http://localhost:8500" - # query_interval = "5m" - - # [[inputs.prometheus.consul.query]] - # name = "a service name" - # tag = "a service tag" - # url = 'http://{{if ne .ServiceAddress ""}}{{.ServiceAddress}}{{else}}{{.Address}}{{end}}:{{.ServicePort}}/{{with .ServiceMeta.metrics_path}}{{.}}{{else}}metrics{{end}}' - # [inputs.prometheus.consul.query.tags] - # host = "{{.Node}}" - ## Use bearer token for authorization. ('bearer_token' takes priority) # bearer_token = "/path/to/bearer/token" ## OR # bearer_token_string = "abc_123" - + ## HTTP Basic Authentication username and password. ('bearer_token' and ## 'bearer_token_string' take priority) # username = "" # password = "" - - ## Specify timeout duration for slower prometheus clients (default is 3s) - # response_timeout = "3s" - + + ## Optional custom HTTP headers + # http_headers = {"X-Special-Header" = "Special-Value"} + + ## Specify timeout duration for slower prometheus clients (default is 5s) + # timeout = "5s" + + ## This option is now used by the HTTP client to set the header response + ## timeout, not the overall HTTP timeout. + # response_timeout = "5s" + + ## HTTP Proxy support + # use_system_proxy = false + # http_proxy_url = "" + ## Optional TLS Config # tls_ca = /path/to/cafile # tls_cert = /path/to/certfile # tls_key = /path/to/keyfile - + ## Use TLS but skip chain & host verification # insecure_skip_verify = false + + ## Use the given name as the SNI server name on each URL + # tls_server_name = "myhost.example.org" + + ## TLS renegotiation method, choose from "never", "once", "freely" + # tls_renegotiation_method = "never" + + ## Enable/disable TLS + ## Set to true/false to enforce TLS being enabled/disabled. If not set, + ## enable TLS only if any of the other options are specified. + # tls_enable = true + + ## This option allows you to report the status of prometheus requests. + # enable_request_metrics = false + + ## Scrape Services available in Consul Catalog + # [inputs.prometheus.consul] + # enabled = true + # agent = "http://localhost:8500" + # query_interval = "5m" + + # [[inputs.prometheus.consul.query]] + # name = "a service name" + # tag = "a service tag" + # url = 'http://{{if ne .ServiceAddress ""}}{{.ServiceAddress}}{{else}}{{.Address}}{{end}}:{{.ServicePort}}/{{with .ServiceMeta.metrics_path}}{{.}}{{else}}metrics{{end}}' + # [inputs.prometheus.consul.query.tags] + # host = "{{.Node}}" + + ## Scrape Hosts available with http service discovery + # [inputs.prometheus.http_service_discovery] + # enabled = false + # url = "http://localhost:9000/service-discovery" + # query_interval = "5m" + + ## Control pod scraping based on pod namespace annotations + ## Pass and drop here act like tagpass and tagdrop, but instead + ## of filtering metrics they filters pod candidates for scraping + #[inputs.prometheus.namespace_annotation_pass] + # annotation_key = ["value1", "value2"] + #[inputs.prometheus.namespace_annotation_drop] + # some_annotation_key = ["dont-scrape"] ``` `urls` can contain a unix socket as well. If a different path is required @@ -155,9 +262,12 @@ cluster, or we use the kubeconfig file to determine where to monitor. Currently the following annotation are supported: * `prometheus.io/scrape` Enable scraping for this pod. -* `prometheus.io/scheme` If the metrics endpoint is secured then you will need to set this to `https` & most likely set the tls config. (default 'http') -* `prometheus.io/path` Override the path for the metrics endpoint on the service. (default '/metrics') -* `prometheus.io/port` Used to override the port. (default 9102) +* `prometheus.io/scheme` If the metrics endpoint is secured then you will need + to set this to `https` & most likely set the tls config. + (default 'http') +* `prometheus.io/path` Override the path for the metrics endpoint on the service. + (default '/metrics') +* `prometheus.io/port` Used to override the port. (default 9102) Using the `monitor_kubernetes_pods_namespace` option allows you to limit which pods you are scraping. @@ -249,6 +359,19 @@ The following example fields can be used in url or tag templates: For full list of available fields and their type see struct CatalogService in +### HTTP Service Discovery + +Enabling this option and configuring `url` will allow the plugin to +query a given http service discovery endpoint for available hosts. Using +`query_interval` the plugin will periodically query the endpoint for services +and refresh the list of scraped urls. It can use the information from the +response to build the scraped url and additional tags. + +More information on the format of http service discovery is found in the +[prometheus documentation][http_sd]. + +[http_sd]: https://prometheus.io/docs/prometheus/latest/http_sd + ### Bearer Token If set, the file specified by the `bearer_token` parameter will be read on @@ -282,6 +405,14 @@ All metrics receive the `url` tag indicating the related URL specified in the Telegraf configuration. If using Kubernetes service discovery the `address` tag is also added indicating the discovered ip address. +* prometheus_request + * tags: + * url + * address + * fields: + * response_time (float, seconds) + * content_length (int, response body length) + ## Example Output ### Source @@ -309,18 +440,19 @@ cpu_usage_user{cpu="cpu3"} 1.5045135406226022 ### Output -```shell +```text go_gc_duration_seconds,url=http://example.org:9273/metrics 1=0.001336611,count=14,sum=0.004527551,0=0.000057965,0.25=0.000083812,0.5=0.000286537,0.75=0.000365303 1505776733000000000 go_goroutines,url=http://example.org:9273/metrics gauge=21 1505776695000000000 cpu_usage_user,cpu=cpu0,url=http://example.org:9273/metrics gauge=1.513622603430151 1505776751000000000 cpu_usage_user,cpu=cpu1,url=http://example.org:9273/metrics gauge=5.829145728641773 1505776751000000000 cpu_usage_user,cpu=cpu2,url=http://example.org:9273/metrics gauge=2.119071644805144 1505776751000000000 cpu_usage_user,cpu=cpu3,url=http://example.org:9273/metrics gauge=1.5228426395944945 1505776751000000000 +prometheus_request,result=success,url=http://example.org:9273/metrics content_length=179013i,http_response_code=200i,response_time=0.051521601 1505776751000000000 ``` ### Output (when metric_version = 2) -```shell +```text prometheus,quantile=1,url=http://example.org:9273/metrics go_gc_duration_seconds=0.005574303 1556075100000000000 prometheus,quantile=0.75,url=http://example.org:9273/metrics go_gc_duration_seconds=0.0001046 1556075100000000000 prometheus,quantile=0.5,url=http://example.org:9273/metrics go_gc_duration_seconds=0.0000719 1556075100000000000 @@ -332,4 +464,33 @@ prometheus,cpu=cpu0,url=http://example.org:9273/metrics cpu_usage_user=1.5136226 prometheus,cpu=cpu1,url=http://example.org:9273/metrics cpu_usage_user=5.829145728641773 1505776751000000000 prometheus,cpu=cpu2,url=http://example.org:9273/metrics cpu_usage_user=2.119071644805144 1505776751000000000 prometheus,cpu=cpu3,url=http://example.org:9273/metrics cpu_usage_user=1.5228426395944945 1505776751000000000 +prometheus_request,result=success,url=http://example.org:9273/metrics content_length=179013i,http_response_code=200i,response_time=0.051521601 1505776751000000000 ``` + +### Output with timestamp included + +Below is an example of a Prometheus metric which includes a timestamp: + +```text +# TYPE test_counter counter +test_counter{label="test"} 1 1685443805885 +``` + +Telegraf will generate the following metric: + +```text +test_counter,address=127.0.0.1,label=test counter=1 1685443805885000000 +``` + +using the standard configuration + +```toml +[[inputs.prometheus]] + ## An array of urls to scrape metrics from. + urls = ["http://localhost:2019/metrics"] +``` + +**Please note:** Metrics generated by Prometheus endpoints are generated with +*millisecond precision*. The default Telegraf agent level precision setting +reduces this to seconds. Change the `precision` setting at agent or plugin level +to milliseconds or smaller to report metric timestamps with full precision. diff --git a/src/writeData/components/telegrafPlugins/proxmox.md b/src/writeData/components/telegrafPlugins/proxmox.md index bd9d3f864e..d21b096d27 100644 --- a/src/writeData/components/telegrafPlugins/proxmox.md +++ b/src/writeData/components/telegrafPlugins/proxmox.md @@ -1,34 +1,50 @@ # Proxmox Input Plugin -The proxmox plugin gathers metrics about containers and VMs using the Proxmox -API. +This plugin gathers metrics about containers and VMs running on a +[Proxmox][proxmox] instance using the Proxmox API. -Telegraf minimum version: Telegraf 1.16.0 +⭐ Telegraf v1.16.0 +🏷️ server +💻 all + +[proxmox]: https://www.proxmox.com + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Provides metrics from Proxmox nodes (Proxmox Virtual Environment > 6.2). [[inputs.proxmox]] - ## API connection configuration. The API token was introduced in Proxmox v6.2. Required permissions for user and token: PVEAuditor role on /. + ## API connection configuration. The API token was introduced in Proxmox v6.2. + ## Required permissions for user and token: PVEAuditor role on /. base_url = "https://localhost:8006/api2/json" api_token = "USER@REALM!TOKENID=UUID" ## Node name, defaults to OS hostname - ## Unless Telegraf is on the same host as Proxmox, setting this is required - ## for Telegraf to successfully connect to Proxmox. If not on the same host, - ## leaving this empty will often lead to a "search domain is not set" error. + ## Unless Telegraf is on the same host as Proxmox, setting this is required. # node_name = "" + ## Additional tags of the VM stats data to add as a tag + ## Supported values are "vmid" and "status" + # additional_vmstats_tags = [] + ## Optional TLS Config # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" ## Use TLS but skip chain & host verification - insecure_skip_verify = false + # insecure_skip_verify = false - # HTTP response timeout (default: 5s) - response_timeout = "5s" + ## HTTP response timeout (default: 5s) + # response_timeout = "5s" ``` ### Permissions @@ -50,40 +66,38 @@ pveum user token add influx@pve monitoring -privsep 1 pveum acl modify / -role PVEAuditor -token 'influx@pve!monitoring' ``` -See this [Proxmox docs example][1] for further details. +See this [Proxmox docs example][docs] for further details. -[1]: https://pve.proxmox.com/wiki/User_Management#_limited_api_token_for_monitoring +[docs]: https://pve.proxmox.com/wiki/User_Management#_limited_api_token_for_monitoring ## Metrics - proxmox - - status - - uptime - - cpuload - - mem_used - - mem_total - - mem_free - - mem_used_percentage - - swap_used - - swap_total - - swap_free - - swap_used_percentage - - disk_used - - disk_total - - disk_free - - disk_used_percentage - -### Tags - -- node_fqdn - FQDN of the node telegraf is running on -- vm_name - Name of the VM/container -- vm_fqdn - FQDN of the VM/container -- vm_type - Type of the VM/container (lxc, qemu) + - tags: + - node_fqdn - FQDN of the node telegraf is running on + - vm_name - Name of the VM/container + - vm_fqdn - FQDN of the VM/container + - vm_type - Type of the VM/container (lxc, qemu) + - vm_id - ID of the VM/container + - fields: + - status + - uptime + - cpuload + - mem_used + - mem_total + - mem_free + - mem_used_percentage + - swap_used + - swap_total + - swap_free + - swap_used_percentage + - disk_used + - disk_total + - disk_free + - disk_used_percentage ## Example Output ```text -$ ./telegraf --config telegraf.conf --input-filter proxmox --test -> proxmox,host=pxnode,node_fqdn=pxnode.example.com,vm_fqdn=vm1.example.com,vm_name=vm1,vm_type=lxc cpuload=0.147998116735236,disk_free=4461129728i,disk_total=5217320960i,disk_used=756191232i,disk_used_percentage=14,mem_free=1046827008i,mem_total=1073741824i,mem_used=26914816i,mem_used_percentage=2,status="running",swap_free=536698880i,swap_total=536870912i,swap_used=172032i,swap_used_percentage=0,uptime=1643793i 1595457277000000000 -> ... +proxmox,host=pxnode,node_fqdn=pxnode.example.com,vm_fqdn=vm1.example.com,vm_id=112,vm_name=vm1,vm_type=lxc cpuload=0.147998116735236,disk_free=4461129728i,disk_total=5217320960i,disk_used=756191232i,disk_used_percentage=14,mem_free=1046827008i,mem_total=1073741824i,mem_used=26914816i,mem_used_percentage=2,status="running",swap_free=536698880i,swap_total=536870912i,swap_used=172032i,swap_used_percentage=0,uptime=1643793i 1595457277000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/puppetagent.md b/src/writeData/components/telegrafPlugins/puppetagent.md index 9a8f2352b2..6aa36001ab 100644 --- a/src/writeData/components/telegrafPlugins/puppetagent.md +++ b/src/writeData/components/telegrafPlugins/puppetagent.md @@ -1,81 +1,22 @@ -# PuppetAgent Input Plugin - -The puppetagent plugin collects variables outputted from the -'last_run_summary.yaml' file usually located in `/var/lib/puppet/state/` -[PuppetAgent Runs][1]. - -```sh -cat /var/lib/puppet/state/last_run_summary.yaml - ---- - events: - failure: 0 - total: 0 - success: 0 - resources: - failed: 0 - scheduled: 0 - changed: 0 - skipped: 0 - total: 109 - failed_to_restart: 0 - restarted: 0 - out_of_sync: 0 - changes: - total: 0 - time: - user: 0.004331 - schedule: 0.001123 - filebucket: 0.000353 - file: 0.441472 - exec: 0.508123 - anchor: 0.000555 - yumrepo: 0.006989 - ssh_authorized_key: 0.000764 - service: 1.807795 - package: 1.325788 - total: 8.85354707064819 - config_retrieval: 4.75567007064819 - last_run: 1444936531 - cron: 0.000584 - version: - config: 1444936521 - puppet: "3.7.5" -``` +# Puppet Agent Input Plugin -```sh -jcross@pit-devops-02 ~ >sudo ./telegraf_linux_amd64 --input-filter puppetagent --config tele.conf --test -* Plugin: puppetagent, Collection 1 -> [] puppetagent_events_failure value=0 -> [] puppetagent_events_total value=0 -> [] puppetagent_events_success value=0 -> [] puppetagent_resources_failed value=0 -> [] puppetagent_resources_scheduled value=0 -> [] puppetagent_resources_changed value=0 -> [] puppetagent_resources_skipped value=0 -> [] puppetagent_resources_total value=109 -> [] puppetagent_resources_failedtorestart value=0 -> [] puppetagent_resources_restarted value=0 -> [] puppetagent_resources_outofsync value=0 -> [] puppetagent_changes_total value=0 -> [] puppetagent_time_user value=0.00393 -> [] puppetagent_time_schedule value=0.001234 -> [] puppetagent_time_filebucket value=0.000244 -> [] puppetagent_time_file value=0.587734 -> [] puppetagent_time_exec value=0.389584 -> [] puppetagent_time_anchor value=0.000399 -> [] puppetagent_time_sshauthorizedkey value=0.000655 -> [] puppetagent_time_service value=0 -> [] puppetagent_time_package value=1.297537 -> [] puppetagent_time_total value=9.45297606225586 -> [] puppetagent_time_configretrieval value=5.89822006225586 -> [] puppetagent_time_lastrun value=1444940131 -> [] puppetagent_time_cron value=0.000646 -> [] puppetagent_version_config value=1444940121 -> [] puppetagent_version_puppet value=3.7.5 -``` +This plugin gathers metrics of a [Puppet agent][puppet] by parsing variables +from the local last-run-summary file. + +⭐ Telegraf v0.2.0 +🏷️ system +💻 all + +[puppet]: https://www.puppet.com/ + +## Global configuration options -[1]: https://puppet.com/blog/puppet-monitoring-how-to-monitor-success-or-failure-of-puppet-runs/ +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -86,7 +27,7 @@ jcross@pit-devops-02 ~ >sudo ./telegraf_linux_amd64 --input-filter puppetagent - location = "/var/lib/puppet/state/last_run_summary.yaml" ``` -## Measurements +## Metrics ### PuppetAgent int64 measurements @@ -155,3 +96,9 @@ Meta: Measurement names: - puppetagent_version_puppet + +## Example Output + +```text +puppetagent,location=last_run_summary.yaml changes_total=0i,events_failure=0i,events_noop=0i,events_success=0i,events_total=0i,resources_changed=0i,resources_correctivechange=0i,resources_failed=0i,resources_failedtorestart=0i,resources_outofsync=0i,resources_restarted=0i,resources_scheduled=0i,resources_skipped=0i,resources_total=109i,time_anchor=0.000555,time_catalogapplication=0.010555,time_configretrieval=4.75567007064819,time_convertcatalog=1.3,time_cron=0.000584,time_exec=0.508123,time_factgeneration=0.34,time_file=0.441472,time_filebucket=0.000353,time_group=0,time_lastrun=1444936531i,time_noderetrieval=1.235,time_notify=0.00035,time_package=1.325788,time_pluginsync=0.325788,time_schedule=0.001123,time_service=1.807795,time_sshauthorizedkey=0.000764,time_total=8.85354707064819,time_transactionevaluation=4.69765,time_user=0.004331,version_configstring="environment:d6018ce",version_puppet="3.7.5" 1747757240432097335 +``` diff --git a/src/writeData/components/telegrafPlugins/rabbitmq.md b/src/writeData/components/telegrafPlugins/rabbitmq.md index 45df73fa8f..abe747371f 100644 --- a/src/writeData/components/telegrafPlugins/rabbitmq.md +++ b/src/writeData/components/telegrafPlugins/rabbitmq.md @@ -1,12 +1,32 @@ # RabbitMQ Input Plugin -Reads metrics from RabbitMQ servers via the [Management Plugin][management]. +This plugin gathers statistics from [RabbitMQ][rabbitmq] servers via the +[Management Plugin][mgmnt_plugin]. -For additional details reference the [RabbitMQ Management HTTP -Stats][management-reference]. +⭐ Telegraf v0.1.5 +🏷️ server +💻 all -[management]: https://www.rabbitmq.com/management.html -[management-reference]: https://raw.githack.com/rabbitmq/rabbitmq-management/rabbitmq_v3_6_9/priv/www/api/index.html +[rabbitmq]: https://www.rabbitmq.com +[mgmnt_plugin]: https://www.rabbitmq.com/management.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `username` and +`password` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -15,8 +35,7 @@ Stats][management-reference]. [[inputs.rabbitmq]] ## Management Plugin url. (default: http://localhost:15672) # url = "http://localhost:15672" - ## Tag added to rabbitmq_overview series; deprecated: use tags - # name = "rmq-server-1" + ## Credentials # username = "guest" # password = "guest" @@ -42,11 +61,6 @@ Stats][management-reference]. ## specified, metrics for all nodes are gathered. # nodes = ["rabbit@node1", "rabbit@node2"] - ## A list of queues to gather as the rabbitmq_queue measurement. If not - ## specified, metrics for all queues are gathered. - ## Deprecated in 1.6: Use queue_name_include instead. - # queues = ["telegraf"] - ## A list of exchanges to gather as the rabbitmq_exchange measurement. If not ## specified, metrics for all exchanges are gathered. # exchanges = ["telegraf"] @@ -159,11 +173,13 @@ Stats][management-reference]. - node - durable - auto_delete + - type (queue type as returned by RabbitMQ, if empty it defaults to + "classic"; only included when include_queue_type_tag = true) - fields: - consumer_utilisation (float, percent) - consumers (int, int) - idle_since (string, time - e.g., "2006-01-02 15:04:05") - - head_message_timestamp (int, unix timestamp - only emitted if available from API) + - head_message_timestamp (int, unix timestamp - only emitted if available) - memory (int, bytes) - message_bytes (int, bytes) - message_bytes_persist (int, bytes) @@ -221,16 +237,6 @@ Stats][management-reference]. - messages_publish (int, count) - messages_return_unroutable (int, count) -## Sample Queries - -Message rates for the entire node can be calculated from total message -counts. For instance, to get the rate of messages published per minute, use this -query: - -```sql -SELECT NON_NEGATIVE_DERIVATIVE(LAST("messages_published"), 1m) AS messages_published_rate FROM rabbitmq_overview WHERE time > now() - 10m GROUP BY time(1m) -``` - ## Example Output ```text diff --git a/src/writeData/components/telegrafPlugins/raindrops.md b/src/writeData/components/telegrafPlugins/raindrops.md index 18cc2afad8..d6020b1854 100644 --- a/src/writeData/components/telegrafPlugins/raindrops.md +++ b/src/writeData/components/telegrafPlugins/raindrops.md @@ -1,8 +1,21 @@ -# Raindrops Input Plugin +# Raindrops Middleware Input Plugin -The [raindrops](http://raindrops.bogomips.org/) plugin reads from specified -raindops [middleware](http://raindrops.bogomips.org/Raindrops/Middleware.html) -URI and adds stats to InfluxDB. +This plugin collects statistics for [Raindrops middleware][raindrops] instances. + +⭐ Telegraf v0.10.3 +🏷️ server +💻 all + +[raindrops]: http://raindrops.bogomips.org/Raindrops/Middleware.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -16,36 +29,30 @@ URI and adds stats to InfluxDB. ## Metrics - raindrops - - calling (integer, count) - - writing (integer, count) + - tags: + - server + - port + - fields: + - calling (integer, count) + - writing (integer, count) - raindrops_listen - - active (integer, bytes) - - queued (integer, bytes) - -### Tags - -- Raindops calling/writing of all the workers: - - server - - port - -- raindrops_listen (ip:port): - - ip - - port - -- raindrops_listen (Unix Socket): - - socket + - tags: + - ip (IP only) + - port (IP only) + - socket (unix socket only) + - fields: + - active (integer, bytes) + - queued (integer, bytes) ## Example Output -```shell -$ ./telegraf --config telegraf.conf --input-filter raindrops --test -* Plugin: raindrops, Collection 1 -> raindrops,port=8080,server=localhost calling=0i,writing=0i 1455479896806238204 -> raindrops_listen,ip=0.0.0.0,port=8080 active=0i,queued=0i 1455479896806561938 -> raindrops_listen,ip=0.0.0.0,port=8081 active=1i,queued=0i 1455479896806605749 -> raindrops_listen,ip=127.0.0.1,port=8082 active=0i,queued=0i 1455479896806646315 -> raindrops_listen,ip=0.0.0.0,port=8083 active=0i,queued=0i 1455479896806683252 -> raindrops_listen,ip=0.0.0.0,port=8084 active=0i,queued=0i 1455479896806712025 -> raindrops_listen,ip=0.0.0.0,port=3000 active=0i,queued=0i 1455479896806779197 -> raindrops_listen,socket=/tmp/listen.me active=0i,queued=0i 1455479896806813907 +```text +raindrops,port=8080,server=localhost calling=0i,writing=0i 1455479896806238204 +raindrops_listen,ip=0.0.0.0,port=8080 active=0i,queued=0i 1455479896806561938 +raindrops_listen,ip=0.0.0.0,port=8081 active=1i,queued=0i 1455479896806605749 +raindrops_listen,ip=127.0.0.1,port=8082 active=0i,queued=0i 1455479896806646315 +raindrops_listen,ip=0.0.0.0,port=8083 active=0i,queued=0i 1455479896806683252 +raindrops_listen,ip=0.0.0.0,port=8084 active=0i,queued=0i 1455479896806712025 +raindrops_listen,ip=0.0.0.0,port=3000 active=0i,queued=0i 1455479896806779197 +raindrops_listen,socket=/tmp/listen.me active=0i,queued=0i 1455479896806813907 ``` diff --git a/src/writeData/components/telegrafPlugins/ras.md b/src/writeData/components/telegrafPlugins/ras.md index 840a3388d2..decdcd52c4 100644 --- a/src/writeData/components/telegrafPlugins/ras.md +++ b/src/writeData/components/telegrafPlugins/ras.md @@ -1,15 +1,32 @@ # RAS Daemon Input Plugin -This plugin is only available on Linux (only for `386`, `amd64`, `arm` and -`arm64` architectures). +This plugin gathers statistics and error counts provided by the local +[RAS (reliability, availability and serviceability)][ras] daemon. -The `RAS` plugin gathers and counts errors provided by -[RASDaemon](https://github.com/mchehab/rasdaemon). +> [!NOTE] +> This plugin requires access to SQLite3 database from `RASDaemon`. Please make +> sure the Telegraf user has the required permissions to this database! + +⭐ Telegraf v1.16.0 +🏷️ server +💻 linux + +[ras]: https://github.com/mchehab/rasdaemon + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # RAS plugin exposes counter metrics for Machine Check Errors provided by RASDaemon (sqlite3 output is required). +# This plugin ONLY supports Linux on 386, amd64, arm, and arm64 [[inputs.ras]] ## Optional path to RASDaemon sqlite3 database. ## Default: /var/lib/rasdaemon/ras-mc_event.db @@ -54,14 +71,9 @@ following MCE events: - microcode_rom_parity_errors - unclassified_mce_errors -## Permissions - -This plugin requires access to SQLite3 database from `RASDaemon`. Please make -sure that user has required permissions to this database. - ## Example Output -```shell +```text ras,host=ubuntu,socket_id=0 external_mce_base_errors=1i,frc_errors=1i,instruction_tlb_errors=5i,internal_parity_errors=1i,internal_timer_errors=1i,l0_and_l1_cache_errors=7i,memory_read_corrected_errors=25i,memory_read_uncorrectable_errors=0i,memory_write_corrected_errors=5i,memory_write_uncorrectable_errors=0i,microcode_rom_parity_errors=1i,processor_base_errors=7i,processor_bus_errors=1i,smm_handler_code_access_violation_errors=1i,unclassified_mce_base_errors=1i 1598867393000000000 ras,host=ubuntu level_2_cache_errors=0i,upi_errors=0i 1598867393000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/ravendb.md b/src/writeData/components/telegrafPlugins/ravendb.md index 60bb3b956b..a1e306fe18 100644 --- a/src/writeData/components/telegrafPlugins/ravendb.md +++ b/src/writeData/components/telegrafPlugins/ravendb.md @@ -1,8 +1,25 @@ # RavenDB Input Plugin -Reads metrics from RavenDB servers via monitoring endpoints APIs. +This plugin gathers metrics from [RavenDB][ravendb] servers via the monitoring +API. -Requires RavenDB Server 5.2+. +> [!NOTE] +> This plugin requires RavenDB Server v5.2+. + +⭐ Telegraf v1.18.0 +🏷️ server +💻 all + +[ravendb]: https://ravendb.net/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -45,8 +62,8 @@ Requires RavenDB Server 5.2+. # collection_stats_dbs = [] ``` -**Note:** The client certificate used should have `Operator` permissions on the -cluster. +> [!NOTE] +> The client certificate should have `Operator` permissions on the cluster. ## Metrics @@ -148,6 +165,11 @@ cluster. - storage_indexes_used_data_file_in_mb - storage_total_allocated_storage_file_in_mb - storage_total_free_space_in_mb + - storage_io_read_operations (optional, Linux only) + - storage_io_write_operations (optional, Linux only) + - storage_read_throughput_in_kb (optional, Linux only) + - storage_write_throughput_in_kb (optional, Linux only) + - storage_queue_length (optional, Linux only) - time_since_last_backup_in_sec (optional) - uptime_in_sec @@ -209,13 +231,8 @@ cluster. ## Example Output ```text -> ravendb_server,cluster_id=07aecc42-9194-4181-999c-1c42450692c9,host=DESKTOP-2OISR6D,node_tag=A,url=http://localhost:8080 backup_current_number_of_running_backups=0i,backup_max_number_of_concurrent_backups=4i,certificate_server_certificate_expiration_left_in_sec=-1,cluster_current_term=2i,cluster_index=10i,cluster_node_state=4i,config_server_urls="http://127.0.0.1:8080",cpu_assigned_processor_count=8i,cpu_machine_usage=19.09944089456869,cpu_process_usage=0.16977205323024872,cpu_processor_count=8i,cpu_thread_pool_available_completion_port_threads=1000i,cpu_thread_pool_available_worker_threads=32763i,databases_loaded_count=1i,databases_total_count=1i,disk_remaining_storage_space_percentage=18i,disk_system_store_total_data_file_size_in_mb=35184372088832i,disk_system_store_used_data_file_size_in_mb=31379031064576i,disk_total_free_space_in_mb=42931i,license_expiration_left_in_sec=24079222.8772186,license_max_cores=256i,license_type="Enterprise",license_utilized_cpu_cores=8i,memory_allocated_in_mb=205i,memory_installed_in_mb=16384i,memory_low_memory_severity=0i,memory_physical_in_mb=16250i,memory_total_dirty_in_mb=0i,memory_total_swap_size_in_mb=0i,memory_total_swap_usage_in_mb=0i,memory_working_set_swap_usage_in_mb=0i,network_concurrent_requests_count=1i,network_last_request_time_in_sec=0.0058717,network_requests_per_sec=0.09916543455308825,network_tcp_active_connections=128i,network_total_requests=10i,server_full_version="5.2.0-custom-52",server_process_id=31044i,server_version="5.2",uptime_in_sec=56i 1613027977000000000 -> ravendb_databases,database_id=ced0edba-8f80-48b8-8e81-c3d2c6748ec3,database_name=db1,host=DESKTOP-2OISR6D,node_tag=A,url=http://localhost:8080 counts_alerts=0i,counts_attachments=17i,counts_documents=1059i,counts_performance_hints=0i,counts_rehabs=0i,counts_replication_factor=1i,counts_revisions=5475i,counts_unique_attachments=17i,indexes_auto_count=0i,indexes_count=7i,indexes_disabled_count=0i,indexes_errored_count=0i,indexes_errors_count=0i,indexes_idle_count=0i,indexes_stale_count=0i,indexes_static_count=7i,statistics_doc_puts_per_sec=0,statistics_map_index_indexes_per_sec=0,statistics_map_reduce_index_mapped_per_sec=0,statistics_map_reduce_index_reduced_per_sec=0,statistics_request_average_duration_in_ms=0,statistics_requests_count=0i,statistics_requests_per_sec=0,storage_documents_allocated_data_file_in_mb=140737488355328i,storage_documents_used_data_file_in_mb=74741020884992i,storage_indexes_allocated_data_file_in_mb=175921860444160i,storage_indexes_used_data_file_in_mb=120722940755968i,storage_total_allocated_storage_file_in_mb=325455441821696i,storage_total_free_space_in_mb=42931i,uptime_in_sec=54 1613027977000000000 -> ravendb_indexes,database_name=db1,host=DESKTOP-2OISR6D,index_name=Orders/Totals,node_tag=A,url=http://localhost:8080 errors=0i,is_invalid=false,lock_mode="Unlock",mapped_per_sec=0,priority="Normal",reduced_per_sec=0,state="Normal",status="Running",time_since_last_indexing_in_sec=45.4256655,time_since_last_query_in_sec=45.4304202,type="Map" 1613027977000000000 -> ravendb_collections,collection_name=@hilo,database_name=db1,host=DESKTOP-2OISR6D,node_tag=A,url=http://localhost:8080 documents_count=8i,documents_size_in_bytes=122880i,revisions_size_in_bytes=0i,tombstones_size_in_bytes=122880i,total_size_in_bytes=245760i 1613027977000000000 +ravendb_server,cluster_id=07aecc42-9194-4181-999c-1c42450692c9,host=DESKTOP-2OISR6D,node_tag=A,url=http://localhost:8080 backup_current_number_of_running_backups=0i,backup_max_number_of_concurrent_backups=4i,certificate_server_certificate_expiration_left_in_sec=-1,cluster_current_term=2i,cluster_index=10i,cluster_node_state=4i,config_server_urls="http://127.0.0.1:8080",cpu_assigned_processor_count=8i,cpu_machine_usage=19.09944089456869,cpu_process_usage=0.16977205323024872,cpu_processor_count=8i,cpu_thread_pool_available_completion_port_threads=1000i,cpu_thread_pool_available_worker_threads=32763i,databases_loaded_count=1i,databases_total_count=1i,disk_remaining_storage_space_percentage=18i,disk_system_store_total_data_file_size_in_mb=35184372088832i,disk_system_store_used_data_file_size_in_mb=31379031064576i,disk_total_free_space_in_mb=42931i,license_expiration_left_in_sec=24079222.8772186,license_max_cores=256i,license_type="Enterprise",license_utilized_cpu_cores=8i,memory_allocated_in_mb=205i,memory_installed_in_mb=16384i,memory_low_memory_severity=0i,memory_physical_in_mb=16250i,memory_total_dirty_in_mb=0i,memory_total_swap_size_in_mb=0i,memory_total_swap_usage_in_mb=0i,memory_working_set_swap_usage_in_mb=0i,network_concurrent_requests_count=1i,network_last_request_time_in_sec=0.0058717,network_requests_per_sec=0.09916543455308825,network_tcp_active_connections=128i,network_total_requests=10i,server_full_version="5.2.0-custom-52",server_process_id=31044i,server_version="5.2",uptime_in_sec=56i 1613027977000000000 +ravendb_databases,database_id=ced0edba-8f80-48b8-8e81-c3d2c6748ec3,database_name=db1,host=DESKTOP-2OISR6D,node_tag=A,url=http://localhost:8080 counts_alerts=0i,counts_attachments=17i,counts_documents=1059i,counts_performance_hints=0i,counts_rehabs=0i,counts_replication_factor=1i,counts_revisions=5475i,counts_unique_attachments=17i,indexes_auto_count=0i,indexes_count=7i,indexes_disabled_count=0i,indexes_errored_count=0i,indexes_errors_count=0i,indexes_idle_count=0i,indexes_stale_count=0i,indexes_static_count=7i,statistics_doc_puts_per_sec=0,statistics_map_index_indexes_per_sec=0,statistics_map_reduce_index_mapped_per_sec=0,statistics_map_reduce_index_reduced_per_sec=0,statistics_request_average_duration_in_ms=0,statistics_requests_count=0i,statistics_requests_per_sec=0,storage_documents_allocated_data_file_in_mb=140737488355328i,storage_documents_used_data_file_in_mb=74741020884992i,storage_indexes_allocated_data_file_in_mb=175921860444160i,storage_indexes_used_data_file_in_mb=120722940755968i,storage_total_allocated_storage_file_in_mb=325455441821696i,storage_total_free_space_in_mb=42931i,uptime_in_sec=54 1613027977000000000 +ravendb_indexes,database_name=db1,host=DESKTOP-2OISR6D,index_name=Orders/Totals,node_tag=A,url=http://localhost:8080 errors=0i,is_invalid=false,lock_mode="Unlock",mapped_per_sec=0,priority="Normal",reduced_per_sec=0,state="Normal",status="Running",time_since_last_indexing_in_sec=45.4256655,time_since_last_query_in_sec=45.4304202,type="Map" 1613027977000000000 +ravendb_collections,collection_name=@hilo,database_name=db1,host=DESKTOP-2OISR6D,node_tag=A,url=http://localhost:8080 documents_count=8i,documents_size_in_bytes=122880i,revisions_size_in_bytes=0i,tombstones_size_in_bytes=122880i,total_size_in_bytes=245760i 1613027977000000000 ``` - -## Contributors - -- Marcin Lewandowski () -- Casey Barton () diff --git a/src/writeData/components/telegrafPlugins/redfish.md b/src/writeData/components/telegrafPlugins/redfish.md index e42ffecbfb..d14eed57f0 100644 --- a/src/writeData/components/telegrafPlugins/redfish.md +++ b/src/writeData/components/telegrafPlugins/redfish.md @@ -1,11 +1,30 @@ # Redfish Input Plugin -The `redfish` plugin gathers metrics and status information about CPU -temperature, fanspeed, Powersupply, voltage, hostname and Location details -(datacenter, placement, rack and room) of hardware servers for which [DMTF's -Redfish](https://redfish.dmtf.org/) is enabled. +This plugin gathers metrics and status information of server hardware with +enabled [DMTF's Redfish][redfish] support. -Telegraf minimum version: Telegraf 1.15.0 +⭐ Telegraf v1.15.0 +🏷️ server +💻 all + +[redfish]: https://redfish.dmtf.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `username` and +`password` options. See the [secret-store documentation][SECRETSTORE] for more +details on how to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -15,13 +34,29 @@ Telegraf minimum version: Telegraf 1.15.0 ## Redfish API Base URL. address = "https://127.0.0.1:5000" - ## Credentials for the Redfish API. + ## Credentials for the Redfish API. Can also use secrets. username = "root" password = "password123456" ## System Id to collect data for in Redfish APIs. computer_system_id="System.Embedded.1" + ## Metrics to collect + ## The metric collects to gather. Choose from "power" and "thermal". + # include_metrics = ["power", "thermal"] + + ## Tag sets allow you to include redfish OData link parent data + ## For Example. + ## Thermal data is an OData link with parent Chassis which has a link of Location. + ## For more info see the Redfish Resource and Schema Guide at DMTFs website. + ## Available sets are: "chassis.location" and "chassis" + # include_tag_sets = ["chassis.location"] + + ## Workarounds + ## Defines workarounds for certain hardware vendors. Choose from: + ## * ilo4-thermal - Do not pass 0Data-Version header to Thermal endpoint + # workarounds = [] + ## Amount of time allowed to complete the HTTP request # timeout = "5s" @@ -41,10 +76,6 @@ Telegraf minimum version: Telegraf 1.15.0 - member_id - address - name - - datacenter (available only if location data is found) - - rack (available only if location data is found) - - room (available only if location data is found) - - row (available only if location data is found) - state - health - fields: @@ -60,10 +91,6 @@ Telegraf minimum version: Telegraf 1.15.0 - member_id - address - name - - datacenter (available only if location data is found) - - rack (available only if location data is found) - - room (available only if location data is found) - - row (available only if location data is found) - state - health - fields: @@ -76,13 +103,9 @@ Telegraf minimum version: Telegraf 1.15.0 - redfish_power_powersupplies - tags: - source - - address - member_id + - address - name - - datacenter (available only if location data is found) - - rack (available only if location data is found) - - room (available only if location data is found) - - row (available only if location data is found) - state - health - fields: @@ -95,13 +118,9 @@ Telegraf minimum version: Telegraf 1.15.0 - redfish_power_voltages (available only if voltage data is found) - tags: - source - - address - member_id + - address - name - - datacenter (available only if location data is found) - - rack (available only if location data is found) - - room (available only if location data is found) - - row (available only if location data is found) - state - health - fields: @@ -111,21 +130,39 @@ Telegraf minimum version: Telegraf 1.15.0 - lower_threshold_critical - lower_threshold_fatal +### Tag Sets + +- chassis.location + - tags: + - datacenter (available only if location data is found) + - rack (available only if location data is found) + - room (available only if location data is found) + - row (available only if location data is found) + +- chassis + - tags: + - chassis_chassistype + - chassis_manufacturer + - chassis_model + - chassis_partnumber + - chassis_powerstate + - chassis_sku + - chassis_serialnumber + - chassis_state + - chassis_health + ## Example Output ```text -redfish_thermal_temperatures,source=test-hostname,name=CPU1,address=http://190.0.0.1,member_id="0"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_celsius=41,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 -redfish_thermal_temperatures,source=test-hostname,name=CPU2,address=http://190.0.0.1,member_id="1"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_celsius=51,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 -redfish_thermal_temperatures,source=test-hostname,name=SystemBoardInlet,address=http://190.0.0.1,member_id="2"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_celsius=23,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 -redfish_thermal_temperatures,source=test-hostname,name=SystemBoardExhaust,address=http://190.0.0.1,member_id="3"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_celsius=33,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 -redfish_thermal_fans,source=test-hostname,name=SystemBoardFan1A,address=http://190.0.0.1,member_id="0"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_rpm=17720,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 -redfish_thermal_fans,source=test-hostname,name=SystemBoardFan1B,address=http://190.0.0.1,member_id="1"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_rpm=17760,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 -redfish_thermal_fans,source=test-hostname,name=SystemBoardFan2A,address=http://190.0.0.1,member_id="2"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_rpm=17880,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 -redfish_power_powersupplies,source=test-hostname,name=PS1Status,address=http://190.0.0.1,member_id="0"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" power_capacity_watts=750,power_input_watts=900,power_output_watts=208,last_power_output_watts=98,line_input_reading_volts=204 1582114112000000000 -redfish_power_powersupplies,source=test-hostname,name=PS2Status,address=http://190.0.0.1,member_id="1",datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" power_capacity_watts=750,power_input_watts=900,power_output_watts=194,last_power_output_watts=98,line_input_reading_volts=204 1582114112000000000 -redfish_power_voltages,source=test-hostname,name=CPU1MEM345,address=http://190.0.0.1,member_id="0"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_volts=1,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 -redfish_power_voltages,source=test-hostname,name=CPU1MEM345,address=http://190.0.0.1,member_id="1"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_volts=1,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 -redfish_power_voltages,source=test-hostname,name=CPU1MEM347,address=http://190.0.0.1,member_id="2"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_volts=1,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 -redfish_power_voltages,source=test-hostname,name=PS1voltage1,address=http://190.0.0.1,member_id="12"datacenter="Tampa",health="OK",rack="12",room="tbc",row="3",state="Enabled" reading_volts=208,upper_threshold_critical=59,upper_threshold_fatal=64 1582114112000000000 - +redfish_thermal_temperatures,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,health=OK,member_id=0,name=CPU1\ Temp,rack=WEB43,row=North,source=web483,state=Enabled reading_celsius=41,upper_threshold_critical=45,upper_threshold_fatal=48 1691270160000000000 +redfish_thermal_temperatures,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,member_id=1,name=CPU2\ Temp,rack=WEB43,row=North,source=web483,state=Disabled upper_threshold_critical=45,upper_threshold_fatal=48 1691270160000000000 +redfish_thermal_temperatures,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,health=OK,member_id=2,name=Chassis\ Intake\ Temp,rack=WEB43,row=North,source=web483,state=Enabled upper_threshold_critical=40,upper_threshold_fatal=50,lower_threshold_critical=5,lower_threshold_fatal=0,reading_celsius=25 1691270160000000000 +redfish_thermal_fans,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,health=OK,member_id=0,name=BaseBoard\ System\ Fan,rack=WEB43,row=North,source=web483,state=Enabled lower_threshold_fatal=0i,reading_rpm=2100i 1691270160000000000 +redfish_thermal_fans,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,health=OK,member_id=1,name=BaseBoard\ System\ Fan\ Backup,rack=WEB43,row=North,source=web483,state=Enabled lower_threshold_fatal=0i,reading_rpm=2050i 1691270160000000000 +redfish_power_powersupplies,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,health=Warning,member_id=0,name=Power\ Supply\ Bay,rack=WEB43,row=North,source=web483,state=Enabled line_input_voltage=120,last_power_output_watts=325,power_capacity_watts=800 1691270160000000000 +redfish_power_voltages,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,health=OK,member_id=0,name=VRM1\ Voltage,rack=WEB43,row=North,source=web483,state=Enabled upper_threshold_fatal=15,lower_threshold_critical=11,lower_threshold_fatal=10,reading_volts=12,upper_threshold_critical=13 1691270160000000000 +redfish_power_voltages,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,health=OK,member_id=1,name=VRM2\ Voltage,rack=WEB43,row=North,source=web483,state=Enabled reading_volts=5,upper_threshold_critical=7,lower_threshold_critical=4.5 1691270160000000000 +redfish_thermal_temperatures,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,health=OK,member_id=0,name=CPU1\ Temp,rack=WEB43,row=North,source=web483,state=Enabled upper_threshold_critical=45,upper_threshold_fatal=48,reading_celsius=41 1691270170000000000 +redfish_thermal_temperatures,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,member_id=1,name=CPU2\ Temp,rack=WEB43,row=North,source=web483,state=Disabled upper_threshold_critical=45,upper_threshold_fatal=48 1691270170000000000 +redfish_thermal_temperatures,address=127.0.0.1,chassis_chassistype=RackMount,chassis_health=OK,chassis_manufacturer=Contoso,chassis_model=3500RX,chassis_partnumber=224071-J23,chassis_powerstate=On,chassis_serialnumber=437XR1138R2,chassis_sku=8675309,chassis_state=Enabled,health=OK,member_id=2,name=Chassis\ Intake\ Temp,rack=WEB43,row=North,source=web483,state=Enabled lower_threshold_critical=5,lower_threshold_fatal=0,reading_celsius=25,upper_threshold_critical=40,upper_threshold_fatal=50 1691270170000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/redis.md b/src/writeData/components/telegrafPlugins/redis.md index 2512499c04..df0532682c 100644 --- a/src/writeData/components/telegrafPlugins/redis.md +++ b/src/writeData/components/telegrafPlugins/redis.md @@ -1,6 +1,21 @@ # Redis Input Plugin -The Redis input plugin gathers metrics from one or many Redis servers. +This plugin gathers metrics from [Redis][redis] servers. + +⭐ Telegraf v0.1.1 +🏷️ server +💻 all + +[redis]: https://redis.io/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -8,10 +23,10 @@ The Redis input plugin gathers metrics from one or many Redis servers. # Read metrics from one or many redis servers [[inputs.redis]] ## specify servers via a url matching: - ## [protocol://][:password]@address[:port] + ## [protocol://][username:password]@address[:port] ## e.g. ## tcp://localhost:6379 - ## tcp://:password@192.168.99.100 + ## tcp://username:password@192.168.99.100 ## unix:///var/run/redis.sock ## ## If no servers are specified, then localhost is used as the host. @@ -28,13 +43,15 @@ The Redis input plugin gathers metrics from one or many Redis servers. # # Can be "string", "integer", or "float" # type = "string" - ## specify server password - # password = "s#cr@t%" - - ## specify username for ACL auth (Redis 6.0+) - # username = "default" + ## Specify username and password for ACL auth (Redis 6.0+). You can add this + ## to the server URI above or specify it here. The values here take + ## precedence. + # username = "" + # password = "" ## Optional TLS Config + ## Check tls/config.go ClientConfig for more options + # tls_enable = true # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" @@ -139,11 +156,19 @@ and the elapsed time since the last rdb save (rdb\_last\_save\_time\_elapsed). - avg_ttl(int, number) - redis_cmdstat - Every Redis used command will have 3 new fields: + Every Redis used command could have the following fields: - calls(int, number) + - failed_calls(int, number) + - rejected_calls(int, number) - usec(int, mircoseconds) - usec_per_call(float, microseconds) +- redis_latency_percentiles_usec + - fields: + - p50(float, microseconds) + - p99(float, microseconds) + - p99.9(float, microseconds) + - redis_replication - tags: - replication_role @@ -155,22 +180,26 @@ and the elapsed time since the last rdb save (rdb\_last\_save\_time\_elapsed). - lag(int, number) - offset(int, number) -### Tags +- redis_errorstat + - tags: + - err + - fields: + - total (int, number) + +All measurements have the following tags: -- All measurements have the following tags: - - port - - server - - replication_role +- port +- server +- replication_role -- The redis_keyspace measurement has an additional database tag: - - database +The `redis_keyspace` measurement has an additional `database` tag. -- The redis_cmdstat measurement has an additional tag: - - command +The `redis_cmdstat` and `redis_latency_percentiles_usec` measurements have an +additional `command` tag. ## Example Output -Using this configuration: +The following configuration ```toml [[inputs.redis]] @@ -185,27 +214,12 @@ Using this configuration: servers = ["tcp://localhost:6379"] ``` -When run with: - -```sh -./telegraf --config telegraf.conf --input-filter redis --test -``` - -It produces: - -```shell -* Plugin: redis, Collection 1 -> redis,server=localhost,port=6379,replication_role=master,host=host keyspace_hitrate=1,clients=2i,blocked_clients=0i,instantaneous_input_kbps=0,sync_full=0i,pubsub_channels=0i,pubsub_patterns=0i,total_net_output_bytes=6659253i,used_memory=842448i,total_system_memory=8351916032i,aof_current_rewrite_time_sec=-1i,rdb_changes_since_last_save=0i,sync_partial_err=0i,latest_fork_usec=508i,instantaneous_output_kbps=0,expired_keys=0i,used_memory_peak=843416i,aof_rewrite_in_progress=0i,aof_last_bgrewrite_status="ok",migrate_cached_sockets=0i,connected_slaves=0i,maxmemory_policy="noeviction",aof_rewrite_scheduled=0i,total_net_input_bytes=3125i,used_memory_rss=9564160i,repl_backlog_histlen=0i,rdb_last_bgsave_status="ok",aof_last_rewrite_time_sec=-1i,keyspace_misses=0i,client_biggest_input_buf=5i,used_cpu_user=1.33,maxmemory=0i,rdb_current_bgsave_time_sec=-1i,total_commands_processed=271i,repl_backlog_size=1048576i,used_cpu_sys=3,uptime=2822i,lru_clock=16706281i,used_memory_lua=37888i,rejected_connections=0i,sync_partial_ok=0i,evicted_keys=0i,rdb_last_save_time_elapsed=1922i,rdb_last_save_time=1493099368i,instantaneous_ops_per_sec=0i,used_cpu_user_children=0,client_longest_output_list=0i,master_repl_offset=0i,repl_backlog_active=0i,keyspace_hits=2i,used_cpu_sys_children=0,cluster_enabled=0i,rdb_last_bgsave_time_sec=0i,aof_last_write_status="ok",total_connections_received=263i,aof_enabled=0i,repl_backlog_first_byte_offset=0i,mem_fragmentation_ratio=11.35,loading=0i,rdb_bgsave_in_progress=0i 1493101290000000000 -``` - -redis_keyspace: - -```shell -> redis_keyspace,database=db1,host=host,server=localhost,port=6379,replication_role=master keys=1i,expires=0i,avg_ttl=0i 1493101350000000000 -``` - -redis_command: +produces these metrics: -```shell -> redis_cmdstat,command=publish,host=host,port=6379,replication_role=master,server=localhost calls=68113i,usec=325146i,usec_per_call=4.77 1559227136000000000 +```text +redis,server=localhost,port=6379,replication_role=master,host=host keyspace_hitrate=1,clients=2i,blocked_clients=0i,instantaneous_input_kbps=0,sync_full=0i,pubsub_channels=0i,pubsub_patterns=0i,total_net_output_bytes=6659253i,used_memory=842448i,total_system_memory=8351916032i,aof_current_rewrite_time_sec=-1i,rdb_changes_since_last_save=0i,sync_partial_err=0i,latest_fork_usec=508i,instantaneous_output_kbps=0,expired_keys=0i,used_memory_peak=843416i,aof_rewrite_in_progress=0i,aof_last_bgrewrite_status="ok",migrate_cached_sockets=0i,connected_slaves=0i,maxmemory_policy="noeviction",aof_rewrite_scheduled=0i,total_net_input_bytes=3125i,used_memory_rss=9564160i,repl_backlog_histlen=0i,rdb_last_bgsave_status="ok",aof_last_rewrite_time_sec=-1i,keyspace_misses=0i,client_biggest_input_buf=5i,used_cpu_user=1.33,maxmemory=0i,rdb_current_bgsave_time_sec=-1i,total_commands_processed=271i,repl_backlog_size=1048576i,used_cpu_sys=3,uptime=2822i,lru_clock=16706281i,used_memory_lua=37888i,rejected_connections=0i,sync_partial_ok=0i,evicted_keys=0i,rdb_last_save_time_elapsed=1922i,rdb_last_save_time=1493099368i,instantaneous_ops_per_sec=0i,used_cpu_user_children=0,client_longest_output_list=0i,master_repl_offset=0i,repl_backlog_active=0i,keyspace_hits=2i,used_cpu_sys_children=0,cluster_enabled=0i,rdb_last_bgsave_time_sec=0i,aof_last_write_status="ok",total_connections_received=263i,aof_enabled=0i,repl_backlog_first_byte_offset=0i,mem_fragmentation_ratio=11.35,loading=0i,rdb_bgsave_in_progress=0i 1493101290000000000 +redis_keyspace,database=db1,host=host,server=localhost,port=6379,replication_role=master keys=1i,expires=0i,avg_ttl=0i 1493101350000000000 +redis_cmdstat,command=publish,host=host,port=6379,replication_role=master,server=localhost calls=569514i,failed_calls=0i,rejected_calls=0i,usec=9916334i,usec_per_call=17.41 1559227136000000000 +redis_latency_percentiles_usec,command=zadd,host=host,port=6379,replication_role=master,server=localhost p50=9.023,p99=28.031,p99.9=43.007 1559227136000000000 +redis_errorstat,err=MOVED,host=host,port=6379,replication_role=master,server=localhost total=4284 1691119309000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/redis_sentinel.md b/src/writeData/components/telegrafPlugins/redis_sentinel.md index e88d22d99f..f8a256149d 100644 --- a/src/writeData/components/telegrafPlugins/redis_sentinel.md +++ b/src/writeData/components/telegrafPlugins/redis_sentinel.md @@ -1,7 +1,22 @@ # Redis Sentinel Input Plugin -A plugin for Redis Sentinel to monitor multiple Sentinel instances that are -monitoring multiple Redis servers and replicas. +This plugin collects metrics for [Redis Sentinel][sentinel] instances monitoring +Redis servers and replicas. + +⭐ Telegraf v1.22.0 +🏷️ server +💻 all + +[sentinel]: https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -9,10 +24,10 @@ monitoring multiple Redis servers and replicas. # Read metrics from one or many redis-sentinel servers [[inputs.redis_sentinel]] ## specify servers via a url matching: - ## [protocol://][:password]@address[:port] + ## [protocol://][username:password]@address[:port] ## e.g. ## tcp://localhost:26379 - ## tcp://:password@192.168.99.100 + ## tcp://username:password@192.168.99.100 ## unix:///var/run/redis-sentinel.sock ## ## If no servers are specified, then localhost is used as the host. @@ -27,7 +42,7 @@ monitoring multiple Redis servers and replicas. # insecure_skip_verify = true ``` -## Measurements & Fields +## Metrics The plugin gathers the results of these commands and measurements: @@ -41,8 +56,6 @@ The `has_quorum` field in `redis_sentinel_masters` is from calling the command There are 5 remote network requests made for each server listed in the config. -## Metrics - * redis_sentinel_masters * tags: * host @@ -178,32 +191,28 @@ replica. It produces: ### redis_sentinel_masters -```sh +```text redis_sentinel_masters,host=somehostname,master=mymaster,port=26380,source=localhost config_epoch=0i,down_after_milliseconds=30000i,failover_timeout=180000i,flags="master",has_quorum=1i,info_refresh=110i,ip="127.0.0.1",last_ok_ping_reply=819i,last_ping_reply=819i,last_ping_sent=0i,link_pending_commands=0i,link_refcount=1i,num_other_sentinels=1i,num_slaves=1i,parallel_syncs=1i,port=6379i,quorum=2i,role_reported="master",role_reported_time=311248i 1570207377000000000 - redis_sentinel_masters,host=somehostname,master=mymaster,port=26379,source=localhost config_epoch=0i,down_after_milliseconds=30000i,failover_timeout=180000i,flags="master",has_quorum=1i,info_refresh=1650i,ip="127.0.0.1",last_ok_ping_reply=1003i,last_ping_reply=1003i,last_ping_sent=0i,link_pending_commands=0i,link_refcount=1i,num_other_sentinels=1i,num_slaves=1i,parallel_syncs=1i,port=6379i,quorum=2i,role_reported="master",role_reported_time=302990i 1570207377000000000 ``` ### redis_sentinel_sentinels -```sh +```text redis_sentinel_sentinels,host=somehostname,master=mymaster,port=26380,sentinel_ip=127.0.0.1,sentinel_port=26379,source=localhost down_after_milliseconds=30000i,flags="sentinel",last_hello_message=1337i,last_ok_ping_reply=566i,last_ping_reply=566i,last_ping_sent=0i,link_pending_commands=0i,link_refcount=1i,name="fd7444de58ecc00f2685cd89fc11ff96c72f0569",voted_leader="?",voted_leader_epoch=0i 1570207377000000000 - redis_sentinel_sentinels,host=somehostname,master=mymaster,port=26379,sentinel_ip=127.0.0.1,sentinel_port=26380,source=localhost down_after_milliseconds=30000i,flags="sentinel",last_hello_message=1510i,last_ok_ping_reply=1004i,last_ping_reply=1004i,last_ping_sent=0i,link_pending_commands=0i,link_refcount=1i,name="d06519438fe1b35692cb2ea06d57833c959f9114",voted_leader="?",voted_leader_epoch=0i 1570207377000000000 ``` ### redis_sentinel_replicas -```sh +```text redis_sentinel_replicas,host=somehostname,master=mymaster,port=26379,replica_ip=127.0.0.1,replica_port=6380,source=localhost down_after_milliseconds=30000i,flags="slave",info_refresh=1651i,last_ok_ping_reply=1005i,last_ping_reply=1005i,last_ping_sent=0i,link_pending_commands=0i,link_refcount=1i,master_host="127.0.0.1",master_link_down_time=0i,master_link_status="ok",master_port=6379i,name="127.0.0.1:6380",role_reported="slave",role_reported_time=302983i,slave_priority=100i,slave_repl_offset=40175i 1570207377000000000 - redis_sentinel_replicas,host=somehostname,master=mymaster,port=26380,replica_ip=127.0.0.1,replica_port=6380,source=localhost down_after_milliseconds=30000i,flags="slave",info_refresh=111i,last_ok_ping_reply=821i,last_ping_reply=821i,last_ping_sent=0i,link_pending_commands=0i,link_refcount=1i,master_host="127.0.0.1",master_link_down_time=0i,master_link_status="ok",master_port=6379i,name="127.0.0.1:6380",role_reported="slave",role_reported_time=311243i,slave_priority=100i,slave_repl_offset=40441i 1570207377000000000 ``` ### redis_sentinel -```sh +```text redis_sentinel,host=somehostname,port=26379,source=localhost active_defrag_hits=0i,active_defrag_key_hits=0i,active_defrag_key_misses=0i,active_defrag_misses=0i,blocked_clients=0i,client_recent_max_input_buffer=2i,client_recent_max_output_buffer=0i,clients=3i,evicted_keys=0i,expired_keys=0i,expired_stale_perc=0,expired_time_cap_reached_count=0i,instantaneous_input_kbps=0.01,instantaneous_ops_per_sec=0i,instantaneous_output_kbps=0,keyspace_hits=0i,keyspace_misses=0i,latest_fork_usec=0i,lru_clock=9926289i,migrate_cached_sockets=0i,pubsub_channels=0i,pubsub_patterns=0i,redis_version="5.0.5",rejected_connections=0i,sentinel_masters=1i,sentinel_running_scripts=0i,sentinel_scripts_queue_length=0i,sentinel_simulate_failure_flags=0i,sentinel_tilt=0i,slave_expires_tracked_keys=0i,sync_full=0i,sync_partial_err=0i,sync_partial_ok=0i,total_commands_processed=459i,total_connections_received=6i,total_net_input_bytes=24517i,total_net_output_bytes=14864i,uptime_ns=303000000000i,used_cpu_sys=0.404,used_cpu_sys_children=0,used_cpu_user=0.436,used_cpu_user_children=0 1570207377000000000 - redis_sentinel,host=somehostname,port=26380,source=localhost active_defrag_hits=0i,active_defrag_key_hits=0i,active_defrag_key_misses=0i,active_defrag_misses=0i,blocked_clients=0i,client_recent_max_input_buffer=2i,client_recent_max_output_buffer=0i,clients=2i,evicted_keys=0i,expired_keys=0i,expired_stale_perc=0,expired_time_cap_reached_count=0i,instantaneous_input_kbps=0.01,instantaneous_ops_per_sec=0i,instantaneous_output_kbps=0,keyspace_hits=0i,keyspace_misses=0i,latest_fork_usec=0i,lru_clock=9926289i,migrate_cached_sockets=0i,pubsub_channels=0i,pubsub_patterns=0i,redis_version="5.0.5",rejected_connections=0i,sentinel_masters=1i,sentinel_running_scripts=0i,sentinel_scripts_queue_length=0i,sentinel_simulate_failure_flags=0i,sentinel_tilt=0i,slave_expires_tracked_keys=0i,sync_full=0i,sync_partial_err=0i,sync_partial_ok=0i,total_commands_processed=442i,total_connections_received=2i,total_net_input_bytes=23861i,total_net_output_bytes=4443i,uptime_ns=312000000000i,used_cpu_sys=0.46,used_cpu_sys_children=0,used_cpu_user=0.416,used_cpu_user_children=0 1570207377000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/rethinkdb.md b/src/writeData/components/telegrafPlugins/rethinkdb.md index 3a03344b37..0d7fe58297 100644 --- a/src/writeData/components/telegrafPlugins/rethinkdb.md +++ b/src/writeData/components/telegrafPlugins/rethinkdb.md @@ -1,6 +1,21 @@ # RethinkDB Input Plugin -Collect metrics from [RethinkDB](https://www.rethinkdb.com/). +This plugin collects metrics from [RethinkDB][rethinkdb] servers. + +⭐ Telegraf v0.1.3 +🏷️ server +💻 all + +[rethinkdb]: https://www.rethinkdb.com/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -11,16 +26,9 @@ Collect metrics from [RethinkDB](https://www.rethinkdb.com/). ## with optional port add password. ie, ## rethinkdb://user:auth_key@10.10.3.30:28105, ## rethinkdb://10.10.3.33:18832, - ## 10.0.0.1:10000, etc. + ## For rethinkdb v2.3.0+ with username/password authorization you should use + ## rethinkdb2://username:password@127.0.0.1:28015" servers = ["127.0.0.1:28015"] - - ## If you use actual rethinkdb of > 2.3.0 with username/password authorization, - ## protocol have to be named "rethinkdb2" - it will use 1_0 H. - # servers = ["rethinkdb2://username:password@127.0.0.1:28015"] - - ## If you use older versions of rethinkdb (<2.2) with auth_key, protocol - ## have to be named "rethinkdb". - # servers = ["rethinkdb://username:auth_key@127.0.0.1:28015"] ``` ## Metrics @@ -57,3 +65,5 @@ Collect metrics from [RethinkDB](https://www.rethinkdb.com/). - total_reads (integer, reads) - written_docs_per_sec (integer, writes) - total_writes (integer, writes) + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/riak.md b/src/writeData/components/telegrafPlugins/riak.md index 9ee4949630..b890b610ee 100644 --- a/src/writeData/components/telegrafPlugins/riak.md +++ b/src/writeData/components/telegrafPlugins/riak.md @@ -1,6 +1,21 @@ # Riak Input Plugin -The Riak plugin gathers metrics from one or more riak instances. +This plugin gathers metrics from [Riak][riak] instances. + +⭐ Telegraf v0.10.4 +🏷️ server +💻 all + +[riak]: https://riak.com/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -13,67 +28,61 @@ The Riak plugin gathers metrics from one or more riak instances. ## Metrics -Riak provides one measurement named "riak", with the following fields: - -- cpu_avg1 -- cpu_avg15 -- cpu_avg5 -- memory_code -- memory_ets -- memory_processes -- memory_system -- memory_total -- node_get_fsm_objsize_100 -- node_get_fsm_objsize_95 -- node_get_fsm_objsize_99 -- node_get_fsm_objsize_mean -- node_get_fsm_objsize_median -- node_get_fsm_siblings_100 -- node_get_fsm_siblings_95 -- node_get_fsm_siblings_99 -- node_get_fsm_siblings_mean -- node_get_fsm_siblings_median -- node_get_fsm_time_100 -- node_get_fsm_time_95 -- node_get_fsm_time_99 -- node_get_fsm_time_mean -- node_get_fsm_time_median -- node_gets -- node_gets_total -- node_put_fsm_time_100 -- node_put_fsm_time_95 -- node_put_fsm_time_99 -- node_put_fsm_time_mean -- node_put_fsm_time_median -- node_puts -- node_puts_total -- pbc_active -- pbc_connects -- pbc_connects_total -- vnode_gets -- vnode_gets_total -- vnode_index_reads -- vnode_index_reads_total -- vnode_index_writes -- vnode_index_writes_total -- vnode_puts -- vnode_puts_total -- read_repairs -- read_repairs_total - -Measurements of time (such as node_get_fsm_time_mean) are measured in -nanoseconds. - -### Tags - -All measurements have the following tags: +- riak: + - tags: + - server (host:port of the given server address) + - nodename (internal node name received) + - fields + - cpu_avg1 + - cpu_avg15 + - cpu_avg5 + - memory_code + - memory_ets + - memory_processes + - memory_system + - memory_total + - node_get_fsm_objsize_100 + - node_get_fsm_objsize_95 + - node_get_fsm_objsize_99 + - node_get_fsm_objsize_mean + - node_get_fsm_objsize_median + - node_get_fsm_siblings_100 + - node_get_fsm_siblings_95 + - node_get_fsm_siblings_99 + - node_get_fsm_siblings_mean + - node_get_fsm_siblings_median + - node_get_fsm_time_100 + - node_get_fsm_time_95 + - node_get_fsm_time_99 + - node_get_fsm_time_mean + - node_get_fsm_time_median + - node_gets + - node_gets_total + - node_put_fsm_time_100 + - node_put_fsm_time_95 + - node_put_fsm_time_99 + - node_put_fsm_time_mean + - node_put_fsm_time_median + - node_puts + - node_puts_total + - pbc_active + - pbc_connects + - pbc_connects_total + - vnode_gets + - vnode_gets_total + - vnode_index_reads + - vnode_index_reads_total + - vnode_index_writes + - vnode_index_writes_total + - vnode_puts + - vnode_puts_total + - read_repairs + - read_repairs_total -- server (the host:port of the given server address, ex. `127.0.0.1:8087`) -- nodename (the internal node name received, ex. `riak@127.0.0.1`) +Time fields such as `node_get_fsm_time_mean` are measured in nanoseconds. ## Example Output -```shell -$ ./telegraf --config telegraf.conf --input-filter riak --test -> riak,nodename=riak@127.0.0.1,server=localhost:8098 cpu_avg1=31i,cpu_avg15=69i,cpu_avg5=51i,memory_code=11563738i,memory_ets=5925872i,memory_processes=30236069i,memory_system=93074971i,memory_total=123311040i,node_get_fsm_objsize_100=0i,node_get_fsm_objsize_95=0i,node_get_fsm_objsize_99=0i,node_get_fsm_objsize_mean=0i,node_get_fsm_objsize_median=0i,node_get_fsm_siblings_100=0i,node_get_fsm_siblings_95=0i,node_get_fsm_siblings_99=0i,node_get_fsm_siblings_mean=0i,node_get_fsm_siblings_median=0i,node_get_fsm_time_100=0i,node_get_fsm_time_95=0i,node_get_fsm_time_99=0i,node_get_fsm_time_mean=0i,node_get_fsm_time_median=0i,node_gets=0i,node_gets_total=19i,node_put_fsm_time_100=0i,node_put_fsm_time_95=0i,node_put_fsm_time_99=0i,node_put_fsm_time_mean=0i,node_put_fsm_time_median=0i,node_puts=0i,node_puts_total=0i,pbc_active=0i,pbc_connects=0i,pbc_connects_total=20i,vnode_gets=0i,vnode_gets_total=57i,vnode_index_reads=0i,vnode_index_reads_total=0i,vnode_index_writes=0i,vnode_index_writes_total=0i,vnode_puts=0i,vnode_puts_total=0i,read_repair=0i,read_repairs_total=0i 1455913392622482332 +```text +riak,nodename=riak@127.0.0.1,server=localhost:8098 cpu_avg1=31i,cpu_avg15=69i,cpu_avg5=51i,memory_code=11563738i,memory_ets=5925872i,memory_processes=30236069i,memory_system=93074971i,memory_total=123311040i,node_get_fsm_objsize_100=0i,node_get_fsm_objsize_95=0i,node_get_fsm_objsize_99=0i,node_get_fsm_objsize_mean=0i,node_get_fsm_objsize_median=0i,node_get_fsm_siblings_100=0i,node_get_fsm_siblings_95=0i,node_get_fsm_siblings_99=0i,node_get_fsm_siblings_mean=0i,node_get_fsm_siblings_median=0i,node_get_fsm_time_100=0i,node_get_fsm_time_95=0i,node_get_fsm_time_99=0i,node_get_fsm_time_mean=0i,node_get_fsm_time_median=0i,node_gets=0i,node_gets_total=19i,node_put_fsm_time_100=0i,node_put_fsm_time_95=0i,node_put_fsm_time_99=0i,node_put_fsm_time_mean=0i,node_put_fsm_time_median=0i,node_puts=0i,node_puts_total=0i,pbc_active=0i,pbc_connects=0i,pbc_connects_total=20i,vnode_gets=0i,vnode_gets_total=57i,vnode_index_reads=0i,vnode_index_reads_total=0i,vnode_index_writes=0i,vnode_index_writes_total=0i,vnode_puts=0i,vnode_puts_total=0i,read_repair=0i,read_repairs_total=0i 1455913392622482332 ``` diff --git a/src/writeData/components/telegrafPlugins/riemann_listener.md b/src/writeData/components/telegrafPlugins/riemann_listener.md index 78b02c1689..6c80991a03 100644 --- a/src/writeData/components/telegrafPlugins/riemann_listener.md +++ b/src/writeData/components/telegrafPlugins/riemann_listener.md @@ -1,7 +1,33 @@ # Riemann Listener Input Plugin -The Riemann Listener is a simple input plugin that listens for messages from -client that use riemann clients using riemann-protobuff format. +This service plugin listens for messages from [Riemann][riemann] clients using +the protocol buffer format. + +⭐ Telegraf v1.17.0 +🏷️ datastore +💻 all + +[riemann]: https://riemann.io/ + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -41,3 +67,7 @@ configuration above. Riemann `Service` is mapped as `measurement`. `metric` and `TTL` are converted into field values. As Riemann tags as simply an array, they are converted into the `influx_line` format key-value, where both key and value are the tags. + +## Metrics + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/salesforce.md b/src/writeData/components/telegrafPlugins/salesforce.md index 6f904b8295..d90f868fb9 100644 --- a/src/writeData/components/telegrafPlugins/salesforce.md +++ b/src/writeData/components/telegrafPlugins/salesforce.md @@ -1,11 +1,25 @@ # Salesforce Input Plugin -The Salesforce plugin gathers metrics about the limits in your Salesforce -organization and the remaining usage. It fetches its data from the [limits -endpoint][limits] of Salesforce's REST API. +This plugin gathers metrics about the limits in your [Salesforce][salesforce] +organization and the remaining usage using the [limits endpoint][limits] of +Salesforce's REST API. +⭐ Telegraf v1.4.0 +🏷️ server, cloud +💻 all + +[salesforce]: https://salesforce.com [limits]: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_limits.htm +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + ## Configuration ```toml @sample.conf @@ -52,6 +66,8 @@ Each entry is converted to snake\_case and 2 fields are created. ```sh $./telegraf --config telegraf.conf --input-filter salesforce --test +``` +```text salesforce,organization_id=XXXXXXXXXXXXXXXXXX,host=xxxxx.salesforce.com daily_workflow_emails_max=546000i,hourly_time_based_workflow_max=50i,daily_async_apex_executions_remaining=250000i,daily_durable_streaming_api_events_remaining=1000000i,streaming_api_concurrent_clients_remaining=2000i,daily_bulk_api_requests_remaining=10000i,hourly_sync_report_runs_remaining=500i,daily_api_requests_max=5000000i,data_storage_mb_remaining=1073i,file_storage_mb_remaining=1069i,daily_generic_streaming_api_events_remaining=10000i,hourly_async_report_runs_remaining=1200i,hourly_time_based_workflow_remaining=50i,daily_streaming_api_events_remaining=1000000i,single_email_max=5000i,hourly_dashboard_refreshes_remaining=200i,streaming_api_concurrent_clients_max=2000i,daily_durable_generic_streaming_api_events_remaining=1000000i,daily_api_requests_remaining=4999998i,hourly_dashboard_results_max=5000i,hourly_async_report_runs_max=1200i,daily_durable_generic_streaming_api_events_max=1000000i,hourly_dashboard_results_remaining=5000i,concurrent_sync_report_runs_max=20i,durable_streaming_api_concurrent_clients_remaining=2000i,daily_workflow_emails_remaining=546000i,hourly_dashboard_refreshes_max=200i,daily_streaming_api_events_max=1000000i,hourly_sync_report_runs_max=500i,hourly_o_data_callout_max=10000i,mass_email_max=5000i,mass_email_remaining=5000i,single_email_remaining=5000i,hourly_dashboard_statuses_max=999999999i,concurrent_async_get_report_instances_max=200i,daily_durable_streaming_api_events_max=1000000i,daily_generic_streaming_api_events_max=10000i,hourly_o_data_callout_remaining=10000i,concurrent_sync_report_runs_remaining=20i,daily_bulk_api_requests_max=10000i,data_storage_mb_max=1073i,hourly_dashboard_statuses_remaining=999999999i,concurrent_async_get_report_instances_remaining=200i,daily_async_apex_executions_max=250000i,durable_streaming_api_concurrent_clients_max=2000i,file_storage_mb_max=1073i 1501565661000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/sensors.md b/src/writeData/components/telegrafPlugins/sensors.md index d33516fa8f..b6f21a9bb6 100644 --- a/src/writeData/components/telegrafPlugins/sensors.md +++ b/src/writeData/components/telegrafPlugins/sensors.md @@ -1,15 +1,32 @@ # LM Sensors Input Plugin -Collect [lm-sensors](https://en.wikipedia.org/wiki/Lm_sensors) metrics - -requires the lm-sensors package installed. +This plugin collects metrics from hardware sensors using +[lm-sensors][lmsensors]. -This plugin collects sensor metrics with the `sensors` executable from the -lm-sensor package. +> [!NOTE] +> This plugin requires the lm-sensors package to be installed on the system +> and `sensors` to be executable from Telegraf. + +⭐ Telegraf v0.10.1 +🏷️ hardware, system +💻 linux + +[lmsensors]: https://en.wikipedia.org/wiki/Lm_sensors + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Monitor sensors, requires lm-sensors package +# This plugin ONLY supports Linux [[inputs.sensors]] ## Remove numbers from field names. ## If true, a field name like 'temp1_input' will be changed to 'temp_input'. @@ -23,33 +40,31 @@ lm-sensor package. Fields are created dynamically depending on the sensors. All fields are float. -### Tags - -- All measurements have the following tags: - - chip - - feature +- sensors: + - tags: + - chip + - feature + - fields: + - depending on the available sensor information (float) ## Example Output ### Default -```shell -$ telegraf --config telegraf.conf --input-filter sensors --test -* Plugin: sensors, Collection 1 -> sensors,chip=power_meter-acpi-0,feature=power1 power_average=0,power_average_interval=300 1466751326000000000 -> sensors,chip=k10temp-pci-00c3,feature=temp1 temp_crit=70,temp_crit_hyst=65,temp_input=29,temp_max=70 1466751326000000000 -> sensors,chip=k10temp-pci-00cb,feature=temp1 temp_input=29,temp_max=70 1466751326000000000 -> sensors,chip=k10temp-pci-00d3,feature=temp1 temp_input=27.5,temp_max=70 1466751326000000000 -> sensors,chip=k10temp-pci-00db,feature=temp1 temp_crit=70,temp_crit_hyst=65,temp_input=29.5,temp_max=70 1466751326000000000 +```text +sensors,chip=power_meter-acpi-0,feature=power1 power_average=0,power_average_interval=300 1466751326000000000 +sensors,chip=k10temp-pci-00c3,feature=temp1 temp_crit=70,temp_crit_hyst=65,temp_input=29,temp_max=70 1466751326000000000 +sensors,chip=k10temp-pci-00cb,feature=temp1 temp_input=29,temp_max=70 1466751326000000000 +sensors,chip=k10temp-pci-00d3,feature=temp1 temp_input=27.5,temp_max=70 1466751326000000000 +sensors,chip=k10temp-pci-00db,feature=temp1 temp_crit=70,temp_crit_hyst=65,temp_input=29.5,temp_max=70 1466751326000000000 ``` ### With remove_numbers=false -```shell -* Plugin: sensors, Collection 1 -> sensors,chip=power_meter-acpi-0,feature=power1 power1_average=0,power1_average_interval=300 1466753424000000000 -> sensors,chip=k10temp-pci-00c3,feature=temp1 temp1_crit=70,temp1_crit_hyst=65,temp1_input=29.125,temp1_max=70 1466753424000000000 -> sensors,chip=k10temp-pci-00cb,feature=temp1 temp1_input=29,temp1_max=70 1466753424000000000 -> sensors,chip=k10temp-pci-00d3,feature=temp1 temp1_input=29.5,temp1_max=70 1466753424000000000 -> sensors,chip=k10temp-pci-00db,feature=temp1 temp1_crit=70,temp1_crit_hyst=65,temp1_input=30,temp1_max=70 1466753424000000000 +```text +sensors,chip=power_meter-acpi-0,feature=power1 power1_average=0,power1_average_interval=300 1466753424000000000 +sensors,chip=k10temp-pci-00c3,feature=temp1 temp1_crit=70,temp1_crit_hyst=65,temp1_input=29.125,temp1_max=70 1466753424000000000 +sensors,chip=k10temp-pci-00cb,feature=temp1 temp1_input=29,temp1_max=70 1466753424000000000 +sensors,chip=k10temp-pci-00d3,feature=temp1 temp1_input=29.5,temp1_max=70 1466753424000000000 +sensors,chip=k10temp-pci-00db,feature=temp1 temp1_crit=70,temp1_crit_hyst=65,temp1_input=30,temp1_max=70 1466753424000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/sflow.md b/src/writeData/components/telegrafPlugins/sflow.md index 008f1b2845..3e2dde70a6 100644 --- a/src/writeData/components/telegrafPlugins/sflow.md +++ b/src/writeData/components/telegrafPlugins/sflow.md @@ -1,22 +1,43 @@ # SFlow Input Plugin -The SFlow Input Plugin provides support for acting as an SFlow V5 collector in -accordance with the specification from [sflow.org](https://sflow.org/). +This service plugin produces metrics from information received by acting as a +[SFlow V5][sflow_v5] collector. Currently, the plugin can collect Flow Samples +of Ethernet / IPv4, IPv4 TCP and UDP headers. Counters and other header samples +are ignored. Please use the [netflow plugin][netflow] for a more modern and +sophisticated implementation. -Currently only Flow Samples of Ethernet / IPv4 & IPv4 TCP & UDP headers are -turned into metrics. Counters and other header samples are ignored. +> [!CRITICAL] +> This plugin produces high cardinality data, which when not controlled for will +> cause high load on your database. Please make sure to [filter][filtering] the +> produced metrics or configure your database to avoid cardinality issues! -## Series Cardinality Warning +⭐ Telegraf v1.14.0 +🏷️ network +💻 all -This plugin may produce a high number of series which, when not controlled -for, will cause high load on your database. Use the following techniques to -avoid cardinality issues: +[sflow_v5]: https://sflow.org/sflow_version_5.txt +[netflow]: /plugins/inputs/netflow/README.md +[filtering]: /docs/CONFIGURATION.md#metric-filtering -- Use [metric filtering][] options to exclude unneeded measurements and tags. -- Write to a database with an appropriate [retention policy][]. -- Consider using the [Time Series Index][tsi]. -- Monitor your databases [series cardinality][]. -- Consult the [InfluxDB documentation][influx-docs] for the most up-to-date techniques. +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -38,49 +59,55 @@ avoid cardinality issues: - sflow - tags: - - agent_address (IP address of the agent that obtained the sflow sample and sent it to this collector) - - source_id_type(source_id_type field of flow_sample or flow_sample_expanded structures) - - source_id_index(source_id_index field of flow_sample or flow_sample_expanded structures) - - input_ifindex (value (input) field of flow_sample or flow_sample_expanded structures) - - output_ifindex (value (output) field of flow_sample or flow_sample_expanded structures) - - sample_direction (source_id_index, netif_index_in and netif_index_out) - - header_protocol (header_protocol field of sampled_header structures) - - ether_type (eth_type field of an ETHERNET-ISO88023 header) - - src_ip (source_ipaddr field of IPv4 or IPv6 structures) - - src_port (src_port field of TCP or UDP structures) - - src_port_name (src_port) - - src_mac (source_mac_addr field of an ETHERNET-ISO88023 header) - - src_vlan (src_vlan field of extended_switch structure) - - src_priority (src_priority field of extended_switch structure) - - src_mask_len (src_mask_len field of extended_router structure) - - dst_ip (destination_ipaddr field of IPv4 or IPv6 structures) - - dst_port (dst_port field of TCP or UDP structures) - - dst_port_name (dst_port) - - dst_mac (destination_mac_addr field of an ETHERNET-ISO88023 header) - - dst_vlan (dst_vlan field of extended_switch structure) - - dst_priority (dst_priority field of extended_switch structure) - - dst_mask_len (dst_mask_len field of extended_router structure) - - next_hop (next_hop field of extended_router structure) - - ip_version (ip_ver field of IPv4 or IPv6 structures) - - ip_protocol (ip_protocol field of IPv4 or IPv6 structures) - - ip_dscp (ip_dscp field of IPv4 or IPv6 structures) - - ip_ecn (ecn field of IPv4 or IPv6 structures) - - tcp_urgent_pointer (urgent_pointer field of TCP structure) + - agent_address - IP address of the agent obtaining the sflow sample and + sent it to this collector + - source_id_type - type of flow_sample or flow_sample_expanded structures + - source_id_index - index of flow_sample or flow_sample_expanded structures + - input_ifindex - input value of flow_sample or flow_sample_expanded structures + - output_ifindex - output value of flow_sample or flow_sample_expanded structures + - sample_direction - source_id_index, netif_index_in and netif_index_out + - header_protocol - header_protocol field of sampled_header structures + - ether_type - ethernet type of an ETHERNET-ISO88023 header + - src_ip - source IP address of IPv4 or IPv6 structures + - src_port - source port of TCP or UDP structures + - src_port_name - name of the source port + - src_mac - source MAC address of an ETHERNET-ISO88023 header + - src_vlan - source VLAN of extended_switch structure + - src_priority - source priority of extended_switch structure + - src_mask_len - length of source mask of extended_router structure + - dst_ip - destination IP address of IPv4 or IPv6 structures + - dst_port - destination port of TCP or UDP structures + - dst_port_name - name of the destination port + - dst_mac - destination MAC address of an ETHERNET-ISO88023 header + - dst_vlan - destination VLAN of extended_switch structure + - dst_priority - destination priority extended_switch structure + - dst_mask_len - length of destinationd mask of extended_router structure + - next_hop - next hop of extended_router structure + - ip_version - IP version of IPv4 or IPv6 structures + - ip_protocol - IP protocol of IPv4 or IPv6 structures + - ip_dscp - IP DSCP of IPv4 or IPv6 structures + - ip_ecn - IP ECN of IPv4 or IPv6 structures + - tcp_urgent_pointer - urgent pointer of TCP structure - fields: - - bytes (integer, the product of frame_length and packets) - - drops (integer, drops field of flow_sample or flow_sample_expanded structures) - - packets (integer, sampling_rate field of flow_sample or flow_sample_expanded structures) - - frame_length (integer, frame_length field of sampled_header structures) - - header_size (integer, header_size field of sampled_header structures) - - ip_fragment_offset (integer, ip_ver field of IPv4 structures) - - ip_header_length (integer, ip_ver field of IPv4 structures) - - ip_total_length (integer, ip_total_len field of IPv4 structures) - - ip_ttl (integer, ip_ttl field of IPv4 structures or ip_hop_limit field IPv6 structures) - - tcp_header_length (integer, size field of TCP structure. This value is specified in 32-bit words. It must be multiplied by 4 to produce a value in bytes.) - - tcp_window_size (integer, window_size field of TCP structure) - - udp_length (integer, length field of UDP structures) - - ip_flags (integer, ip_ver field of IPv4 structures) - - tcp_flags (integer, TCP flags of TCP IP header (IPv4 or IPv6)) + - bytes (int) - product of frame length and packets + - drops (int) - drops field of flow_sample or + flow_sample_expanded structures + - packets (int) - sampling_rate field of flow_sample or + flow_sample_expanded structures + - frame_length (int) - frame_length field of sampled_header structures + - header_size (int) - header_size field of sampled_header structures + - ip_fragment_offset (int) - ip_ver field of IPv4 structures + - ip_header_length (int) - ip_ver field of IPv4 structures + - ip_total_length (int) - ip_total_len field of IPv4 structures + - ip_ttl (int) - ip_ttl field of IPv4 structures or + ip_hop_limit field IPv6 structures + - tcp_header_length (int) - size field of TCP structure. This value is + specified in 32-bit words. It must be multiplied + by 4 to produce a valuein bytes. + - tcp_window_size (int) - window_size field of TCP structure + - udp_length (int) - length field of UDP structures + - ip_flags (int) - ip_ver field of IPv4 structures + - tcp_flags (int) - TCP flags of TCP IP header (IPv4 or IPv6) ## Troubleshooting @@ -103,18 +130,6 @@ sudo tcpdump -s 0 -i eth0 -w telegraf-sflow.pcap host 127.0.0.1 and port 6343 ## Example Output -```shell +```text sflow,agent_address=0.0.0.0,dst_ip=10.0.0.2,dst_mac=ff:ff:ff:ff:ff:ff,dst_port=40042,ether_type=IPv4,header_protocol=ETHERNET-ISO88023,input_ifindex=6,ip_dscp=27,ip_ecn=0,output_ifindex=1073741823,source_id_index=3,source_id_type=0,src_ip=10.0.0.1,src_mac=ff:ff:ff:ff:ff:ff,src_port=443 bytes=1570i,drops=0i,frame_length=157i,header_length=128i,ip_flags=2i,ip_fragment_offset=0i,ip_total_length=139i,ip_ttl=42i,sampling_rate=10i,tcp_header_length=0i,tcp_urgent_pointer=0i,tcp_window_size=14i 1584473704793580447 ``` - -## Reference Documentation - -This sflow implementation was built from the reference document -[sflow.org/sflow_version_5.txt](sflow_version_5) - -[metric filtering]: https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#metric-filtering -[retention policy]: https://docs.influxdata.com/influxdb/latest/reference/internals/data-retention/ -[tsi]: https://docs.influxdata.com/influxdb/latest/reference/internals/storage-engine/#time-series-index-tsi -[series cardinality]: https://docs.influxdata.com/influxdb/latest/reference/syntax/influxql/spec/#show-cardinality -[influx-docs]: https://docs.influxdata.com/influxdb/latest/ -[sflow_version_5]: https://sflow.org/sflow_version_5.txt diff --git a/src/writeData/components/telegrafPlugins/slab.md b/src/writeData/components/telegrafPlugins/slab.md index 0977d1f38d..2fb18aae96 100644 --- a/src/writeData/components/telegrafPlugins/slab.md +++ b/src/writeData/components/telegrafPlugins/slab.md @@ -1,37 +1,49 @@ # Slab Input Plugin -This plugin collects details on how much memory each entry in Slab cache is -consuming. For example, it collects the consumption of `kmalloc-1024` and -`xfs_inode`. Since this information is obtained by parsing `/proc/slabinfo` -file, only Linux is supported. The specification of `/proc/slabinfo` has not -changed since [Linux v2.6.12 (April 2005)][slab-c], so it can be regarded as -sufficiently stable. The memory usage is equivalent to the `CACHE_SIZE` column -of `slabtop` command. If the HOST_PROC environment variable is set, Telegraf -will use its value instead of `/proc` +This plugin collects details on memory consumption of [Slab cache][slab] entries +by parsing the `/proc/slabinfo` file respecting the `HOST_PROC` environment +variable. -**Note: `/proc/slabinfo` is usually restricted to read as root user. Make sure -telegraf can execute `sudo` without password.** +> [!NOTE] +> This plugin requires `/proc/slabinfo` to be readable by the Telegraf user. -[slab-c]: https://github.com/torvalds/linux/blob/1da177e4/mm/slab.c#L2848-L2861 +⭐ Telegraf v1.23.0 +🏷️ system +💻 linux + +[slab]: https://www.kernel.org/doc/gorman/html/understand/understand011.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Get slab statistics from procfs +# This plugin ONLY supports Linux [[inputs.slab]] # no configuration - please see the plugin's README for steps to configure # sudo properly ``` -## Sudo configuration +### Sudo configuration -Since the slabinfo file is only readable by root, the plugin runs `sudo -/bin/cat` to read the file. +Since the slabinfo file is only readable by root, the plugin runs +`sudo /bin/cat` to read the file. Sudo can be configured to allow telegraf to run just the command needed to read -the slabinfo file. For example, if telegraf is running as the user 'telegraf' -and HOST_PROC is not used, add this to the sudoers file: `telegraf ALL = (root) -NOPASSWD: /bin/cat /proc/slabinfo` +the slabinfo file. For example, if telegraf is running as the user `telegraf` +and `HOST_PROC` is not used, add this to the sudoers file + +```text +telegraf ALL = (root) NOPASSWD: /bin/cat /proc/slabinfo +``` ## Metrics @@ -40,6 +52,7 @@ subsystems and drivers used by the system such as `xfs_inode`. Each field with `_size` suffix indicates memory consumption in bytes. - mem + - tags: - fields: - kmalloc_8_size (integer) - kmalloc_16_size (integer) @@ -54,7 +67,6 @@ Each field with `_size` suffix indicates memory consumption in bytes. ## Example Output -```shel -slab -kmalloc_1024_size=239927296i,kmalloc_512_size=5582848i 1651049129000000000 +```text +slab kmalloc_1024_size=239927296i,kmalloc_512_size=5582848i 1651049129000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/smart.md b/src/writeData/components/telegrafPlugins/smart.md index 76c8759d9a..e6103d930c 100644 --- a/src/writeData/components/telegrafPlugins/smart.md +++ b/src/writeData/components/telegrafPlugins/smart.md @@ -1,84 +1,30 @@ # S.M.A.R.T. Input Plugin -Get metrics using the command line utility `smartctl` for -S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) storage -devices. SMART is a monitoring system included in computer hard disk drives -(HDDs) and solid-state drives (SSDs) that detects and reports on various -indicators of drive reliability, with the intent of enabling the anticipation of -hardware failures. See smartmontools (). - -SMART information is separated between different measurements: `smart_device` is -used for general information, while `smart_attribute` stores the detailed -attribute information if `attributes = true` is enabled in the plugin -configuration. - -If no devices are specified, the plugin will scan for SMART devices via the -following command: - -```sh -smartctl --scan -``` - -Metrics will be reported from the following `smartctl` command: - -```sh -smartctl --info --attributes --health -n --format=brief -``` - -This plugin supports _smartmontools_ version 5.41 and above, but v. 5.41 and -v. 5.42 might require setting `nocheck`, see the comment in the sample -configuration. Also, NVMe capabilities were introduced in version 6.5. - -To enable SMART on a storage device run: - -```sh -smartctl -s on -``` - -## NVMe vendor specific attributes - -For NVMe disk type, plugin can use command line utility `nvme-cli`. It has a -feature to easy access a vendor specific attributes. This plugin supports -nmve-cli version 1.5 and above (). In -case of `nvme-cli` absence NVMe vendor specific metrics will not be obtained. - -Vendor specific SMART metrics for NVMe disks may be reported from the following -`nvme` command: - -```sh -nvme smart-log-add -``` +This plugin collects [Self-Monitoring, Analysis and Reporting Technology][smart] +information for storage devices information using the +[`smartmontools`][smartmon] package. This plugin also supports NVMe devices by +using the [`nvme-cli`][nvmecli] package. -Note that vendor plugins for `nvme-cli` could require different naming -convention and report format. +> [!NOTE] +> This plugin requires the [`smartmontools`][smartmon] and, for NVMe devices, +> the [`nvme-cli`][nvmecli] packages to be installed on your system. The +> `smartctl` and `nvme` commands must to be executable by Telegraf. -To see installed plugin extensions, depended on the nvme-cli version, look at -the bottom of: - -```sh -nvme help -``` +⭐ Telegraf v1.5.0 +🏷️ hardware, system +💻 all -To gather disk vendor id (vid) `id-ctrl` could be used: +[smart]: https://en.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology +[nvmecli]: https://github.com/linux-nvme/nvme-cli -```sh -nvme id-ctrl -``` +## Global configuration options -Association between a vid and company can be found there: -. +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -Devices affiliation to being NVMe or non NVMe will be determined thanks to: - -```sh -smartctl --scan -``` - -and: - -```sh -smartctl --scan -d nvme -``` +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -87,21 +33,25 @@ smartctl --scan -d nvme [[inputs.smart]] ## Optionally specify the path to the smartctl executable # path_smartctl = "/usr/bin/smartctl" - + ## Optionally specify the path to the nvme-cli executable # path_nvme = "/usr/bin/nvme" - + ## Optionally specify if vendor specific attributes should be propagated for NVMe disk case ## ["auto-on"] - automatically find and enable additional vendor specific disk info ## ["vendor1", "vendor2", ...] - e.g. "Intel" enable additional Intel specific disk info # enable_extensions = ["auto-on"] - + ## On most platforms used cli utilities requires root access. ## Setting 'use_sudo' to true will make use of sudo to run smartctl or nvme-cli. ## Sudo must be configured to allow the telegraf user to run smartctl or nvme-cli ## without a password. # use_sudo = false - + + ## Adds an extra tag "device_type", which can be used to differentiate + ## multiple disks behind the same controller (e.g., MegaRAID). + # tag_with_device_type = false + ## Skip checking disks in this power mode. Defaults to ## "standby" to not wake up disks that have stopped rotating. ## See --nocheck in the man pages for smartctl. @@ -109,22 +59,22 @@ smartctl --scan -d nvme ## power mode and might require changing this value to ## "never" depending on your disks. # nocheck = "standby" - + ## Gather all returned S.M.A.R.T. attribute metrics and the detailed ## information from each drive into the 'smart_attribute' measurement. # attributes = false - + ## Optionally specify devices to exclude from reporting if disks auto-discovery is performed. # excludes = [ "/dev/pass6" ] - + ## Optionally specify devices and device type, if unset ## a scan (smartctl --scan and smartctl --scan -d nvme) for S.M.A.R.T. devices will be done ## and all found will be included except for the excluded in excludes. # devices = [ "/dev/ada0 -d atacam", "/dev/nvme0"] - + ## Timeout for the cli command to complete. # timeout = "30s" - + ## Optionally call smartctl and nvme-cli with a specific concurrency policy. ## By default, smartctl and nvme-cli are called in separate threads (goroutines) to gather disk attributes. ## Some devices (e.g. disks in RAID arrays) may have access limitations that require sequential reading of @@ -134,7 +84,7 @@ smartctl --scan -d nvme # read_method = "concurrent" ``` -## Permissions +### Permissions It's important to note that this plugin references smartctl and nvme-cli, which may require additional permissions to execute successfully. Depending on the @@ -167,12 +117,95 @@ To run smartctl or nvme with `sudo` wrapper script can be created. `path_smartctl` or `path_nvme` in the configuration should be set to execute this script. +### SMART specific attributes + +SMART is a monitoring system included in computer hard disk drives +(HDDs) and solid-state drives (SSDs) that detects and reports on various +indicators of drive reliability, with the intent of enabling the anticipation of +hardware failures. + +SMART information is separated between different measurements: `smart_device` is +used for general information, while `smart_attribute` stores the detailed +attribute information if `attributes = true` is enabled in the plugin +configuration. + +If no devices are specified, the plugin will scan for SMART devices via the +following command: + +```sh +smartctl --scan +``` + +Metrics will be reported from the following `smartctl` command: + +```sh +smartctl --info --attributes --health -n --format=brief +``` + +This plugin supports`smartmontools` version 5.41 and above, but v. 5.41 and +v. 5.42 might require setting `nocheck`. See the comment in the sample +configuration. Also, NVMe capabilities were introduced in version 6.5. + +To enable SMART on a storage device run: + +```sh +smartctl -s on +``` + +### NVMe vendor specific attributes + +For NVMe disk type, plugin can use command line utility `nvme-cli`. It has a +feature to easy access a vendor specific attributes. This plugin supports +nmve-cli version 1.5 and above. In case of `nvme-cli` absence NVMe vendor +specific metrics will not be obtained. + +Vendor specific SMART metrics for NVMe disks may be reported from the following +`nvme` command: + +```sh +nvme smart-log-add +``` + +Note that vendor plugins for `nvme-cli` could require different naming +convention and report format. + +To see installed plugin extensions, depended on the nvme-cli version, look at +the bottom of: + +```sh +nvme help +``` + +To gather disk vendor id (vid) `id-ctrl` could be used: + +```sh +nvme id-ctrl +``` + +Association between a vid and company can be found in the +[membership list][members]. + +Devices affiliation to being NVMe or non NVMe will be determined thanks to: + +```sh +smartctl --scan +``` + +and: + +```sh +smartctl --scan -d nvme +``` + +[members]: https://pcisig.com/membership/member-companies + ## Metrics - smart_device: - tags: - capacity - device + - device_type (only emitted if `tag_with_device_type` is set to `true`) - enabled - model - serial_no @@ -192,6 +225,7 @@ execute this script. - tags: - capacity - device + - device_type (only emitted if `tag_with_device_type` is set to `true`) - enabled - fail - flags @@ -288,7 +322,7 @@ to sequential: ## Example Output -```shell +```text smart_device,enabled=Enabled,host=mbpro.local,device=rdisk0,model=APPLE\ SSD\ SM0512F,serial_no=S1K5NYCD964433,wwn=5002538655584d30,capacity=500277790720 udma_crc_errors=0i,exit_status=0i,health_ok=true,read_error_rate=0i,temp_c=40i 1502536854000000000 smart_attribute,capacity=500277790720,device=rdisk0,enabled=Enabled,fail=-,flags=-O-RC-,host=mbpro.local,id=199,model=APPLE\ SSD\ SM0512F,name=UDMA_CRC_Error_Count,serial_no=S1K5NYCD964433,wwn=5002538655584d30 exit_status=0i,raw_value=0i,threshold=0i,value=200i,worst=200i 1502536854000000000 smart_attribute,capacity=500277790720,device=rdisk0,enabled=Enabled,fail=-,flags=-O---K,host=mbpro.local,id=199,model=APPLE\ SSD\ SM0512F,name=Unknown_SSD_Attribute,serial_no=S1K5NYCD964433,wwn=5002538655584d30 exit_status=0i,raw_value=0i,threshold=0i,value=100i,worst=100i 1502536854000000000 diff --git a/src/writeData/components/telegrafPlugins/snmp.md b/src/writeData/components/telegrafPlugins/snmp.md index 0b71052e28..b10613390f 100644 --- a/src/writeData/components/telegrafPlugins/snmp.md +++ b/src/writeData/components/telegrafPlugins/snmp.md @@ -1,13 +1,34 @@ # SNMP Input Plugin -The `snmp` input plugin uses polling to gather metrics from SNMP agents. -Support for gathering individual OIDs as well as complete SNMP tables is -included. +This plugin gathers metrics by polling [SNMP][snmp] agents with individual OIDs +or complete SNMP tables. -## Note about Paths +> [!NOTE] +> The path setting is shared between all instances of all SNMP plugin types! -Path is a global variable, separate snmp instances will append the specified -path onto the global path variable +⭐ Telegraf v0.10.1 +🏷️ hardware, network +💻 all + +[snmp]: https://datatracker.ietf.org/doc/html/rfc1157 + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `auth_password` and +`priv_password` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -31,10 +52,10 @@ path onto the global path variable # version = 2 ## Unconnected UDP socket - ## When true, SNMP reponses are accepted from any address not just + ## When true, SNMP responses are accepted from any address not just ## the requested address. This can be useful when gathering from ## redundant/failover systems. - # unconnected_udp_socket = false + # unconnected_udp_socket = false ## Path to mib files ## Used by the gosmi translator. @@ -44,7 +65,12 @@ path onto the global path variable ## SNMP community string. # community = "public" - ## Agent host tag + ## Agent host tag; should be set to "source" for consistent usage across plugins + ## example: agent_host_tag = "source" + ## The default value is inconsistent with other plugins. Users will get a + ## warning that can be ignored if this is not changed. However, to have a + ## consistent experience, set this to "source" in your config to align with + ## other plugins. # agent_host_tag = "agent_host" ## Number of retries to attempt. @@ -77,17 +103,18 @@ path onto the global path variable ## full plugin documentation for configuration details. [[inputs.snmp.field]] oid = "RFC1213-MIB::sysUpTime.0" - name = "uptime" + name = "sysUptime" + conversion = "float(2)" [[inputs.snmp.field]] oid = "RFC1213-MIB::sysName.0" - name = "source" + name = "sysName" is_tag = true [[inputs.snmp.table]] oid = "IF-MIB::ifTable" name = "interface" - inherit_tags = ["source"] + inherit_tags = ["sysName"] [[inputs.snmp.table.field]] oid = "IF-MIB::ifDescr" @@ -95,6 +122,20 @@ path onto the global path variable is_tag = true ``` +### SNMP backend: `gosmi` vs `netsnmp` + +This plugin supports two backends to translate SNMP objects. By default, +Telegraf will use `netsnmp`, however, this option is deprecated and it is +encouraged to migrate to `gosmi`. If users find issues with `gosmi` that do not +occur with `netsnmp` please open a project issue on GitHub. + +The SNMP backend setting is a global-level setting that applies to all use of +SNMP in Telegraf. Users can set this option in the `[agent]` configuration via +the `snmp_translator` option. See the [agent configuration][agent] for more +details. + +[agent]: /docs/CONFIGURATION.md#agent + ### Configure SNMP Requests This plugin provides two methods for configuring the SNMP requests: `fields` @@ -131,13 +172,17 @@ option operate similar to the `snmpget` utility. ## float: Convert the value into a float with no adjustment. Same ## as `float(0)`. ## int: Convert the value into an integer. - ## hwaddr: Convert the value to a MAC address. ## ipaddr: Convert the value to an IP address. - ## hextoint:X:Y Convert a hex string value to integer. Where X is the Endian - ## and Y the bit size. For example: hextoint:LittleEndian:uint64 - ## or hextoint:BigEndian:uint32. Valid options for the Endian are: - ## BigEndian and LittleEndian. For the bit size: uint16, uint32 - ## and uint64. + ## hex: Convert bytes to a hex string. + ## hextoint:X:Y Convert bytes to integer, where X is the endian and Y the + ## bit size. For example: hextoint:LittleEndian:uint64 or + ## hextoint:BigEndian:uint32. Valid options for the endian + ## are: BigEndian and LittleEndian. For the bit size: + ## uint16, uint32 and uint64. + ## enum: Convert the value according to its syntax in the MIB. + ## (Only supported with gosmi translator) + ## displayhint: Format the value according to the textual convention in the MIB. + ## (Only supported with gosmi translator) ## # conversion = "" ``` @@ -154,9 +199,9 @@ By default all columns of the SNMP table will be collected - it is not required to add a nested field for each column, only those which you wish to modify. To *only* collect certain columns, omit the `oid` from the `table` section and only include `oid` settings in `field` sections. For more complex include/exclude -cases for columns use [metric filtering][]. +cases for columns use [metric filtering][filtering]. -One [metric][] is created for each row of the SNMP table. +One metric is created for each row of the SNMP table. ```toml [[inputs.snmp]] @@ -219,11 +264,13 @@ One [metric][] is created for each row of the SNMP table. ## Controls if entries from secondary table should be added or not ## if joining index is present or not. I set to true, means that join ## is outer, and index is prepended with "Secondary." for missing values - ## to avoid overlaping indexes from both tables. Can be set per field or + ## to avoid overlapping indexes from both tables. Can be set per field or ## globally with SecondaryIndexTable, global true overrides per field false. # secondary_outer_join = false ``` +[filtering]: /docs/CONFIGURATION.md#metric-filtering + #### Two Table Join Snmp plugin can join two snmp tables that have different indexes. For this to @@ -263,7 +310,7 @@ name = "EntPhyIndex" oid = "CISCO-POWER-ETHERNET-EXT-MIB::cpeExtPsePortEntPhyIndex" ``` -Partial result (removed agent_host and host columns from all following outputs +Partial result (removed agent and host tags from all following outputs in this section): ```text @@ -359,14 +406,15 @@ sudo tcpdump -s 0 -i eth0 -w telegraf-snmp.pcap host 127.0.0.1 and port 161 The field and tags will depend on the table and fields configured. +* snmp + * tags: + * agent_host (deprecated in 1.29: use `source` instead) + ## Example Output -```shell -snmp,agent_host=127.0.0.1,source=loaner uptime=11331974i 1575509815000000000 -interface,agent_host=127.0.0.1,ifDescr=wlan0,ifIndex=3,source=example.org ifAdminStatus=1i,ifInDiscards=0i,ifInErrors=0i,ifInNUcastPkts=0i,ifInOctets=3436617431i,ifInUcastPkts=2717778i,ifInUnknownProtos=0i,ifLastChange=0i,ifMtu=1500i,ifOperStatus=1i,ifOutDiscards=0i,ifOutErrors=0i,ifOutNUcastPkts=0i,ifOutOctets=581368041i,ifOutQLen=0i,ifOutUcastPkts=1354338i,ifPhysAddress="c8:5b:76:c9:e6:8c",ifSpecific=".0.0",ifSpeed=0i,ifType=6i 1575509815000000000 -interface,agent_host=127.0.0.1,ifDescr=eth0,ifIndex=2,source=example.org ifAdminStatus=1i,ifInDiscards=0i,ifInErrors=0i,ifInNUcastPkts=21i,ifInOctets=3852386380i,ifInUcastPkts=3634004i,ifInUnknownProtos=0i,ifLastChange=9088763i,ifMtu=1500i,ifOperStatus=1i,ifOutDiscards=0i,ifOutErrors=0i,ifOutNUcastPkts=0i,ifOutOctets=434865441i,ifOutQLen=0i,ifOutUcastPkts=2110394i,ifPhysAddress="c8:5b:76:c9:e6:8c",ifSpecific=".0.0",ifSpeed=1000000000i,ifType=6i 1575509815000000000 -interface,agent_host=127.0.0.1,ifDescr=lo,ifIndex=1,source=example.org ifAdminStatus=1i,ifInDiscards=0i,ifInErrors=0i,ifInNUcastPkts=0i,ifInOctets=51555569i,ifInUcastPkts=339097i,ifInUnknownProtos=0i,ifLastChange=0i,ifMtu=65536i,ifOperStatus=1i,ifOutDiscards=0i,ifOutErrors=0i,ifOutNUcastPkts=0i,ifOutOctets=51555569i,ifOutQLen=0i,ifOutUcastPkts=339097i,ifSpecific=".0.0",ifSpeed=10000000i,ifType=24i 1575509815000000000 +```text +snmp,agent_host=127.0.0.1,sysName=example.org uptime=113319.74 1575509815000000000 +interface,agent_host=127.0.0.1,ifDescr=wlan0,ifIndex=3,sysName=example.org ifAdminStatus=1i,ifInDiscards=0i,ifInErrors=0i,ifInNUcastPkts=0i,ifInOctets=3436617431i,ifInUcastPkts=2717778i,ifInUnknownProtos=0i,ifLastChange=0i,ifMtu=1500i,ifOperStatus=1i,ifOutDiscards=0i,ifOutErrors=0i,ifOutNUcastPkts=0i,ifOutOctets=581368041i,ifOutQLen=0i,ifOutUcastPkts=1354338i,ifPhysAddress="c8:5b:76:c9:e6:8c",ifSpecific=".0.0",ifSpeed=0i,ifType=6i 1575509815000000000 +interface,agent_host=127.0.0.1,ifDescr=eth0,ifIndex=2,sysName=example.org ifAdminStatus=1i,ifInDiscards=0i,ifInErrors=0i,ifInNUcastPkts=21i,ifInOctets=3852386380i,ifInUcastPkts=3634004i,ifInUnknownProtos=0i,ifLastChange=9088763i,ifMtu=1500i,ifOperStatus=1i,ifOutDiscards=0i,ifOutErrors=0i,ifOutNUcastPkts=0i,ifOutOctets=434865441i,ifOutQLen=0i,ifOutUcastPkts=2110394i,ifPhysAddress="c8:5b:76:c9:e6:8c",ifSpecific=".0.0",ifSpeed=1000000000i,ifType=6i 1575509815000000000 +interface,agent_host=127.0.0.1,ifDescr=lo,ifIndex=1,sysName=example.org ifAdminStatus=1i,ifInDiscards=0i,ifInErrors=0i,ifInNUcastPkts=0i,ifInOctets=51555569i,ifInUcastPkts=339097i,ifInUnknownProtos=0i,ifLastChange=0i,ifMtu=65536i,ifOperStatus=1i,ifOutDiscards=0i,ifOutErrors=0i,ifOutNUcastPkts=0i,ifOutOctets=51555569i,ifOutQLen=0i,ifOutUcastPkts=339097i,ifSpecific=".0.0",ifSpeed=10000000i,ifType=24i 1575509815000000000 ``` - -[metric filtering]: /docs/CONFIGURATION.md#metric-filtering -[metric]: /docs/METRICS.md diff --git a/src/writeData/components/telegrafPlugins/snmp_trap.md b/src/writeData/components/telegrafPlugins/snmp_trap.md index 67f3fec0ef..8cfbe37811 100644 --- a/src/writeData/components/telegrafPlugins/snmp_trap.md +++ b/src/writeData/components/telegrafPlugins/snmp_trap.md @@ -1,15 +1,45 @@ # SNMP Trap Input Plugin -The SNMP Trap plugin is a service input plugin that receives SNMP -notifications (traps and inform requests). +This service plugin listens for [SNMP][snmp] notifications like traps and inform +requests. Notifications are received on plain UDP with a configurable port. -Notifications are received on plain UDP. The port to listen is -configurable. +> [!NOTE] +> The path setting is shared between all instances of all SNMP plugin types! -## Note about Paths +⭐ Telegraf v1.13.0 +🏷️ hardware, network +💻 all -Path is a global variable, separate snmp instances will append the specified -path onto the global path variable +[snmp]: https://datatracker.ietf.org/doc/html/rfc1157 + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `sec_name`, +`auth_password` and `priv_password` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -30,16 +60,16 @@ path onto the global path variable ## To add paths when translating with netsnmp, use the MIBDIRS environment variable # path = ["/usr/share/snmp/mibs"] ## - ## Deprecated in 1.20.0; no longer running snmptranslate ## Timeout running snmptranslate command + ## Used by the netsnmp translator only # timeout = "5s" - ## Snmp version + ## Snmp version; one of "1", "2c" or "3". # version = "2c" ## SNMPv3 authentication and encryption options. ## ## Security Name. # sec_name = "myuser" - ## Authentication protocol; one of "MD5", "SHA" or "". + ## Authentication protocol; one of "MD5", "SHA", "SHA224", "SHA256", "SHA384", "SHA512" or "". # auth_protocol = "MD5" ## Authentication password. # auth_password = "pass" @@ -51,6 +81,20 @@ path onto the global path variable # priv_password = "" ``` +### SNMP backend: `gosmi` vs `netsnmp` + +This plugin supports two backends to translate SNMP objects. By default, +Telegraf will use `netsnmp`, however, this option is deprecated and it is +encouraged to migrate to `gosmi`. If users find issues with `gosmi` that do not +occur with `netsnmp` please open a project issue on GitHub. + +The SNMP backend setting is a global-level setting that applies to all use of +SNMP in Telegraf. Users can set this option in the `[agent]` configuration via +the `snmp_translator` option. See the [agent configuration][agent] for more +details. + +[agent]: /docs/CONFIGURATION.md#agent + ### Using a Privileged Port On many operating systems, listening on a privileged port (a port @@ -95,10 +139,7 @@ On Mac OS, listening on privileged ports is unrestricted on versions ## Example Output -```shell +```text snmp_trap,mib=SNMPv2-MIB,name=coldStart,oid=.1.3.6.1.6.3.1.1.5.1,source=192.168.122.102,version=2c,community=public snmpTrapEnterprise.0="linux",sysUpTimeInstance=1i 1574109187723429814 snmp_trap,mib=NET-SNMP-AGENT-MIB,name=nsNotifyShutdown,oid=.1.3.6.1.4.1.8072.4.0.2,source=192.168.122.102,version=2c,community=public sysUpTimeInstance=5803i,snmpTrapEnterprise.0="netSnmpNotificationPrefix" 1574109186555115459 ``` - -[net-snmp]: http://www.net-snmp.org/ -[man snmpcmd]: http://net-snmp.sourceforge.net/docs/man/snmpcmd.html#lbAK diff --git a/src/writeData/components/telegrafPlugins/socket_listener.md b/src/writeData/components/telegrafPlugins/socket_listener.md index 03736bec06..0acae45d91 100644 --- a/src/writeData/components/telegrafPlugins/socket_listener.md +++ b/src/writeData/components/telegrafPlugins/socket_listener.md @@ -1,10 +1,34 @@ # Socket Listener Input Plugin -The Socket Listener is a service input plugin that listens for messages from -streaming (tcp, unix) or datagram (udp, unixgram) protocols. +This service plugin listens for messages on sockets (TCP, UDP, Unix or Unixgram) +and parses the packets received in one of the supported +[data formats][data_formats]. -The plugin expects messages in the [Telegraf Input Data -Formats](https://github.com/influxdata/telegraf/tree/master/docs/DATA_FORMATS_INPUT.md). +⭐ Telegraf v1.3.0 +🏷️ network +💻 all + +[data_formats]: /docs/DATA_FORMATS_INPUT.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -22,55 +46,92 @@ Formats](https://github.com/influxdata/telegraf/tree/master/docs/DATA_FORMATS_IN # service_address = "udp6://:8094" # service_address = "unix:///tmp/telegraf.sock" # service_address = "unixgram:///tmp/telegraf.sock" + # service_address = "vsock://cid:port" - ## Change the file mode bits on unix sockets. These permissions may not be - ## respected by some platforms, to safely restrict write permissions it is best - ## to place the socket into a directory that has previously been created - ## with the desired permissions. + ## Permission for unix sockets (only available on unix sockets) + ## This setting may not be respected by some platforms. To safely restrict + ## permissions it is recommended to place the socket into a previously + ## created directory with the desired permissions. ## ex: socket_mode = "777" # socket_mode = "" - ## Maximum number of concurrent connections. - ## Only applies to stream sockets (e.g. TCP). - ## 0 (default) is unlimited. - # max_connections = 1024 + ## Maximum number of concurrent connections (only available on stream sockets like TCP) + ## Zero means unlimited. + # max_connections = 0 - ## Read timeout. - ## Only applies to stream sockets (e.g. TCP). - ## 0 (default) is unlimited. - # read_timeout = "30s" + ## Read timeout (only available on stream sockets like TCP) + ## Zero means unlimited. + # read_timeout = "0s" - ## Optional TLS configuration. - ## Only applies to stream sockets (e.g. TCP). + ## Optional TLS configuration (only available on stream sockets like TCP) # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" ## Enables client authentication if set. # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] - ## Maximum socket buffer size (in bytes when no unit specified). - ## For stream sockets, once the buffer fills up, the sender will start backing up. - ## For datagram sockets, once the buffer fills up, metrics will start dropping. - ## Defaults to the OS default. + ## Maximum socket buffer size (in bytes when no unit specified) + ## For stream sockets, once the buffer fills up, the sender will start + ## backing up. For datagram sockets, once the buffer fills up, metrics will + ## start dropping. Defaults to the OS default. # read_buffer_size = "64KiB" - ## Period between keep alive probes. - ## Only applies to TCP sockets. - ## 0 disables keep alive probes. - ## Defaults to the OS configuration. + ## Period between keep alive probes (only applies to TCP sockets) + ## Zero disables keep alive probes. Defaults to the OS configuration. # keep_alive_period = "5m" + ## Content encoding for message payloads + ## Can be set to "gzip" for compressed payloads or "identity" for no encoding. + # content_encoding = "identity" + + ## Maximum size of decoded packet (in bytes when no unit specified) + # max_decompression_size = "500MB" + + ## Message splitting strategy and corresponding settings for stream sockets + ## (tcp, tcp4, tcp6, unix or unixpacket). The setting is ignored for packet + ## listeners such as udp. + ## Available strategies are: + ## newline -- split at newlines (default) + ## null -- split at null bytes + ## delimiter -- split at delimiter byte-sequence in hex-format + ## given in `splitting_delimiter` + ## fixed length -- split after number of bytes given in `splitting_length` + ## variable length -- split depending on length information received in the + ## data. The length field information is specified in + ## `splitting_length_field`. + # splitting_strategy = "newline" + + ## Delimiter used to split received data to messages consumed by the parser. + ## The delimiter is a hex byte-sequence marking the end of a message + ## e.g. "0x0D0A", "x0d0a" or "0d0a" marks a Windows line-break (CR LF). + ## The value is case-insensitive and can be specified with "0x" or "x" prefix + ## or without. + ## Note: This setting is only used for splitting_strategy = "delimiter". + # splitting_delimiter = "" + + ## Fixed length of a message in bytes. + ## Note: This setting is only used for splitting_strategy = "fixed length". + # splitting_length = 0 + + ## Specification of the length field contained in the data to split messages + ## with variable length. The specification contains the following fields: + ## offset -- start of length field in bytes from begin of data + ## bytes -- length of length field in bytes + ## endianness -- endianness of the value, either "be" for big endian or + ## "le" for little endian + ## header_length -- total length of header to be skipped when passing + ## data on to the parser. If zero (default), the header + ## is passed on to the parser together with the message. + ## Note: This setting is only used for splitting_strategy = "variable length". + # splitting_length_field = {offset = 0, bytes = 0, endianness = "be", header_length = 0} + ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # data_format = "influx" - - ## Content encoding for message payloads, can be set to "gzip" to or - ## "identity" to apply no encoding. - # content_encoding = "identity" ``` -## A Note on UDP OS Buffer Sizes +### Operating System UDP Buffer Sizes The `read_buffer_size` config option can be used to adjust the size of the socket buffer, but this number is limited by OS settings. On Linux, @@ -85,9 +146,9 @@ of UDP protocols. It is _highly_ recommended that you increase these OS limits to at least 8MB before trying to run large amounts of UDP traffic to your instance. 8MB is just a recommendation, and can be adjusted higher. -### Linux +#### Linux -Check the current UDP/IP receive buffer limit & default by typing the following +Check the current UDP/IP receive buffer limit and default by using the following commands: ```sh @@ -111,12 +172,12 @@ sysctl -w net.core.rmem_max=8388608 sysctl -w net.core.rmem_default=8388608 ``` -### BSD/Darwin +#### BSD/Darwin On BSD/Darwin systems you need to add about a 15% padding to the kernel limit socket buffer. Meaning if you want an 8MB buffer (8388608 bytes) you need to set the kernel limit to `8388608*1.15 = 9646900`. This is not documented anywhere -but can be seen [in the kernel source code][1]. +but can be seen [in the kernel source code][kernel_source]. Check the current UDP/IP buffer limit by typing the following command: @@ -138,4 +199,13 @@ To update the values immediately, type the following command as root: sysctl -w kern.ipc.maxsockbuf=9646900 ``` -[1]: https://github.com/freebsd/freebsd/blob/master/sys/kern/uipc_sockbuf.c#L63-L64 +[kernel_source]: https://github.com/freebsd/freebsd/blob/master/sys/kern/uipc_sockbuf.c#L63-L64 + +## Metrics + +The plugin accepts arbitrary input and parses it according to the `data_format` +setting. There is no predefined metric format. + +## Example Output + +There is no predefined metric format, so output depends on plugin input. diff --git a/src/writeData/components/telegrafPlugins/socketstat.md b/src/writeData/components/telegrafPlugins/socketstat.md index 369e50fdab..929dd3533e 100644 --- a/src/writeData/components/telegrafPlugins/socketstat.md +++ b/src/writeData/components/telegrafPlugins/socketstat.md @@ -1,59 +1,86 @@ -# SocketStat Input Plugin +# Socket Statistics Input Plugin -The socketstat plugin gathers indicators from established connections, using -iproute2's `ss` command. +This plugin gathers metrics for established network connections using +[iproute2][iproute]'s `ss` command. The `ss` command does not require specific +privileges. -The `ss` command does not require specific privileges. +> [!CRITICAL] +> This plugin produces high cardinality data, which when not controlled for will +> cause high load on your database. Please make sure to [filter][filtering] the +> produced metrics or configure your database to avoid cardinality issues! -**WARNING: The output format will produce series with very high cardinality.** -You should either store those by an engine which doesn't suffer from it, use a -short retention policy or do appropriate filtering. +⭐ Telegraf v1.22.0 +🏷️ network +💻 freebsd, linux, macos + +[iproute]: https://github.com/iproute2/iproute2 +[filtering]: /docs/CONFIGURATION.md#metric-filtering + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Gather indicators from established connections, using iproute2's ss command. +# This plugin ONLY supports non-Windows [[inputs.socketstat]] ## ss can display information about tcp, udp, raw, unix, packet, dccp and sctp sockets ## Specify here the types you want to gather - socket_types = [ "tcp", "udp" ] + protocols = [ "tcp", "udp" ] + ## The default timeout of 1s for ss execution can be overridden here: # timeout = "1s" ``` -## Measurements & Fields +## Metrics + +The measurements `socketstat` contains the following fields -- socketstat - - state (string) (for tcp, dccp and sctp protocols) - - If ss provides it (it depends on the protocol and ss version): - - bytes_acked (integer, bytes) - - bytes_received (integer, bytes) - - segs_out (integer, count) - - segs_in (integer, count) - - data_segs_out (integer, count) - - data_segs_in (integer, count) +- state (string) (for tcp, dccp and sctp protocols) -## Tags +If ss provides it (it depends on the protocol and ss version) it has the +following additional fields -- All measurements have the following tags: - - proto - - local_addr - - local_port - - remote_addr - - remote_port +- bytes_acked (integer, bytes) +- bytes_received (integer, bytes) +- segs_out (integer, count) +- segs_in (integer, count) +- data_segs_out (integer, count) +- data_segs_in (integer, count) + +All measurements have the following tags: + +- proto +- local_addr +- local_port +- remote_addr +- remote_port ## Example Output -### recent ss version (iproute2 4.3.0 here) +### recent `ss` version (iproute2 4.3.0 here) ```sh ./telegraf --config telegraf.conf --input-filter socketstat --test -> socketstat,host=ubuntu-xenial,local_addr=10.6.231.226,local_port=42716,proto=tcp,remote_addr=192.168.2.21,remote_port=80 bytes_acked=184i,bytes_received=2624519595i,recv_q=4344i,segs_in=1812580i,segs_out=661642i,send_q=0i,state="ESTAB" 1606457205000000000 ``` -### older ss version (iproute2 3.12.0 here) +```text +socketstat,host=ubuntu-xenial,local_addr=10.6.231.226,local_port=42716,proto=tcp,remote_addr=192.168.2.21,remote_port=80 bytes_acked=184i,bytes_received=2624519595i,recv_q=4344i,segs_in=1812580i,segs_out=661642i,send_q=0i,state="ESTAB" 1606457205000000000 +``` + +### older `ss` version (iproute2 3.12.0 here) ```sh ./telegraf --config telegraf.conf --input-filter socketstat --test -> socketstat,host=ubuntu-trusty,local_addr=10.6.231.163,local_port=35890,proto=tcp,remote_addr=192.168.2.21,remote_port=80 recv_q=0i,send_q=0i,state="ESTAB" 1606456977000000000 +``` + +```text +socketstat,host=ubuntu-trusty,local_addr=10.6.231.163,local_port=35890,proto=tcp,remote_addr=192.168.2.21,remote_port=80 recv_q=0i,send_q=0i,state="ESTAB" 1606456977000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/solr.md b/src/writeData/components/telegrafPlugins/solr.md index 00ca7f4b0f..48874bc5a0 100644 --- a/src/writeData/components/telegrafPlugins/solr.md +++ b/src/writeData/components/telegrafPlugins/solr.md @@ -1,15 +1,28 @@ -# Solr Input Plugin +# Apache Solr Input Plugin -The [solr](http://lucene.apache.org/solr/) plugin collects stats via the [MBean -Request Handler][1]. +This plugin collects statistics from [Solr][solr] instances using the +[MBean Request Handler][mbean_request_handler]. For additional details on +performance statistics check the [performance statistics reference][reference]. -More about [performance statistics][2]. +> [!NOTE] +> This plugin requires Apache Solr v3.5+. -Tested from 3.5 to 7.* +⭐ Telegraf v1.5.0 +🏷️ server +💻 all -[1]: https://cwiki.apache.org/confluence/display/solr/MBean+Request+Handler +[solr]: http://lucene.apache.org/solr/ +[mbean_request_handler]: https://cwiki.apache.org/confluence/display/solr/MBean+Request+Handler +[reference]: https://cwiki.apache.org/confluence/display/solr/Performance+Statistics+Reference -[2]: https://cwiki.apache.org/confluence/display/solr/Performance+Statistics+Reference +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -18,25 +31,42 @@ Tested from 3.5 to 7.* [[inputs.solr]] ## specify a list of one or more Solr servers servers = ["http://localhost:8983"] - ## + ## specify a list of one or more Solr cores (default - all) - # cores = ["main"] - ## + # cores = ["*"] + ## Optional HTTP Basic Auth Credentials # username = "username" # password = "pa$$word" + + ## Timeout for HTTP requests + # timeout = "5s" ``` -## Example output of gathered metrics - -```shell -➜ ~ telegraf -config telegraf.conf -input-filter solr -test -* Plugin: solr, Collection 1 -> solr_core,core=main,handler=searcher,host=testhost deleted_docs=17616645i,max_docs=261848363i,num_docs=244231718i 1478214949000000000 -> solr_core,core=main,handler=core,host=testhost deleted_docs=0i,max_docs=0i,num_docs=0i 1478214949000000000 -> solr_queryhandler,core=main,handler=/replication,host=testhost 15min_rate_reqs_per_second=0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000444659081257,5min_rate_reqs_per_second=0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014821969375,75th_pc_request_time=16.484211,95th_pc_request_time=16.484211,999th_pc_request_time=16.484211,99th_pc_request_time=16.484211,avg_requests_per_second=0.0000008443809966322143,avg_time_per_request=12.984811,errors=0i,handler_start=1474662050865i,median_request_time=11.352427,requests=3i,timeouts=0i,total_time=38.954433 1478214949000000000 -> solr_queryhandler,core=main,handler=/update/extract,host=testhost 15min_rate_reqs_per_second=0,5min_rate_reqs_per_second=0,75th_pc_request_time=0,95th_pc_request_time=0,999th_pc_request_time=0,99th_pc_request_time=0,avg_requests_per_second=0,avg_time_per_request=0,errors=0i,handler_start=0i,median_request_time=0,requests=0i,timeouts=0i,total_time=0 1478214949000000000 -> solr_queryhandler,core=main,handler=org.apache.solr.handler.component.SearchHandler,host=testhost 15min_rate_reqs_per_second=0,5min_rate_reqs_per_second=0,75th_pc_request_time=0,95th_pc_request_time=0,999th_pc_request_time=0,99th_pc_request_time=0,avg_requests_per_second=0,avg_time_per_request=0,errors=0i,handler_start=1474662050861i,median_request_time=0,requests=0i,timeouts=0i,total_time=0 1478214949000000000 -> solr_queryhandler,core=main,handler=/tvrh,host=testhost 15min_rate_reqs_per_second=0,5min_rate_reqs_per_second=0,75th_pc_request_time=0,95th_pc_request_time=0,999th_pc_request_time=0,99th_pc_request_time=0,avg_requests_per_second=0,avg_time_per_request=0,errors=0i,handler_start=0i,median_request_time=0,requests=0i,timeouts=0i,total_time=0 1478214949000000000 -[…] +## Metrics + +- solr_core + - tags + - core + - handler + - fields + - num_docs (integer) + - max_docs (integer) + - deleted_docs (integer) +- solr_queryhandler + - tags + - core + - handler + - fields + - depends on the handler information + +## Example Output + +```text +solr_core,core=main,handler=searcher,host=testhost deleted_docs=17616645i,max_docs=261848363i,num_docs=244231718i 1478214949000000000 +solr_core,core=main,handler=core,host=testhost deleted_docs=0i,max_docs=0i,num_docs=0i 1478214949000000000 +solr_queryhandler,core=main,handler=/replication,host=testhost 15min_rate_reqs_per_second=0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000444659081257,5min_rate_reqs_per_second=0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014821969375,75th_pc_request_time=16.484211,95th_pc_request_time=16.484211,999th_pc_request_time=16.484211,99th_pc_request_time=16.484211,avg_requests_per_second=0.0000008443809966322143,avg_time_per_request=12.984811,errors=0i,handler_start=1474662050865i,median_request_time=11.352427,requests=3i,timeouts=0i,total_time=38.954433 1478214949000000000 +solr_queryhandler,core=main,handler=/update/extract,host=testhost 15min_rate_reqs_per_second=0,5min_rate_reqs_per_second=0,75th_pc_request_time=0,95th_pc_request_time=0,999th_pc_request_time=0,99th_pc_request_time=0,avg_requests_per_second=0,avg_time_per_request=0,errors=0i,handler_start=0i,median_request_time=0,requests=0i,timeouts=0i,total_time=0 1478214949000000000 +solr_queryhandler,core=main,handler=org.apache.solr.handler.component.SearchHandler,host=testhost 15min_rate_reqs_per_second=0,5min_rate_reqs_per_second=0,75th_pc_request_time=0,95th_pc_request_time=0,999th_pc_request_time=0,99th_pc_request_time=0,avg_requests_per_second=0,avg_time_per_request=0,errors=0i,handler_start=1474662050861i,median_request_time=0,requests=0i,timeouts=0i,total_time=0 1478214949000000000 +solr_queryhandler,core=main,handler=/tvrh,host=testhost 15min_rate_reqs_per_second=0,5min_rate_reqs_per_second=0,75th_pc_request_time=0,95th_pc_request_time=0,999th_pc_request_time=0,99th_pc_request_time=0,avg_requests_per_second=0,avg_time_per_request=0,errors=0i,handler_start=0i,median_request_time=0,requests=0i,timeouts=0i,total_time=0 1478214949000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/sql.md b/src/writeData/components/telegrafPlugins/sql.md index fdd4f094d6..dc1c642d96 100644 --- a/src/writeData/components/telegrafPlugins/sql.md +++ b/src/writeData/components/telegrafPlugins/sql.md @@ -1,11 +1,35 @@ # SQL Input Plugin -This plugin reads metrics from performing SQL queries against a SQL +This plugin reads metrics from performing [SQL][sql] queries against a SQL server. Different server types are supported and their settings might differ -(especially the connection parameters). Please check the list of [supported SQL -drivers](https://github.com/influxdata/telegraf/tree/master/docs/SQL_DRIVERS_INPUT.md) for the `driver` name and options +(especially the connection parameters). Please check the list of +[supported SQL drivers][sql_drivers] for the `driver` name and options for the data-source-name (`dsn`) options. +⭐ Telegraf v1.19.0 +🏷️ datastore +💻 all + +[sql]: https://www.iso.org/standard/76583.html +[sql_drivers]: /docs/SQL_DRIVERS_INPUT.md + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Secret-store support + +This plugin supports secrets from secret-stores for the `dsn` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. + +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets + ## Configuration ```toml @sample.conf @@ -18,7 +42,7 @@ for the data-source-name (`dsn`) options. ## Data source name for connecting ## The syntax and supported options depends on selected driver. - dsn = "username:password@mysqlserver:3307/dbname?param=value" + dsn = "username:password@tcp(mysqlserver:3307)/dbname?param=value" ## Timeout for any operation ## Note that the timeout for queries is per query not per gather. @@ -39,6 +63,12 @@ for the data-source-name (`dsn`) options. # connection_max_open = 0 # connection_max_idle = auto + ## Specifies plugin behavior regarding disconnected servers + ## Available choices : + ## - error: telegraf will return an error on startup if one the servers is unreachable + ## - ignore: telegraf will ignore unreachable servers on both startup and gather + # disconnected_servers_behavior = "error" + [[inputs.sql.query]] ## Query to perform on the server query="SELECT user,state,latency,score FROM Scoreboard WHERE application > 0" @@ -56,7 +86,7 @@ for the data-source-name (`dsn`) options. # measurement_column = "" ## Column name containing the time of the measurement - ## If ommited, the time of the query will be used. + ## If omitted, the time of the query will be used. # time_column = "" ## Format of the time contained in 'time_col' @@ -88,8 +118,6 @@ for the data-source-name (`dsn`) options. # field_columns_exclude = [] ``` -## Options - ### Driver The `driver` and `dsn` options specify how to connect to the database. As @@ -116,16 +144,16 @@ _not_ returned by the query, the plugin falls-back to the documented defaults. Fields or tags specified in the includes of the options but missing in the returned query are silently ignored. -## Types +### Types This plugin relies on the driver to do the type conversion. For the different properties of the metric the following types are accepted. -### Measurement +#### Measurement Only columns of type `string` are accepted. -### Time +#### Time For the metric time columns of type `time` are accepted directly. For numeric columns, `time_format` should be set to any of `unix`, `unix_ms`, `unix_ns` or @@ -134,13 +162,13 @@ expected. For string columns, please specify the `time_format` accordingly. See the [golang time documentation](https://golang.org/pkg/time/#Time.Format) for details. -### Tags +#### Tags For tags columns with textual values (`string` and `bytes`), signed and unsigned integers (8, 16, 32 and 64 bit), floating-point (32 and 64 bit), `boolean` and `time` values are accepted. Those values will be converted to string. -### Fields +#### Fields For fields columns with textual values (`string` and `bytes`), signed and unsigned integers (8, 16, 32 and 64 bit), floating-point (32 and 64 bit), @@ -149,6 +177,11 @@ unsigned integers (8, 16, 32 and 64 bit), floating-point (32 and 64 bit), `uint64` respectively. Floating-point values are converted to `float64` and `time` is converted to a nanosecond timestamp of type `int64`. +## Metrics + +The format of metrics produced by this plugin depends on the content and data +format of the file. + ## Example Output Using the [MariaDB sample database][maria-sample] and the configuration @@ -167,7 +200,7 @@ Using the [MariaDB sample database][maria-sample] and the configuration Telegraf will output the following metrics -```shell +```text nation,host=Hugin,name=John guest_id=1i 1611332164000000000 nation,host=Hugin,name=Jane guest_id=2i 1611332164000000000 nation,host=Hugin,name=Jean guest_id=3i 1611332164000000000 diff --git a/src/writeData/components/telegrafPlugins/sqlserver.md b/src/writeData/components/telegrafPlugins/sqlserver.md index 334d098e47..ed85bfe82e 100644 --- a/src/writeData/components/telegrafPlugins/sqlserver.md +++ b/src/writeData/components/telegrafPlugins/sqlserver.md @@ -1,113 +1,37 @@ -# SQL Server Input Plugin +# Microsoft SQL Server Input Plugin -The `sqlserver` plugin provides metrics for your SQL Server instance. -Recorded metrics are lightweight and use Dynamic Management Views -supplied by SQL Server. +This plugin provides metrics for your [SQL Server][sqlserver] instance. Recorded +metrics are lightweight and use Dynamic Management Views supplied by SQL Server. -## The SQL Server plugin supports the following editions/versions of SQL Server +> [!NOTE] +> This plugin supports SQL server versions supported by Microsoft (see +> [lifecycle dates][lifecycle]), Azure SQL Databases (Single), Azure SQL Managed +> Instances, Azure SQL Elastic Pools and Azure Arc-enabled SQL Managed +> Instances. -- SQL Server - - 2012 or newer (Plugin support aligned with the [official Microsoft SQL Server support](https://docs.microsoft.com/en-us/sql/sql-server/end-of-support/sql-server-end-of-life-overview?view=sql-server-ver15#lifecycle-dates)) - - End-of-life SQL Server versions are not guaranteed to be supported by Telegraf. Any issues with the SQL Server plugin for these EOL versions will need to be addressed by the community. -- Azure SQL Database (Single) -- Azure SQL Managed Instance -- Azure SQL Elastic Pool +⭐ Telegraf v0.10.1 +🏷️ datastore +💻 all -## Additional Setup +[sqlserver]: https://docs.microsoft.com/en-us/sql/sql-server +[lifecycle]: https://docs.microsoft.com/en-us/sql/sql-server/end-of-support/sql-server-end-of-life-overview?view=sql-server-ver15#lifecycle-dates -You have to create a login on every SQL Server instance or Azure SQL -Managed instance you want to monitor, with following script: +## Global configuration options -```sql -USE master; -GO -CREATE LOGIN [telegraf] WITH PASSWORD = N'mystrongpassword'; -GO -GRANT VIEW SERVER STATE TO [telegraf]; -GO -GRANT VIEW ANY DEFINITION TO [telegraf]; -GO -``` - -For Azure SQL Database, you require the View Database State permission -and can create a user with a password directly in the database. - -```sql -CREATE USER [telegraf] WITH PASSWORD = N'mystrongpassword'; -GO -GRANT VIEW DATABASE STATE TO [telegraf]; -GO -``` - -For Azure SQL Elastic Pool, please follow the following instructions -to collect metrics. - -On master logical database, create an SQL login 'telegraf' and assign -it to the server-level role ##MS_ServerStateReader##. - -```sql -CREATE LOGIN [telegraf] WITH PASSWORD = N'mystrongpassword'; -GO -ALTER SERVER ROLE ##MS_ServerStateReader## - ADD MEMBER [telegraf]; -GO -``` - -Elastic pool metrics can be collected from any database in the pool if a user -for the `telegraf` login is created in that database. For collection to work, -this database must remain in the pool, and must not be renamed. If you plan -to add/remove databases from this pool, create a separate database for -monitoring purposes that will remain in the pool. - -> Note: To avoid duplicate monitoring data, do not collect elastic pool metrics -from more than one database in the same pool. - -```sql -GO -CREATE USER [telegraf] FOR LOGIN telegraf; -``` - -For Service SID authentication to SQL Server (Windows service installations -only). - -- [More information about using service SIDs to grant permissions in SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/security/using-service-sids-to-grant-permissions-to-services-in-sql-server) - -In an administrative command prompt configure the telegraf service for use -with a service SID - -```Batchfile -sc.exe sidtype "telegraf" unrestricted -``` - -To create the login for the telegraf service run the following script: - -```sql -USE master; -GO -CREATE LOGIN [NT SERVICE\telegraf] FROM WINDOWS; -GO -GRANT VIEW SERVER STATE TO [NT SERVICE\telegraf]; -GO -GRANT VIEW ANY DEFINITION TO [NT SERVICE\telegraf]; -GO -``` +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -Remove User Id and Password keywords from the connection string in your -config file to use windows authentication. +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins -```toml -[[inputs.sqlserver]] - servers = ["Server=192.168.1.10;Port=1433;app name=telegraf;log=1;",] -``` +## Secret-store support -To set up a configurable timeout, add timeout to the connections string -in your config file. +This plugin supports secrets from secret-stores for the `servers` option. +See the [secret-store documentation][SECRETSTORE] for more details on how +to use them. -```toml -servers = [ - "Server=192.168.1.10;Port=1433;User Id=;Password=;app name=telegraf;log=1;dial timeout=30", -] -``` +[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets ## Configuration @@ -118,21 +42,29 @@ servers = [ ## All connection parameters are optional. ## By default, the host is localhost, listening on default port, TCP 1433. ## for Windows, the user is the currently running AD user (SSO). - ## See https://github.com/denisenkom/go-mssqldb for detailed connection + ## See https://github.com/microsoft/go-mssqldb for detailed connection ## parameters, in particular, tls connections can be created like so: ## "encrypt=true;certificate=;hostNameInCertificate=" servers = [ "Server=192.168.1.10;Port=1433;User Id=;Password=;app name=telegraf;log=1;", ] + ## Timeout for query execution operation + ## Note that the timeout for queries is per query not per gather. + ## 0 value means no timeout + # query_timeout = "0s" + ## Authentication method ## valid methods: "connection_string", "AAD" # auth_method = "connection_string" + ## ClientID is the is the client ID of the user assigned identity of the VM + ## that should be used to authenticate to the Azure SQL server. + # client_id = "" + ## "database_type" enables a specific set of queries depending on the database type. If specified, it replaces azuredb = true/false and query_version = 2 ## In the config file, the sql server plugin section should be repeated each with a set of servers for a specific database_type. ## Possible values for database_type are - "SQLServer" or "AzureSQLDB" or "AzureSQLManagedInstance" or "AzureSQLPool" - database_type = "SQLServer" ## A list of queries to include. If not specified, all the below listed queries are used. @@ -141,6 +73,11 @@ servers = [ ## A list of queries to explicitly ignore. exclude_query = ["SQLServerAvailabilityReplicaStates", "SQLServerDatabaseReplicaStates"] + ## Force using the deprecated ADAL authentication method instead of the recommended + ## MSAL method. Setting this option is not recommended and only exists for backward + ## compatibility. + # use_deprecated_adal_authentication = false + ## Queries enabled by default for database_type = "SQLServer" are - ## SQLServerPerformanceCounters, SQLServerWaitStatsCategorized, SQLServerDatabaseIO, SQLServerProperties, SQLServerMemoryClerks, ## SQLServerSchedulers, SQLServerRequests, SQLServerVolumeSpace, SQLServerCpu, SQLServerAvailabilityReplicaStates, SQLServerDatabaseReplicaStates, @@ -158,6 +95,10 @@ servers = [ ## AzureSQLPoolResourceStats, AzureSQLPoolResourceGovernance, AzureSQLPoolDatabaseIO, AzureSQLPoolWaitStats, ## AzureSQLPoolMemoryClerks, AzureSQLPoolPerformanceCounters, AzureSQLPoolSchedulers + ## Queries enabled by default for database_type = "AzureArcSQLManagedInstance" are - + ## AzureSQLMIDatabaseIO, AzureSQLMIServerProperties, AzureSQLMIOsWaitstats, + ## AzureSQLMIMemoryClerks, AzureSQLMIPerformanceCounters, AzureSQLMIRequests, AzureSQLMISchedulers + ## Following are old config settings ## You may use them only if you are using the earlier flavor of queries, however it is recommended to use ## the new mechanism of identifying the database_type there by use it's corresponding queries @@ -177,7 +118,7 @@ servers = [ ## This setting/metric is optional and is disabled by default. # health_metric = false - ## Possible queries accross different versions of the collectors + ## Possible queries across different versions of the collectors ## Queries enabled by default for specific Database Type ## database_type = AzureSQLDB by default collects the following queries @@ -226,53 +167,131 @@ servers = [ ## and following as optional (if mentioned in the include_query list) ## - SQLServerAvailabilityReplicaStates ## - SQLServerDatabaseReplicaStates +``` - ## Version 2 by default collects the following queries - ## Version 2 is being deprecated, please consider using database_type. - ## - PerformanceCounters - ## - WaitStatsCategorized - ## - DatabaseIO - ## - ServerProperties - ## - MemoryClerk - ## - Schedulers - ## - SqlRequests - ## - VolumeSpace - ## - Cpu - - ## Version 1 by default collects the following queries - ## Version 1 is deprecated, please consider using database_type. - ## - PerformanceCounters - ## - WaitStatsCategorized - ## - CPUHistory - ## - DatabaseIO - ## - DatabaseSize - ## - DatabaseStats - ## - DatabaseProperties - ## - MemoryClerk - ## - VolumeSpace - ## - PerformanceMetrics +### Additional Setup + +You have to create a login on every SQL Server instance or Azure SQL Managed +instance you want to monitor, with following script: + +```sql +USE master; +GO +CREATE LOGIN [telegraf] WITH PASSWORD = N'mystrongpassword'; +GO +GRANT VIEW SERVER STATE TO [telegraf]; +GO +GRANT VIEW ANY DEFINITION TO [telegraf]; +GO ``` -## Support for Azure Active Directory (AAD) authentication using [Managed Identity](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview) +For Azure SQL Database, you require the View Database State permission +and can create a user with a password directly in the database. + +```sql +CREATE USER [telegraf] WITH PASSWORD = N'mystrongpassword'; +GO +GRANT VIEW DATABASE STATE TO [telegraf]; +GO +``` -- Azure SQL Database supports 2 main methods of authentication: [SQL authentication and AAD authentication](https://docs.microsoft.com/en-us/azure/azure-sql/database/security-overview#authentication). -- The recommended practice is to [use AAD authentication when possible](https://docs.microsoft.com/en-us/azure/azure-sql/database/authentication-aad-overview). +For Azure SQL Elastic Pool, please follow the following instructions to collect +metrics. On master logical database, create an SQL login 'telegraf' and assign +it to the server-level role ##MS_ServerStateReader##. -AAD is a more modern authentication protocol, allows for easier -credential/role management, and can eliminate the need to include passwords -in a connection string. +```sql +CREATE LOGIN [telegraf] WITH PASSWORD = N'mystrongpassword'; +GO +ALTER SERVER ROLE ##MS_ServerStateReader## + ADD MEMBER [telegraf]; +GO +``` -To enable support for AAD authentication, we leverage the existing AAD -authentication support. +Elastic pool metrics can be collected from any database in the pool if a user +for the `telegraf` login is created in that database. For collection to work, +this database must remain in the pool, and must not be renamed. If you plan +to add/remove databases from this pool, create a separate database for +monitoring purposes that will remain in the pool. -- Please see [SQL Server driver for Go](https://github.com/denisenkom/go-mssqldb#azure-active-directory-authentication---preview) +> [!NOTE] +> To avoid duplicate monitoring data, do not collect elastic pool metrics +> from more than one database in the same pool. -### How to use AAD Auth with MSI +```sql +GO +CREATE USER [telegraf] FOR LOGIN telegraf; +``` -- Please note AAD based auth is currently only supported for Azure SQL Database and Azure SQL Managed Instance (but not for SQL Server), as described [here](https://docs.microsoft.com/en-us/azure/azure-sql/database/security-overview#authentication). +For Service SID authentication to SQL Server (Windows service installations +only) check the [howto document][sid_howto]. In an administrative command prompt +configure the telegraf service for use with a service SID -- Configure "system-assigned managed identity" for Azure resources on the Monitoring VM (the VM that'd connect to the SQL server/database) [using the Azure portal](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm). -- On the database being monitored, create/update a USER with the name of the Monitoring VM as the principal using the below script. This might require allow-listing the client machine's IP address (from where the below SQL script is being run) on the SQL Server resource. +```Batchfile +sc.exe sidtype "telegraf" unrestricted +``` + +To create the login for the telegraf service run the following script: + +```sql +USE master; +GO +CREATE LOGIN [NT SERVICE\telegraf] FROM WINDOWS; +GO +GRANT VIEW SERVER STATE TO [NT SERVICE\telegraf]; +GO +GRANT VIEW ANY DEFINITION TO [NT SERVICE\telegraf]; +GO +``` + +Remove User Id and Password keywords from the connection string in your +config file to use windows authentication. + +```toml +[[inputs.sqlserver]] + servers = ["Server=192.168.1.10;Port=1433;app name=telegraf;log=1;",] +``` + +To set up a configurable timeout, add timeout to the connections string +in your config file. + +```toml +servers = [ + "Server=192.168.1.10;Port=1433;User Id=;Password=;app name=telegraf;log=1;dial timeout=30", +] +``` + +[sid_howto]: https://docs.microsoft.com/en-us/sql/relational-databases/security/using-service-sids-to-grant-permissions-to-services-in-sql-server + +### Azure Active Directory (AAD) authentication using Managed Identity + +Azure SQL Database instances support two main methods of +[authentication][auth_methods]: SQL authentication and AAD authentication. The +recommended practice is to use [AAD authentication][auth_aad] when possible as +it is a more modern authentication protocol, allows for easier credential and +role management and can eliminate the need to include passwords in connection +strings. + +If more then one managed identity is assigned to the VM, you need specify the +`client_id` of the identity you wish to use to authenticate with the SQL Server. +Please check [SQL Server driver][driver] documentation for available options. + +[auth_methods]: https://docs.microsoft.com/en-us/azure/azure-sql/database/security-overview#authentication +[auth_aad]: https://docs.microsoft.com/en-us/azure/azure-sql/database/authentication-aad-overview +[driver]: https://github.com/microsoft/go-mssqldb#azure-active-directory-authentication + +### Azure Active Directory (AAD) authentication using MSI + +AAD based auth is currently only supported for Azure SQL Database and Azure SQL +Managed Instance but not for SQL Server. To use MSI configure +"system-assigned managed identity" for Azure resources on the Monitoring VM +(the VM connecting to the SQL server/database) [using the Azure portal][portal]. +Create a user with the name of the Monitoring VM as the principal on the +database being monitored using the below script. This might require +allow-listing the client machine's IP address (from where the below SQL script +is being run) on the SQL Server resource. + +In case of multiple assigned identities on one VM you can use the parameter +user_assigned_id to specify the `client_id`. ```sql EXECUTE ('IF EXISTS(SELECT * FROM sys.database_principals WHERE name = '''') @@ -283,8 +302,13 @@ EXECUTE ('CREATE USER [] FROM EXTERNAL PROVIDER') EXECUTE ('GRANT VIEW DATABASE STATE TO []') ``` -- On the SQL Server resource of the database(s) being monitored, go to "Firewalls and Virtual Networks" tab and allowlist the monitoring VM IP address. -- On the Monitoring VM, update the telegraf config file with the database connection string in the following format. The connection string only provides the server and database name, but no password (since the VM's system-assigned managed identity would be used for authentication). The auth method must be set to "AAD" +On the SQL Server resource of the database(s) being monitored, go to +"Firewalls and Virtual Networks" tab and allowlist the monitoring VM IP address. +On the Monitoring VM, update the telegraf config file with the database +connection string in the following format. The connection string only provides +the server and database name, but no password (since the VM's system-assigned +managed identity would be used for authentication). The auth method must be +set to "AAD" ```toml servers = [ @@ -293,18 +317,25 @@ EXECUTE ('GRANT VIEW DATABASE STATE TO []') auth_method = "AAD" ``` +[portal]: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm + ## Metrics To provide backwards compatibility, this plugin support two versions of metrics queries. -**Note**: Version 2 queries are not backwards compatible with the old queries. -Any dashboards or queries based on the old query format will not work with -the new format. The version 2 queries only report raw metrics, no math has -been done to calculate deltas. To graph this data you must calculate deltas -in your dashboarding software. +> [!NOTE] +> Version 2 queries are not backwards compatible with the old queries. Any +> dashboards or queries based on the old query format will not work with the new +> format. The version 2 queries only report raw metrics, no math has been done +> to calculate deltas. To graph this data you must calculate deltas in your +> dashboarding software. + +### Query Version 1 -### Version 1 (query_version=1): This is Deprecated in 1.6, all future development will be under configuration option database_type +> [!CAUTION] +> The `query_version` option was **deprecated** in Telegraf v1.16. All future +> development will be under configuration option`database_type`. The original metrics queries provide: @@ -324,26 +355,60 @@ If you are using the original queries all stats have the following tags: - `servername`: hostname:instance - `type`: type of stats to easily filter measurements -### Version 2 (query_version=2): Being deprecated, All future development will be under configuration option database_type +### Query Version 2 + +> [!CAUTION] +> The `query_version` option was **deprecated** in Telegraf v1.16. All future +> development will be under configuration option`database_type`. The new (version 2) metrics provide: - *Database IO*: IO stats from `sys.dm_io_virtual_file_stats`. -- *Memory Clerk*: Memory clerk breakdown from `sys.dm_os_memory_clerks`, most clerks have been given a friendly name. -- *Performance Counters*: A select list of performance counters from `sys.dm_os_performance_counters`. Some of the important metrics included: - - *Activity*: Transactions/sec/database, Batch requests/sec, blocked processes, + more - - *Availability Groups*: Bytes sent to replica, Bytes received from replica, Log bytes received, Log send queue, transaction delay, + more - - *Log activity*: Log bytes flushed/sec, Log flushes/sec, Log Flush Wait Time - - *Memory*: PLE, Page reads/sec, Page writes/sec, + more - - *TempDB*: Free space, Version store usage, Active temp tables, temp table creation rate, + more - - *Resource Governor*: CPU Usage, Requests/sec, Queued Requests, and Blocked tasks per workload group + more -- *Server properties*: Number of databases in all possible states (online, offline, suspect, etc.), cpu count, physical memory, SQL Server service uptime, SQL Server SPID, and SQL Server version. In the case of Azure SQL relevant properties such as Tier, #Vcores, Memory etc. -- *Wait stats*: Wait time in ms, number of waiting tasks, resource wait time, signal wait time, max wait time in ms, wait type, and wait category. The waits are categorized using the same categories used in Query Store. -- *Schedulers* - This captures `sys.dm_os_schedulers`. -- *SqlRequests* - This captures a snapshot of `sys.dm_exec_requests` and `sys.dm_exec_sessions` that gives you running requests as well as wait types and - blocking sessions. Telegraf's monitoring request is omitted unless it is a heading blocker. -- *VolumeSpace* - uses `sys.dm_os_volume_stats` to get total, used and occupied space on every disk that contains a data or log file. (Note that even if enabled it won't get any data from Azure SQL Database or SQL Managed Instance). It is pointless to run this with high frequency (ie: every 10s), but it won't cause any problem. -- *Cpu* - uses the buffer ring (`sys.dm_os_ring_buffers`) to get CPU data, the table is updated once per minute. (Note that even if enabled it won't get any data from Azure SQL Database or SQL Managed Instance). +- *Memory Clerk*: Memory clerk breakdown from `sys.dm_os_memory_clerks`, most + clerks have been given a friendly name. +- *Performance Counters*: A select list of performance counters from + `sys.dm_os_performance_counters`. Some of the + important metrics included: + - *Activity*: Transactions/sec/database, Batch requests/sec, + blocked processes and more + - *Availability Groups*: Bytes sent to replica, Bytes received from replica, + Log bytes received, Log send queue, transaction delay + and more + - *Log activity*: Log bytes flushed/sec, Log flushes/sec, Log Flush + Wait Time + - *Memory*: PLE, Page reads/sec, Page writes/sec and more + - *TempDB*: Free space, Version store usage, Active temp tables, + temp table creation rate and more + - *Resource Governor*: CPU Usage, Requests/sec, Queued Requests, and Blocked + tasks per workload group and more +- *Server properties*: Number of databases in all possible states (online, + offline, suspect, etc.), cpu count, total physical + memory, available physical memory, SQL Server service + uptime, SQL Server SPID, and SQL Server version. In + the case of Azure SQL relevant properties such as + Tier, #Vcores, Memory etc. +- *Wait stats*: Wait time in ms, number of waiting tasks, resource + wait time, signal wait time, max wait time in ms, + wait type, and wait category. The waits are + categorized using the same categories used in + Query Store. +- *Schedulers*: This captures `sys.dm_os_schedulers`. +- *SqlRequests*: This captures a snapshot of `sys.dm_exec_requests` + and `sys.dm_exec_sessions` that gives you running + requests as well as wait types and blocking sessions. + Telegraf's monitoring request is omitted unless it is + a heading blocker. Also includes sleeping sessions + with open transactions. +- *VolumeSpace*: uses `sys.dm_os_volume_stats` to get total, used and + occupied space on every disk that contains a data or + log file. (Note that even if enabled it won't get any + data from Azure SQL Database or SQL Managed Instance). + It is pointless to run this with high frequency + (ie: every 10s), but it won't cause any problem. +- *Cpu*: uses the buffer ring (`sys.dm_os_ring_buffers`) to + get CPU data, the table is updated once per minute. + (Note that even if enabled it won't get any data from + Azure SQL Database or SQL Managed Instance). In order to allow tracking on a per statement basis this query produces a unique tag for each query. Depending on the database workload, this may @@ -358,84 +423,191 @@ The new (version 2) metrics provide: - Resource governance stats from `sys.dm_user_db_resource_governance` - Stats from `sys.dm_db_resource_stats` -### database_type = "AzureSQLDB" +### Database Type "AzureSQLDB" These are metrics for Azure SQL Database (single database) and are very similar to version 2 but split out for maintenance reasons, better ability to test,differences in DMVs: -- *AzureSQLDBDatabaseIO*: IO stats from `sys.dm_io_virtual_file_stats` including resource governance time, RBPEX, IO for Hyperscale. -- *AzureSQLDBMemoryClerks*: Memory clerk breakdown from `sys.dm_os_memory_clerks`. -- *AzureSQLDBResourceGovernance*: Relevant properties indicatign resource limits from `sys.dm_user_db_resource_governance` -- *AzureSQLDBPerformanceCounters*: A select list of performance counters from `sys.dm_os_performance_counters` including cloud specific counters for SQL Hyperscale. -- *AzureSQLDBServerProperties*: Relevant Azure SQL relevant properties from such as Tier, #Vcores, Memory etc, storage, etc. -- *AzureSQLDBWaitstats*: Wait time in ms from `sys.dm_db_wait_stats`, number of waiting tasks, resource wait time, signal wait time, max wait time in ms, wait type, and wait category. The waits are categorized using the same categories used in Query Store. These waits are collected only as of the end of the a statement. and for a specific database only. -- *AzureSQLOsWaitstats*: Wait time in ms from `sys.dm_os_wait_stats`, number of waiting tasks, resource wait time, signal wait time, max wait time in ms, wait type, and wait category. The waits are categorized using the same categories used in Query Store. These waits are collected as they occur and instance wide -- *AzureSQLDBRequests*: Requests which are blocked or have a wait type from `sys.dm_exec_sessions` and `sys.dm_exec_requests`. Telegraf's monitoring request is omitted unless it is a heading blocker -- *AzureSQLDBSchedulers* - This captures `sys.dm_os_schedulers` snapshots. - -### database_type = "AzureSQLManagedInstance" +- *AzureSQLDBDatabaseIO*: IO stats from `sys.dm_io_virtual_file_stats` + including resource governance time, RBPEX, IO + for Hyperscale. +- *AzureSQLDBMemoryClerks*: Memory clerk breakdown from `sys.dm_os_memory_clerks`. +- *AzureSQLDBResourceGovernance*: Relevant properties indicatign resource + limits from `sys.dm_user_db_resource_governance` +- *AzureSQLDBPerformanceCounters*: A select list of performance counters from + `sys.dm_os_performance_counters` including + cloud specific counters for SQL Hyperscale. +- *AzureSQLDBServerProperties*: Relevant Azure SQL relevant properties from + such as Tier, #Vcores, Memory etc, storage, etc. +- *AzureSQLDBWaitstats*: Wait time in ms from `sys.dm_db_wait_stats`, + number of waiting tasks, resource wait time, + signal wait time, max wait time in ms, wait + type, and wait category. The waits are + categorized using the same categories used in + Query Store. These waits are collected only + as of the end of the a statement. and for a + specific database only. +- *AzureSQLOsWaitstats*: Wait time in ms from `sys.dm_os_wait_stats`, + number of waiting tasks, resource wait time, + signal wait time, max wait time in ms, wait + type, and wait category. The waits are + categorized using the same categories used in + Query Store. These waits are collected as + they occur and instance wide +- *AzureSQLDBRequests*: Requests which are blocked or have a wait + type from `sys.dm_exec_sessions` and + `sys.dm_exec_requests`. Telegraf's monitoring + request is omitted unless it is a heading blocker +- *AzureSQLDBSchedulers*: This captures `sys.dm_os_schedulers` snapshots. + +### Database Type "AzureSQLManagedInstance" These are metrics for Azure SQL Managed instance, are very similar to version 2 but split out for maintenance reasons, better ability to test, differences in DMVs: -- *AzureSQLMIDatabaseIO*: IO stats from `sys.dm_io_virtual_file_stats` including resource governance time, RBPEX, IO for Hyperscale. -- *AzureSQLMIMemoryClerks*: Memory clerk breakdown from `sys.dm_os_memory_clerks`. -- *AzureSQLMIResourceGovernance*: Relevant properties indicatign resource limits from `sys.dm_instance_resource_governance` -- *AzureSQLMIPerformanceCounters*: A select list of performance counters from `sys.dm_os_performance_counters` including cloud specific counters for SQL Hyperscale. -- *AzureSQLMIServerProperties*: Relevant Azure SQL relevant properties such as Tier, #Vcores, Memory etc, storage, etc. -- *AzureSQLMIOsWaitstats*: Wait time in ms from `sys.dm_os_wait_stats`, number of waiting tasks, resource wait time, signal wait time, max wait time in ms, wait type, and wait category. The waits are categorized using the same categories used in Query Store. These waits are collected as they occur and instance wide -- *AzureSQLMIRequests*: Requests which are blocked or have a wait type from `sys.dm_exec_sessions` and `sys.dm_exec_requests`. Telegraf's monitoring request is omitted unless it is a heading blocker +- *AzureSQLMIDatabaseIO*: IO stats from `sys.dm_io_virtual_file_stats` + including resource governance time, RBPEX, IO + for Hyperscale. +- *AzureSQLMIMemoryClerks*: Memory clerk breakdown from `sys.dm_os_memory_clerks`. +- *AzureSQLMIResourceGovernance*: Relevant properties indicatign resource limits + from `sys.dm_instance_resource_governance` +- *AzureSQLMIPerformanceCounters*: A select list of performance counters from + `sys.dm_os_performance_counters` including + cloud specific counters for SQL Hyperscale. +- *AzureSQLMIServerProperties*: Relevant Azure SQL relevant properties such + as Tier, #Vcores, Memory etc, storage, etc. +- *AzureSQLMIOsWaitstats*: Wait time in ms from `sys.dm_os_wait_stats`, + number of waiting tasks, resource wait time, + signal wait time, max wait time in ms, wait + type, and wait category. The waits are + categorized using the same categories used in + Query Store. These waits are collected as + they occur and instance wide +- *AzureSQLMIRequests*: Requests which are blocked or have a wait + type from `sys.dm_exec_sessions` and + `sys.dm_exec_requests`. Telegraf's monitoring + request is omitted unless it is a heading blocker - *AzureSQLMISchedulers*: This captures `sys.dm_os_schedulers` snapshots. -### database_type = "AzureSQLPool" +### Database Type "AzureSQLPool" These are metrics for Azure SQL to monitor resources usage at Elastic Pool level. These metrics require additional permissions to be collected, please ensure to check additional setup section in this documentation. -- *AzureSQLPoolResourceStats*: Returns resource usage statistics for the current elastic pool in a SQL Database server. Queried from `sys.dm_resource_governor_resource_pools_history_ex`. -- *AzureSQLPoolResourceGovernance*: Returns actual configuration and capacity settings used by resource governance mechanisms in the current elastic pool. Queried from `sys.dm_user_db_resource_governance`. -- *AzureSQLPoolDatabaseIO*: Returns I/O statistics for data and log files for each database in the pool. Queried from `sys.dm_io_virtual_file_stats`. -- *AzureSQLPoolOsWaitStats*: Returns information about all the waits encountered by threads that executed. Queried from `sys.dm_os_wait_stats`. -- *AzureSQLPoolMemoryClerks*: Memory clerk breakdown from `sys.dm_os_memory_clerks`. -- *AzureSQLPoolPerformanceCounters*: A selected list of performance counters from `sys.dm_os_performance_counters`. Note: Performance counters where the cntr_type column value is 537003264 are already returned with a percentage format between 0 and 100. For other counters, please check [sys.dm_os_performance_counters](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-performance-counters-transact-sql?view=azuresqldb-current) documentation. +- *AzureSQLPoolResourceStats*: Returns resource usage statistics for the + current elastic pool in a SQL Database + server. Queried from `sys.dm_resource_governor_resource_pools_history_ex`. +- *AzureSQLPoolResourceGovernance*: Returns actual configuration and capacity + settings used by resource governance + mechanisms in the current elastic pool. + Queried from `sys.dm_user_db_resource_governance`. +- *AzureSQLPoolDatabaseIO*: Returns I/O statistics for data and log + files for each database in the pool. + Queried from `sys.dm_io_virtual_file_stats`. +- *AzureSQLPoolOsWaitStats*: Returns information about all the waits + encountered by threads that executed. + Queried from `sys.dm_os_wait_stats`. +- *AzureSQLPoolMemoryClerks*: Memory clerk breakdown from `sys.dm_os_memory_clerks`. +- *AzureSQLPoolPerformanceCounters*: A selected list of performance counters + from `sys.dm_os_performance_counters`. + Note: Performance counters where the + cntr_type column value is 537003264 are + already returned with a percentage format + between 0 and 100. For other counters, + please check [sys.dm_os_performance_counters][os_perf_counters] + documentation. - *AzureSQLPoolSchedulers*: This captures `sys.dm_os_schedulers` snapshots. -### database_type = "SQLServer" - -- *SQLServerDatabaseIO*: IO stats from `sys.dm_io_virtual_file_stats` -- *SQLServerMemoryClerks*: Memory clerk breakdown from `sys.dm_os_memory_clerks`, most clerks have been given a friendly name. -- *SQLServerPerformanceCounters*: A select list of performance counters from `sys.dm_os_performance_counters`. Some of the important metrics included: - - *Activity*: Transactions/sec/database, Batch requests/sec, blocked processes, + more - - *Availability Groups*: Bytes sent to replica, Bytes received from replica, Log bytes received, Log send queue, transaction delay, + more - - *Log activity*: Log bytes flushed/sec, Log flushes/sec, Log Flush Wait Time - - *Memory*: PLE, Page reads/sec, Page writes/sec, + more - - *TempDB*: Free space, Version store usage, Active temp tables, temp table creation rate, + more - - *Resource Governor*: CPU Usage, Requests/sec, Queued Requests, and Blocked tasks per workload group + more -- *SQLServerProperties*: Number of databases in all possible states (online, offline, suspect, etc.), cpu count, physical memory, SQL Server service uptime, SQL Server SPID and SQL Server version. In the case of Azure SQL relevant properties such as Tier, #Vcores, Memory etc. -- *SQLServerWaitStatsCategorized*: Wait time in ms, number of waiting tasks, resource wait time, signal wait time, max wait time in ms, wait type, and wait category. The waits are categorized using the same categories used in Query Store. -- *SQLServerSchedulers*: This captures `sys.dm_os_schedulers`. -- *SQLServerRequests*: This captures a snapshot of `sys.dm_exec_requests` and `sys.dm_exec_sessions` that gives you running requests as well as wait types and - blocking sessions. -- *SQLServerVolumeSpace*: Uses `sys.dm_os_volume_stats` to get total, used and occupied space on every disk that contains a data or log file. (Note that even if enabled it won't get any data from Azure SQL Database or SQL Managed Instance). It is pointless to run this with high frequency (ie: every 10s), but it won't cause any problem. -- SQLServerCpu: Uses the buffer ring (`sys.dm_os_ring_buffers`) to get CPU data, the table is updated once per minute. (Note that even if enabled it won't get any data from Azure SQL Database or SQL Managed Instance). -- SQLServerAvailabilityReplicaStates: Collects availability replica state information from `sys.dm_hadr_availability_replica_states` for a High Availability / Disaster Recovery (HADR) setup -- SQLServerDatabaseReplicaStates: Collects database replica state information from `sys.dm_hadr_database_replica_states` for a High Availability / Disaster Recovery (HADR) setup -- SQLServerRecentBackups: Collects latest full, differential and transaction log backup date and size from `msdb.dbo.backupset` +[os_perf_counters]: https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-performance-counters-transact-sql?view=azuresqldb-current + +### Database Type "SQLServer" + +- *SQLServerDatabaseIO*: IO stats from `sys.dm_io_virtual_file_stats` +- *SQLServerMemoryClerks*: Memory clerk breakdown from `sys.dm_os_memory_clerks`, + most clerks have been given a friendly name. +- *SQLServerPerformanceCounters*: A select list of performance counters from + `sys.dm_os_performance_counters`. Some of the + important metrics included: + - *Activity*: Transactions/sec/database, Batch requests/sec, + blocked processes and more + - *Availability Groups*: Bytes sent to replica, Bytes received from + replica, Log bytes received, Log send queue, + transaction delay and more + - *Log activity*: Log bytes flushed/sec, Log flushes/sec, + Log Flush Wait Time + - *Memory*: PLE, Page reads/sec, Page writes/sec and more + - *TempDB*: Free space, Version store usage, Active temp + tables, temp table creation rate and more + - *Resource Governor*: CPU Usage, Requests/sec, Queued Requests, and + Blocked tasks per workload group and more +- *SQLServerProperties*: Number of databases in all possible states + (online, offline, suspect, etc.), cpu count, + total physical memory, available physical memory, + SQL Server service uptime, SQL Server SPID and + SQL Server version. In the case of Azure SQL + relevant properties such as Tier, #Vcores, + Memory etc. +- *SQLServerWaitStatsCategorized*: Wait time in ms, number of waiting tasks, + resource wait time, signal wait time, max + wait time in ms, wait type, and wait category. + The waits are categorized using the same + categories used in Query Store. +- *SQLServerSchedulers*: This captures `sys.dm_os_schedulers`. +- *SQLServerRequests*: This captures a snapshot of `sys.dm_exec_requests` + and `sys.dm_exec_sessions` that gives you + running requests as well as wait types and + blocking sessions. +- *SQLServerVolumeSpace*: Uses `sys.dm_os_volume_stats` to get total, + used and occupied space on every disk that + contains a data or log file. (Note that even + if enabled it won't get any data from Azure + SQL Database or SQL Managed Instance). It is + pointless to run this with high frequency + (ie: every 10s), but it won't cause any problem. +- SQLServerCpu: Uses the buffer ring (`sys.dm_os_ring_buffers`) + to get CPU data, the table is updated once + per minute. (Note that even if enabled it + won't get any data from Azure SQL Database or + SQL Managed Instance). +- SQLServerAvailabilityReplicaStates: Collects availability replica state + information from `sys.dm_hadr_availability_replica_states` + for a High Availability / Disaster + Recovery (HADR) setup +- SQLServerDatabaseReplicaStates: Collects database replica state information + from `sys.dm_hadr_database_replica_states` + for a High Availability / Disaster Recovery + (HADR) setup +- SQLServerRecentBackups: Collects latest full, differential and + transaction log backup date and size from `msdb.dbo.backupset` +- SQLServerPersistentVersionStore: Collects persistent version store information + from `sys.dm_tran_persistent_version_store_stats` + for databases with Accelerated Database + Recovery enabled ### Output Measures The guiding principal is that all data collected from the same primary DMV ends up in the same measure irrespective of database_type. -- `sqlserver_database_io` - Used by AzureSQLDBDatabaseIO, AzureSQLMIDatabaseIO, SQLServerDatabaseIO, DatabaseIO given the data is from `sys.dm_io_virtual_file_stats` -- `sqlserver_waitstats` - Used by WaitStatsCategorized,AzureSQLDBOsWaitstats,AzureSQLMIOsWaitstats -- `sqlserver_server_properties` - Used by SQLServerProperties, AzureSQLDBServerProperties , AzureSQLMIServerProperties,ServerProperties -- `sqlserver_memory_clerks` - Used by SQLServerMemoryClerks, AzureSQLDBMemoryClerks, AzureSQLMIMemoryClerks,MemoryClerk -- `sqlserver_performance` - Used by SQLServerPerformanceCounters, AzureSQLDBPerformanceCounters, AzureSQLMIPerformanceCounters,PerformanceCounters -- `sys.dm_os_schedulers` - Used by SQLServerSchedulers,AzureSQLDBServerSchedulers, AzureSQLMIServerSchedulers +- `sqlserver_database_io` - Used by AzureSQLDBDatabaseIO, + AzureSQLMIDatabaseIO, SQLServerDatabaseIO, + DatabaseIO given the data is from `sys.dm_io_virtual_file_stats` +- `sqlserver_waitstats` - Used by WaitStatsCategorized, + AzureSQLDBOsWaitstats, AzureSQLMIOsWaitstats +- `sqlserver_server_properties` - Used by SQLServerProperties, + AzureSQLDBServerProperties, + AzureSQLMIServerProperties, ServerProperties +- `sqlserver_memory_clerks` - Used by SQLServerMemoryClerks, + AzureSQLDBMemoryClerks, AzureSQLMIMemoryClerks, + MemoryClerk +- `sqlserver_performance` - Used by SQLServerPerformanceCounters, + AzureSQLDBPerformanceCounters, + AzureSQLMIPerformanceCounters, PerformanceCounters +- `sys.dm_os_schedulers` - Used by SQLServerSchedulers, + AzureSQLDBServerSchedulers, AzureSQLMIServerSchedulers The following Performance counter metrics can be used directly, with no delta calculations: @@ -477,8 +649,9 @@ calculations: Version 2 queries have the following tags: -- `sql_instance`: Physical host and instance name (hostname:instance) -- `database_name`: For Azure SQLDB, database_name denotes the name of the Azure SQL Database as server name is a logical construct. +- `sql_instance`: Physical host and instance name (hostname:instance) +- `database_name`: For Azure SQLDB, database_name denotes the name of the + Azure SQL Database as server name is a logical construct. ### Health Metric @@ -495,14 +668,23 @@ connection specified by `servers` in the configuration file. The health metric emits the following tags: -- `sql_instance` - Name of the server specified in the connection string. This value is emitted as-is in the connection string. If the server could not be parsed from the connection string, a constant placeholder value is emitted -- `database_name` - Name of the database or (initial catalog) specified in the connection string. This value is emitted as-is in the connection string. If the database could not be parsed from the connection string, a constant placeholder value is emitted +- `sql_instance` - Name of the server specified in the connection string. This + value is emitted as-is in the connection string. If the + server could not be parsed from the connection string, a + constant placeholder value is emitted +- `database_name` - Name of the database or (initial catalog) specified in the + connection string. This value is emitted as-is in the + connection string. If the database could not be parsed from + the connection string, a constant placeholder value is + emitted The health metric emits the following fields: -- `attempted_queries` - Number of queries that were attempted for this connection +- `attempted_queries` - Number of queries that were attempted for this connection - `successful_queries` - Number of queries that completed successfully for this connection -- `database_type` - Type of database as specified by `database_type`. If `database_type` is empty, the `QueryVersion` and `AzureDB` fields are concatenated instead +- `database_type` - Type of database as specified by `database_type`. + If `database_type` is empty, the `QueryVersion` and + `AzureDB` fields are concatenated instead If `attempted_queries` and `successful_queries` are not equal for a given connection, some metrics were not successfully gathered for @@ -513,7 +695,7 @@ gathered. ## Example Output -```shell +```text sqlserver_cpu_other_process_cpu{host="servername",measurement_db_type="SQLServer",sql_instance="SERVERNAME:INST"} 9 sqlserver_performance{counter="Log File(s) Size (KB)",counter_type="65792",host="servername",instance="instance_name",measurement_db_type="SQLServer",object="MSSQL$INSTANCE_NAME:Databases",sql_instance="SERVERNAME:INSTANCE_NAME"} 1.048568e+06 ``` diff --git a/src/writeData/components/telegrafPlugins/stackdriver.md b/src/writeData/components/telegrafPlugins/stackdriver.md index f6f80a8076..34e1e5530b 100644 --- a/src/writeData/components/telegrafPlugins/stackdriver.md +++ b/src/writeData/components/telegrafPlugins/stackdriver.md @@ -1,10 +1,27 @@ # Stackdriver Google Cloud Monitoring Input Plugin -Query data from Google Cloud Monitoring (formerly Stackdriver) using the -[Cloud Monitoring API v3][stackdriver]. +This plugin collects metrics from [Google Cloud Monitoring][gcm] +(formerly Stackdriver) using the [Cloud Monitoring API v3][stackdriver]. -This plugin accesses APIs which are [chargeable][pricing]; you might incur -costs. +> [!IMPORTANT] +> This plugin accesses APIs which are [chargeable][pricing], cost might incur. + +⭐ Telegraf v1.10.0 +🏷️ cloud +💻 all + +[gcm]: https://cloud.google.com/monitoring +[stackdriver]: https://cloud.google.com/monitoring/api/v3/ +[pricing]: https://cloud.google.com/stackdriver/pricing#stackdriver_monitoring_services + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -70,9 +87,11 @@ costs. ## ## The logical operators when combining filters are defined statically using ## the following values: - ## filter ::= {AND } + ## filter ::= {AND AND AND } ## resource_labels ::= {OR } ## metric_labels ::= {OR } + ## user_labels ::= {OR } + ## system_labels ::= {OR } ## ## For more details, see https://cloud.google.com/monitoring/api/v3/filters # @@ -87,6 +106,18 @@ costs. # [[inputs.stackdriver.filter.metric_labels]] # key = "device_name" # value = 'one_of("sda", "sdb")' + # + ## User labels refine the time series selection with the following expression: + ## metadata.user_labels."" = + # [[inputs.stackdriver.filter.user_labels]] + # key = "environment" + # value = 'one_of("prod", "staging")' + # + ## System labels refine the time series selection with the following expression: + ## metadata.system_labels."" = + # [[inputs.stackdriver.filter.system_labels]] + # key = "machine_type" + # value = 'starts_with("e2-")' ``` ### Authentication @@ -94,6 +125,13 @@ costs. It is recommended to use a service account to authenticate with the Stackdriver Monitoring API. [Getting Started with Authentication][auth]. +[auth]: https://cloud.google.com/docs/authentication/getting-started + +## Troubleshooting + +When Telegraf is ran with `--debug`, detailed information about the performed +queries will be logged. + ## Metrics Metrics are created using one of there patterns depending on if the value type @@ -107,7 +145,7 @@ compute.googleapis.com/instance/disk/read_bytes_count └────────── measurement ─────────┘ └── field ───┘ ``` -**Scalar Values:** +### Scalar Values - measurement - tags: @@ -116,7 +154,7 @@ compute.googleapis.com/instance/disk/read_bytes_count - fields: - field -**Distributions:** +### Distributions Distributions are represented by a set of fields along with the bucket values tagged with the bucket boundary. Buckets are cumulative: each bucket @@ -141,7 +179,7 @@ represents the total number of items less than the `lt` tag. - fields: - field_bucket -**Aligned Aggregations:** +### Aligned Aggregations - measurement - tags: @@ -150,16 +188,6 @@ represents the total number of items less than the `lt` tag. - fields: - field_alignment_function -## Troubleshooting - -When Telegraf is ran with `--debug`, detailed information about the performed -queries will be logged. - ## Example Output -```shell -``` - -[stackdriver]: https://cloud.google.com/monitoring/api/v3/ -[auth]: https://cloud.google.com/docs/authentication/getting-started -[pricing]: https://cloud.google.com/stackdriver/pricing#stackdriver_monitoring_services +The output depends on the defined filters and metric types. diff --git a/src/writeData/components/telegrafPlugins/statsd.md b/src/writeData/components/telegrafPlugins/statsd.md index 4ea4bcc167..3c8a37c05e 100644 --- a/src/writeData/components/telegrafPlugins/statsd.md +++ b/src/writeData/components/telegrafPlugins/statsd.md @@ -1,6 +1,32 @@ # StatsD Input Plugin -The StatsD input plugin gathers metrics from a Statsd server. +This service plugin gathers metrics from a [Statsd][statsd] server. + +⭐ Telegraf v0.2.0 +🏷️ applications +💻 all + +[statsd]: https://github.com/statsd/statsd + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -36,17 +62,17 @@ The StatsD input plugin gathers metrics from a Statsd server. ## Reset timings & histograms every interval (default=true) delete_timings = true + ## Enable aggregation temporality adds temporality=delta or temporality=commulative tag, and + ## start_time field, which adds the start time of the metric accumulation. + ## You should use this when using OpenTelemetry output. + # enable_aggregation_temporality = false + ## Percentiles to calculate for timing & histogram stats. percentiles = [50.0, 90.0, 99.0, 99.9, 99.95, 100.0] ## separator to use between elements of a statsd metric metric_separator = "_" - ## Parses tags in the datadog statsd format - ## http://docs.datadoghq.com/guides/dogstatsd/ - ## deprecated in 1.10; use datadog_extensions option instead - parse_data_dog_tags = false - ## Parses extensions to statsd in the datadog statsd format ## currently supports metrics and datadog tags. ## http://docs.datadoghq.com/guides/dogstatsd/ @@ -56,6 +82,11 @@ The StatsD input plugin gathers metrics from a Statsd server. ## https://docs.datadoghq.com/developers/metrics/types/?tab=distribution#definition datadog_distributions = false + ## Keep or drop the container id as tag. Included as optional field + ## in DogStatsD protocol v1.2 if source is running in Kubernetes + ## https://docs.datadoghq.com/developers/dogstatsd/datagram_shell/?tab=metrics#dogstatsd-protocol-v12 + datadog_keep_container_tag = false + ## Statsd data translation templates, more info can be read here: ## https://github.com/influxdata/telegraf/blob/master/docs/TEMPLATE_PATTERN.md # templates = [ @@ -66,6 +97,9 @@ The StatsD input plugin gathers metrics from a Statsd server. ## the statsd server will start dropping packets allowed_pending_messages = 10000 + ## Number of worker threads used to parse the incoming messages. + # number_workers_threads = 5 + ## Number of timing/histogram values to track per-measurement in the ## calculation of percentiles. Raising this limit increases the accuracy ## of percentiles but also increases the memory usage and cpu time. @@ -82,9 +116,25 @@ The StatsD input plugin gathers metrics from a Statsd server. ## By default, telegraf will pass names directly as they are received. ## However, upstream statsd now does sanitization of names which can be ## enabled by using the "upstream" method option. This option will a) replace - ## white space with '_', replace '/' with '-', and remove charachters not + ## white space with '_', replace '/' with '-', and remove characters not ## matching 'a-zA-Z_\-0-9\.;='. #sanitize_name_method = "" + + ## Replace dots (.) with underscore (_) and dashes (-) with + ## double underscore (__) in metric names. + # convert_names = false + + ## Convert all numeric counters to float + ## Enabling this would ensure that both counters and guages are both emitted + ## as floats. + # float_counters = false + + ## Emit timings `metric__count` field as float, the same as all other + ## histogram fields + # float_timings = false + + ## Emit sets as float + # float_sets = false ``` ## Description @@ -196,8 +246,13 @@ metric type: period are below x. The most common value that people use for `P` is the `90`, this is a great number to try to optimize. - Distributions - - The Distribution metric represents the global statistical distribution of a set of values calculated across your entire distributed infrastructure in one time interval. A Distribution can be used to instrument logical objects, like services, independently from the underlying hosts. - - Unlike the Histogram metric type, which aggregates on the Agent during a given time interval, a Distribution metric sends all the raw data during a time interval. + - The Distribution metric represents the global statistical distribution of a + set of values calculated across your entire distributed infrastructure in + one time interval. A Distribution can be used to instrument logical objects, + like services, independently from the underlying hosts. + - Unlike the Histogram metric type, which aggregates on the Agent during a + given time interval, a Distribution metric sends all the raw data during a + time interval. ## Plugin arguments @@ -205,7 +260,8 @@ metric type: - **max_tcp_connections** []int: Maximum number of concurrent TCP connections to allow. Used when protocol is set to tcp. - **tcp_keep_alive** boolean: Enable TCP keep alive probes -- **tcp_keep_alive_period** duration: Specifies the keep-alive period for an active network connection +- **tcp_keep_alive_period** duration: Specifies the keep-alive period for an + active network connection - **service_address** string: Address to listen for statsd UDP packets on - **delete_gauges** boolean: Delete gauges on every collection interval - **delete_counters** boolean: Delete counters on every collection interval @@ -219,10 +275,22 @@ per-measurement in the calculation of percentiles. Raising this limit increases the accuracy of percentiles but also increases the memory usage and cpu time. - **templates** []string: Templates for transforming statsd buckets into influx measurements and tags. -- **parse_data_dog_tags** boolean: Enable parsing of tags in DataDog's dogstatsd format () -- **datadog_extensions** boolean: Enable parsing of DataDog's extensions to dogstatsd format () -- **datadog_distributions** boolean: Enable parsing of the Distribution metric in DataDog's dogstatsd format () -- **max_ttl** config.Duration: Max duration (TTL) for each metric to stay cached/reported without being updated. +- **parse_data_dog_tags** boolean: Enable parsing of tags in DataDog's + [dogstatsd format][dogstatsd_format] +- **datadog_extensions** boolean: Enable parsing of DataDog's extensions + to [dogstatsd format][dogstatsd_format] + and more +- **datadog_distributions** boolean: Enable parsing of the Distribution metric + in [DataDog's distribution format][dogstatsd_distri_format] +- **datadog_keep_container_tag** boolean: Keep or drop the container id as tag. + Included as optional field in + DogStatsD protocol v1.2 if source is + running in Kubernetes. +- **max_ttl** config.Duration: Max duration (TTL) for each metric to + stay cached/reported without being updated. + +[dogstatsd_format]: http://docs.datadoghq.com/guides/dogstatsd/ +[dogstatsd_distri_format]: https://docs.datadoghq.com/developers/metrics/types/?tab=distribution#definition ## Statsd bucket -> InfluxDB line-protocol Templates @@ -267,3 +335,5 @@ mem.cached.localhost:256|g Consult the [Template Patterns](/docs/TEMPLATE_PATTERN.md) documentation for additional details. + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/supervisor.md b/src/writeData/components/telegrafPlugins/supervisor.md index 5ab9d30915..211a3b7bf1 100644 --- a/src/writeData/components/telegrafPlugins/supervisor.md +++ b/src/writeData/components/telegrafPlugins/supervisor.md @@ -1,30 +1,32 @@ # Supervisor Input Plugin -This plugin gathers information about processes that -running under supervisor using XML-RPC API. +This plugin gathers information about processes running under +[supervisord][supervisord] using the [XML-RPC API][api]. -Minimum tested version of supervisor: 3.3.2 +> [!NOTE] +> This plugin requires supervisor v3.3.2+. -## Supervisor configuration +⭐ Telegraf v1.24.0 +🏷️ applications +💻 all -This plugin needs an HTTP server to be enabled in supervisor, -also it's recommended to enable basic authentication on the -HTTP server. When using basic authentication make sure to -include the username and password in the plugin's url setting. -Here is an example of the `inet_http_server` section in supervisor's -config that will work with default plugin configuration: +[supervisord]: https://supervisord.org/ +[api]: https://supervisord.org/api.html -```ini -[inet_http_server] -port = 127.0.0.1:9001 -username = user -password = pass -``` +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration -```toml -[inputs.supervisor] +```toml @sample.conf +# Gathers information about processes that running under supervisor using XML-RPC API +[[inputs.supervisor]] ## Url of supervisor's XML-RPC endpoint if basic auth enabled in supervisor http server, ## than you have to add credentials to url (ex. http://login:pass@localhost:9001/RPC2) # url="http://localhost:9001/RPC2" @@ -35,6 +37,21 @@ password = pass # metrics_exclude = ["pid", "rc"] ``` +### Supervisor configuration + +This plugin needs an HTTP server to be enabled in supervisor. It is recommended +to enable basic authentication on the HTTP server. When using basic +authentication make sure to include the username and password in the plugin's +`url` setting. Here is an example of the `inet_http_server` section in +supervisor's config that will work with default plugin configuration: + +```ini +[inet_http_server] +port = 127.0.0.1:9001 +username = user +password = pass +``` + ### Optional metrics You can control gathering of some supervisor's metrics (processes PIDs @@ -95,7 +112,7 @@ configuration file. ## Example Output -```shell +```text supervisor_processes,group=ExampleGroup,id=supervisor,port=9001,process=ExampleProcess,source=localhost state=20i,uptime=75958i 1659786637000000000 supervisor_instance,id=supervisor,port=9001,source=localhost state=1i 1659786637000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/suricata.md b/src/writeData/components/telegrafPlugins/suricata.md index 189ff1e8a5..699c1d0ac1 100644 --- a/src/writeData/components/telegrafPlugins/suricata.md +++ b/src/writeData/components/telegrafPlugins/suricata.md @@ -1,41 +1,109 @@ # Suricata Input Plugin -This plugin reports internal performance counters of the Suricata IDS/IPS -engine, such as captured traffic volume, memory usage, uptime, flow counters, -and much more. It provides a socket for the Suricata log output to write JSON -stats output to, and processes the incoming data to fit Telegraf's format. -It can also report for triggered Suricata IDS/IPS alerts. +This service plugin reports internal performance counters of the +[Suricata IDS/IPS][suricata] engine, such as captured traffic volume, memory +usage, uptime, flow counters, and much more. This plugin provides a socket for +the Suricata log output to write JSON stats output to, and processes the +incoming data to fit Telegraf's format. It can also report for triggered +Suricata IDS/IPS alerts. + +⭐ Telegraf v1.13.0 +🏷️ applications, network +💻 all + +[suricata]: https://suricata.io/ + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Suricata stats and alerts plugin [[inputs.suricata]] - ## Data sink for Suricata stats log. - # This is expected to be a filename of a - # unix socket to be created for listening. - source = "/var/run/suricata-stats.sock" + ## Source + ## Data sink for Suricata stats log. This is expected to be a filename of a + ## unix socket to be created for listening. + # source = "/var/run/suricata-stats.sock" + + ## Delimiter + ## Used for flattening field keys, e.g. subitem "alert" of "detect" becomes + ## "detect_alert" when delimiter is "_". + # delimiter = "_" + + ## Metric version + ## Version 1 only collects stats and optionally will look for alerts if + ## the configuration setting alerts is set to true. + ## Version 2 parses any event type message by default and produced metrics + ## under a single metric name using a tag to differentiate between event + ## types. The timestamp for the message is applied to the generated metric. + ## Additional tags and fields are included as well. + # version = "1" + + ## Alerts + ## In metric version 1, only status is captured by default, alerts must be + ## turned on with this configuration option. This option does not apply for + ## metric version 2. + # alerts = false +``` + +### Suricata configuration + +Suricata needs to deliver the 'stats' event type to a given unix socket for +this plugin to pick up. This can be done, for example, by creating an additional +output in the Suricata configuration file: - # Delimiter for flattening field keys, e.g. subitem "alert" of "detect" - # becomes "detect_alert" when delimiter is "_". - delimiter = "_" +```yaml +- eve-log: + enabled: yes + filetype: unix_stream + filename: /tmp/suricata-stats.sock + types: + - stats: + threads: yes +``` + +### FreeBSD tuning + +Under FreeBSD it is necessary to increase the localhost buffer space to at least +16384, default is 8192 otherwise messages from Suricata are truncated as they +exceed the default available buffer space, consequently no statistics are +processed by the plugin. - # Detect alert logs - alerts = false +```text +sysctl -w net.local.stream.recvspace=16384 +sysctl -w net.local.stream.sendspace=16384 ``` ## Metrics Fields in the 'suricata' measurement follow the JSON format used by Suricata's -stats output. -See for -more information. +stats output. See the [statistics documentation][stats_doc] for more +information. All fields for Suricata stats are numeric. - suricata - tags: - - thread: `Global` for global statistics (if enabled), thread IDs (e.g. `W#03-enp0s31f6`) for thread-specific statistics + - thread: `Global` for global statistics (if enabled), thread IDs + (e.g. `W#03-enp0s31f6`) for thread-specific statistics - fields: - app_layer_flow_dcerpc_udp - app_layer_flow_dns_tcp @@ -101,7 +169,7 @@ All fields for Suricata stats are numeric. - ... Some fields of the Suricata alerts are strings, for example the signatures. See -the Suricata [event docs][1] for more information. +the Suricata [event documentation][events_doc] for more information. - suricata_alert - fields: @@ -115,35 +183,8 @@ the Suricata [event docs][1] for more information. - target_port - ... -[1]: https://suricata.readthedocs.io/en/suricata-6.0.0/output/eve/eve-json-format.html?highlight=priority#event-type-alert - -### Suricata configuration - -Suricata needs to deliver the 'stats' event type to a given unix socket for -this plugin to pick up. This can be done, for example, by creating an additional -output in the Suricata configuration file: - -```yaml -- eve-log: - enabled: yes - filetype: unix_stream - filename: /tmp/suricata-stats.sock - types: - - stats: - threads: yes -``` - -### FreeBSD tuning - -Under FreeBSD it is necessary to increase the localhost buffer space to at least -16384, default is 8192 otherwise messages from Suricata are truncated as they -exceed the default available buffer space, consequently no statistics are -processed by the plugin. - -```text -sysctl -w net.local.stream.recvspace=16384 -sysctl -w net.local.stream.sendspace=16384 -``` +[stats_doc]: http://suricata.readthedocs.io/en/latest/performance/statistics.html +[events_doc]: https://suricata.readthedocs.io/en/suricata-6.0.0/output/eve/eve-json-format.html?highlight=priority#event-type-alert ## Example Output diff --git a/src/writeData/components/telegrafPlugins/swap.md b/src/writeData/components/telegrafPlugins/swap.md index 07c4c3aed2..cea5f3eec2 100644 --- a/src/writeData/components/telegrafPlugins/swap.md +++ b/src/writeData/components/telegrafPlugins/swap.md @@ -1,9 +1,19 @@ # Swap Input Plugin -The swap plugin collects system swap metrics. +This plugin collects metrics on the operating-system's swap memory. -For more information on what swap memory is, read [All about Linux swap -space](https://www.linux.com/news/all-about-linux-swap-space). +⭐ Telegraf v1.7.0 +🏷️ system +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -26,6 +36,6 @@ space](https://www.linux.com/news/all-about-linux-swap-space). ## Example Output -```shell +```text swap total=20855394304i,used_percent=45.43883523785713,used=9476448256i,free=1715331072i 1511894782000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/synproxy.md b/src/writeData/components/telegrafPlugins/synproxy.md index 918fbc08df..28ecdd12d6 100644 --- a/src/writeData/components/telegrafPlugins/synproxy.md +++ b/src/writeData/components/telegrafPlugins/synproxy.md @@ -1,18 +1,39 @@ # Synproxy Input Plugin -The synproxy plugin gathers the synproxy counters. Synproxy is a Linux netfilter -module used for SYN attack mitigation. The use of synproxy is documented in -`man iptables-extensions` under the SYNPROXY section. +This plugin gathers metrics about the Linux netfilter's [synproxy][synproxy] +module used for mitigating SYN attacks. + +⭐ Telegraf v1.13.0 +🏷️ network +💻 linux + +[synproxy]: https://wiki.nftables.org/wiki-nftables/index.php/Synproxy + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Get synproxy counter statistics from procfs +# This plugin ONLY supports Linux [[inputs.synproxy]] # no configuration ``` -The synproxy plugin does not need any configuration +## Troubleshooting + +Execute the following CLI command in Linux to test the synproxy counters: + +```sh +cat /proc/net/stat/synproxy +``` ## Metrics @@ -27,27 +48,10 @@ The following synproxy counters are gathered - syn_received (uint32, packets, counter) - SYN received - conn_reopened (uint32, packets, counter) - Connections reopened -## Sample Queries - -Get the number of packets per 5 minutes for the measurement in the last hour -from InfluxDB: - -```sql -SELECT difference(last("cookie_invalid")) AS "cookie_invalid", difference(last("cookie_retrans")) AS "cookie_retrans", difference(last("cookie_valid")) AS "cookie_valid", difference(last("entries")) AS "entries", difference(last("syn_received")) AS "syn_received", difference(last("conn_reopened")) AS "conn_reopened" FROM synproxy WHERE time > NOW() - 1h GROUP BY time(5m) FILL(null); -``` - -## Troubleshooting - -Execute the following CLI command in Linux to test the synproxy counters: - -```sh -cat /proc/net/stat/synproxy -``` - ## Example Output This section shows example output in Line Protocol format. -```shell +```text synproxy,host=Filter-GW01,rack=filter-node1 conn_reopened=0i,cookie_invalid=235i,cookie_retrans=0i,cookie_valid=8814i,entries=0i,syn_received=8742i 1549550634000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/syslog.md b/src/writeData/components/telegrafPlugins/syslog.md index 84f0bd0bfc..944344377d 100644 --- a/src/writeData/components/telegrafPlugins/syslog.md +++ b/src/writeData/components/telegrafPlugins/syslog.md @@ -1,13 +1,42 @@ # Syslog Input Plugin -The syslog plugin listens for syslog messages transmitted over a Unix Domain -socket, [UDP](https://tools.ietf.org/html/rfc5426), -[TCP](https://tools.ietf.org/html/rfc6587), or -[TLS](https://tools.ietf.org/html/rfc5425); with or without the octet counting -framing. +This service plugin listens for [syslog][syslog] messages transmitted over a +Unix Domain socket, [UDP][rfc5426], [TCP][rfc6587] or [TLS][rfc5425] with or +without the octet counting framing. -Syslog messages should be formatted according to -[RFC 5424](https://tools.ietf.org/html/rfc5424). +Syslog messages should be formatted according to the [syslog protocol][rfc5424] +or the [BSD syslog protocol][rfc3164]. + +⭐ Telegraf v1.7.0 +🏷️ logging +💻 all + +[syslog]: https://en.wikipedia.org/wiki/Syslog +[rfc5426]: https://tools.ietf.org/html/rfc5426 +[rfc6587]: https://tools.ietf.org/html/rfc6587 +[rfc5425]: https://tools.ietf.org/html/rfc5425 +[rfc5424]: https://tools.ietf.org/html/rfc5424 +[rfc3164]: https://tools.ietf.org/html/rfc3164 + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -19,32 +48,53 @@ Syslog messages should be formatted according to ## ex: server = "tcp://localhost:6514" ## server = "udp://:6514" ## server = "unix:///var/run/telegraf-syslog.sock" - server = "tcp://:6514" - - ## TLS Config - # tls_allowed_cacerts = ["/etc/telegraf/ca.pem"] + ## When using tcp, consider using 'tcp4' or 'tcp6' to force the usage of IPv4 + ## or IPV6 respectively. There are cases, where when not specified, a system + ## may force an IPv4 mapped IPv6 address. + server = "tcp://127.0.0.1:6514" + + ## Permission for unix sockets (only available on unix sockets) + ## This setting may not be respected by some platforms. To safely restrict + ## permissions it is recommended to place the socket into a previously + ## created directory with the desired permissions. + ## ex: socket_mode = "777" + # socket_mode = "" + + ## Maximum number of concurrent connections (only available on stream sockets like TCP) + ## Zero means unlimited. + # max_connections = 0 + + ## Read timeout (only available on stream sockets like TCP) + ## Zero means unlimited. + # read_timeout = "0s" + + ## Optional TLS configuration (only available on stream sockets like TCP) # tls_cert = "/etc/telegraf/cert.pem" - # tls_key = "/etc/telegraf/key.pem" - - ## Period between keep alive probes. - ## 0 disables keep alive probes. - ## Defaults to the OS configuration. - ## Only applies to stream sockets (e.g. TCP). + # tls_key = "/etc/telegraf/key.pem" + ## Enables client authentication if set. + # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] + + ## Maximum socket buffer size (in bytes when no unit specified) + ## For stream sockets, once the buffer fills up, the sender will start + ## backing up. For datagram sockets, once the buffer fills up, metrics will + ## start dropping. Defaults to the OS default. + # read_buffer_size = "64KiB" + + ## Period between keep alive probes (only applies to TCP sockets) + ## Zero disables keep alive probes. Defaults to the OS configuration. # keep_alive_period = "5m" - ## Maximum number of concurrent connections (default = 0). - ## 0 means unlimited. - ## Only applies to stream sockets (e.g. TCP). - # max_connections = 1024 + ## Content encoding for message payloads + ## Can be set to "gzip" for compressed payloads or "identity" for no encoding. + # content_encoding = "identity" - ## Read timeout is the maximum time allowed for reading a single message (default = 5s). - ## 0 means unlimited. - # read_timeout = "5s" + ## Maximum size of decoded packet (in bytes when no unit specified) + # max_decompression_size = "500MB" - ## The framing technique with which it is expected that messages are transported (default = "octet-counting"). - ## Whether the messages come using the octect-counting (RFC5425#section-4.3.1, RFC6587#section-3.4.1), - ## or the non-transparent framing technique (RFC6587#section-3.4.2). - ## Must be one of "octect-counting", "non-transparent". + ## Framing technique used for messages transport + ## Available settings are: + ## octet-counting -- see RFC5425#section-4.3.1 and RFC6587#section-3.4.1 + ## non-transparent -- see RFC6587#section-3.4.2 # framing = "octet-counting" ## The trailer to be expected in case of non-transparent framing (default = "LF"). @@ -66,6 +116,10 @@ Syslog messages should be formatted according to ## For each combination a field is created. ## Its name is created concatenating identifier, sdparam_separator, and parameter name. # sdparam_separator = "_" + + ## Maximum length allowed for a single message (in bytes when no unit specified) + ## Only applies to octet-counting framing. + # max_message_length = "8KiB" ``` ### Message transport @@ -91,7 +145,7 @@ messages. If unset only full messages will be collected. ### Rsyslog Integration Rsyslog can be configured to forward logging messages to Telegraf by configuring -[remote logging][3]. +[remote logging][remote_logging]. Most system are setup with a configuration split between `/etc/rsyslog.conf` and the files in the `/etc/rsyslog.d/` directory, it is recommended to add the @@ -124,44 +178,10 @@ action(type="omfwd" Protocol="tcp" TCP_Framing="octet-counted" Target="127.0.0.1 #action(type="omfwd" Protocol="udp" Target="127.0.0.1" Port="6514" Template="RSYSLOG_SyslogProtocol23Format") ``` -To complete TLS setup please refer to [rsyslog docs][4]. - -[3]: https://www.rsyslog.com/doc/v8-stable/configuration/actions.html#remote-machine - -[4]: https://www.rsyslog.com/doc/v8-stable/tutorials/tls.html - -## Metrics - -- syslog - - tags - - severity (string) - - facility (string) - - hostname (string) - - appname (string) - - source (string) - - fields - - version (integer) - - severity_code (integer) - - facility_code (integer) - - timestamp (integer): the time recorded in the syslog message - - procid (string) - - msgid (string) - - sdid (bool) - - *Structured Data* (string) - - timestamp: the time the messages was received - -### Structured Data +To complete TLS setup please refer to [rsyslog docs][rsyslog_docs]. -Structured data produces field keys by combining the `SD_ID` with the -`PARAM_NAME` combined using the `sdparam_separator` as in the following example: - -```shell -170 <165>1 2018-10-01:14:15.000Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] An application event log entry... -``` - -```shell -syslog,appname=evntslog,facility=local4,hostname=mymachine.example.com,severity=notice exampleSDID@32473_eventID="1011",exampleSDID@32473_eventSource="Application",exampleSDID@32473_iut="3",facility_code=20i,message="An application event log entry...",msgid="ID47",severity_code=5i,timestamp=1065910455003000000i,version=1i 1538421339749472344 -``` +[remote_logging]: https://www.rsyslog.com/doc/v8-stable/configuration/actions.html#remote-machine +[rsyslog_docs]: https://www.rsyslog.com/doc/v8-stable/tutorials/tls.html ## Troubleshooting @@ -177,10 +197,12 @@ echo "<13>1 2018-10-01T12:00:00.0Z example.org root - - - test" | nc -u 127.0.0. The `source` tag stores the remote IP address of the syslog sender. To resolve these IPs to DNS names, use the -[`reverse_dns` processor](../../../plugins/processors/reverse_dns). +[`reverse_dns` processor][plugin_reverse_dns] You can send debugging messages directly to the input plugin using netcat: +[plugin_reverse_dns]: /plugins/processors/reverse_dns/README.md + ### RFC3164 RFC3164 encoded messages are supported for UDP only, but not all vendors output @@ -200,7 +222,7 @@ Add the following lines to the rsyslog configuration file ```s # This makes rsyslog listen on 127.0.0.1:514 to receive RFC3164 udp -# messages which can them be forwared to telegraf as RFC5424 +# messages which can them be forwarded to telegraf as RFC5424 $ModLoad imudp #loads the udp module $UDPServerAddress 127.0.0.1 $UDPServerRun 514 @@ -209,11 +231,42 @@ $UDPServerRun 514 Make adjustments to the target address as needed and sent your RFC3164 messages to port 514. +## Metrics + +- syslog + - tags + - severity (string) + - facility (string) + - hostname (string) + - appname (string) + - source (string) + - fields + - version (integer) + - severity_code (integer) + - facility_code (integer) + - timestamp (integer): the time recorded in the syslog message + - procid (string) + - msgid (string) + - sdid (bool) + - *Structured Data* (string) + - timestamp: the time the messages was received + +*Structured data* produces field keys by combining the `SD_ID` with the +`PARAM_NAME` combined using the `sdparam_separator` as in the following example: + +```shell +170 <165>1 2018-10-01:14:15.000Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] An application event log entry... +``` + +```shell +syslog,appname=evntslog,facility=local4,hostname=mymachine.example.com,severity=notice exampleSDID@32473_eventID="1011",exampleSDID@32473_eventSource="Application",exampleSDID@32473_iut="3",facility_code=20i,message="An application event log entry...",msgid="ID47",severity_code=5i,timestamp=1065910455003000000i,version=1i 1538421339749472344 +``` + ## Example Output Here is example output of this plugin: -```shell +```text syslog,appname=docker-compose,facility=daemon,host=bb8,hostname=droplet,location=home,severity=info,source=10.0.0.12 facility_code=3i,message="",severity_code=6i,timestamp=1624643706396113000i,version=1i 1624643706400667198 syslog,appname=tailscaled,facility=daemon,host=bb8,hostname=dev,location=home,severity=info,source=10.0.0.15 facility_code=3i,message="",severity_code=6i,timestamp=1624643706403394000i,version=1i 1624643706407850408 syslog,appname=docker-compose,facility=daemon,host=bb8,hostname=droplet,location=home,severity=info,source=10.0.0.12 facility_code=3i,message="",severity_code=6i,timestamp=1624643706675853000i,version=1i 1624643706679251683 diff --git a/src/writeData/components/telegrafPlugins/sysstat.md b/src/writeData/components/telegrafPlugins/sysstat.md index afd821da8b..7a97196717 100644 --- a/src/writeData/components/telegrafPlugins/sysstat.md +++ b/src/writeData/components/telegrafPlugins/sysstat.md @@ -1,15 +1,33 @@ -# sysstat Input Plugin +# System Performance Statistics Input Plugin -Collect [sysstat](https://github.com/sysstat/sysstat) metrics - requires the -sysstat package installed. +This plugin collects Linux [system performance statistics][sysstat] using the +`sysstat` package. This plugin uses the `sadc` collector utility and and parses +the created binary data file using the `sadf` utility. -This plugin collects system metrics with the sysstat collector utility `sadc` -and parses the created binary data file with the `sadf` utility. +> [!NOTE] +> This plugin requires the `sysstat` package to be installed on the system and +> both `sadc` and `sadf` to be executable by Telegraf. + +⭐ Telegraf v0.12.1 +🏷️ system +💻 linux + +[sysstat]: https://github.com/sysstat/sysstat + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Sysstat metrics collector +# This plugin ONLY supports Linux [[inputs.sysstat]] ## Path to the sadc command. # @@ -36,7 +54,7 @@ and parses the created binary data file with the `sadf` utility. # group = true ## Options for the sadf command. The values on the left represent the sadf options and - ## the values on the right their description (wich are used for grouping and prefixing metrics). + ## the values on the right their description (which are used for grouping and prefixing metrics). ## ## Run 'sar -h' or 'man sar' to find out the supported options for your sysstat version. [inputs.sysstat.options] @@ -65,7 +83,7 @@ and parses the created binary data file with the `sadf` utility. ## Metrics -### If group=true +### With grouping - cpu - pct_idle (float) @@ -86,7 +104,7 @@ and parses the created binary data file with the `sadf` utility. And much more, depending on the options you configure. -### If group=false +### Without grouping - cpu_pct_idle - value (float) @@ -116,13 +134,8 @@ And much more, depending on the options you configure. - value (float) And much more, depending on the options you configure. - -### Tags - -- All measurements have the following tags: - - device - -And more if you define some `device_tags`. +All measurements provide a `device` tag and others if you define additional +`device_tags`. ## Example Output @@ -156,44 +169,42 @@ With the configuration below: you get the following output: -```shell -$ telegraf --config telegraf.conf --input-filter sysstat --test -* Plugin: sysstat, Collection 1 -> cpu_util,device=all pct_idle=98.85,pct_iowait=0,pct_nice=0.38,pct_steal=0,pct_system=0.64,pct_user=0.13 1459255626657883725 -> swap pswpin_per_s=0,pswpout_per_s=0 1459255626658387650 -> per_cpu,device=cpu1 pct_idle=98.98,pct_iowait=0,pct_nice=0.26,pct_steal=0,pct_system=0.51,pct_user=0.26 1459255626659630437 -> per_cpu,device=all pct_idle=98.85,pct_iowait=0,pct_nice=0.38,pct_steal=0,pct_system=0.64,pct_user=0.13 1459255626659670744 -> per_cpu,device=cpu0 pct_idle=98.73,pct_iowait=0,pct_nice=0.76,pct_steal=0,pct_system=0.51,pct_user=0 1459255626659697515 -> hugepages kbhugfree=0,kbhugused=0,pct_hugused=0 1459255626660057517 -> network,device=lo coll_per_s=0,pct_ifutil=0,rxcmp_per_s=0,rxdrop_per_s=0,rxerr_per_s=0,rxfifo_per_s=0,rxfram_per_s=0,rxkB_per_s=0.81,rxmcst_per_s=0,rxpck_per_s=16,txcarr_per_s=0,txcmp_per_s=0,txdrop_per_s=0,txerr_per_s=0,txfifo_per_s=0,txkB_per_s=0.81,txpck_per_s=16 1459255626661197666 -> network access_per_s=0,active_per_s=0,asmf_per_s=0,asmok_per_s=0,asmrq_per_s=0,atmptf_per_s=0,badcall_per_s=0,call_per_s=0,estres_per_s=0,fragcrt_per_s=0,fragf_per_s=0,fragok_per_s=0,fwddgm_per_s=0,getatt_per_s=0,hit_per_s=0,iadrerr_per_s=0,iadrmk_per_s=0,iadrmkr_per_s=0,idel_per_s=16,idgm_per_s=0,idgmerr_per_s=0,idisc_per_s=0,idstunr_per_s=0,iech_per_s=0,iechr_per_s=0,ierr_per_s=0,ihdrerr_per_s=0,imsg_per_s=0,ip-frag=0,iparmpb_per_s=0,irec_per_s=16,iredir_per_s=0,iseg_per_s=16,isegerr_per_s=0,isrcq_per_s=0,itm_per_s=0,itmex_per_s=0,itmr_per_s=0,iukwnpr_per_s=0,miss_per_s=0,noport_per_s=0,oadrmk_per_s=0,oadrmkr_per_s=0,odgm_per_s=0,odisc_per_s=0,odstunr_per_s=0,oech_per_s=0,oechr_per_s=0,oerr_per_s=0,omsg_per_s=0,onort_per_s=0,oparmpb_per_s=0,oredir_per_s=0,orq_per_s=16,orsts_per_s=0,oseg_per_s=16,osrcq_per_s=0,otm_per_s=0,otmex_per_s=0,otmr_per_s=0,packet_per_s=0,passive_per_s=0,rawsck=0,read_per_s=0,retrans_per_s=0,saccess_per_s=0,scall_per_s=0,sgetatt_per_s=0,sread_per_s=0,swrite_per_s=0,tcp-tw=7,tcp_per_s=0,tcpsck=1543,totsck=4052,udp_per_s=0,udpsck=2,write_per_s=0 1459255626661381788 -> network,device=ens33 coll_per_s=0,pct_ifutil=0,rxcmp_per_s=0,rxdrop_per_s=0,rxerr_per_s=0,rxfifo_per_s=0,rxfram_per_s=0,rxkB_per_s=0,rxmcst_per_s=0,rxpck_per_s=0,txcarr_per_s=0,txcmp_per_s=0,txdrop_per_s=0,txerr_per_s=0,txfifo_per_s=0,txkB_per_s=0,txpck_per_s=0 1459255626661533072 -> disk,device=sda,vg=rootvg avgqu-sz=0.01,avgrq-sz=8.5,await=3.31,pct_util=0.1,rd_sec_per_s=0,svctm=0.25,tps=4,wr_sec_per_s=34 1459255626663974389 -> queue blocked=0,ldavg-1=1.61,ldavg-15=1.34,ldavg-5=1.67,plist-sz=1415,runq-sz=0 1459255626664159054 -> paging fault_per_s=0.25,majflt_per_s=0,pct_vmeff=0,pgfree_per_s=19,pgpgin_per_s=0,pgpgout_per_s=17,pgscand_per_s=0,pgscank_per_s=0,pgsteal_per_s=0 1459255626664304249 -> mem_util kbactive=2206568,kbanonpg=1472208,kbbuffers=118020,kbcached=1035252,kbcommit=8717200,kbdirty=156,kbinact=418912,kbkstack=24672,kbmemfree=1744868,kbmemused=3610272,kbpgtbl=87116,kbslab=233804,kbvmused=0,pct_commit=136.13,pct_memused=67.42 1459255626664554981 -> io bread_per_s=0,bwrtn_per_s=34,rtps=0,tps=4,wtps=4 1459255626664596198 -> inode dentunusd=235039,file-nr=17120,inode-nr=94505,pty-nr=14 1459255626664663693 -> interrupts,device=i000 intr_per_s=0 1459255626664800109 -> interrupts,device=i003 intr_per_s=0 1459255626665255145 -> interrupts,device=i004 intr_per_s=0 1459255626665281776 -> interrupts,device=i006 intr_per_s=0 1459255626665297416 -> interrupts,device=i007 intr_per_s=0 1459255626665321008 -> interrupts,device=i010 intr_per_s=0 1459255626665339413 -> interrupts,device=i012 intr_per_s=0 1459255626665361510 -> interrupts,device=i013 intr_per_s=0 1459255626665381327 -> interrupts,device=i015 intr_per_s=1 1459255626665397313 -> interrupts,device=i001 intr_per_s=0.25 1459255626665412985 -> interrupts,device=i002 intr_per_s=0 1459255626665430475 -> interrupts,device=i005 intr_per_s=0 1459255626665453944 -> interrupts,device=i008 intr_per_s=0 1459255626665470650 -> interrupts,device=i011 intr_per_s=0 1459255626665486069 -> interrupts,device=i009 intr_per_s=0 1459255626665502913 -> interrupts,device=i014 intr_per_s=0 1459255626665518152 -> task cswch_per_s=722.25,proc_per_s=0 1459255626665849646 -> cpu,device=all pct_idle=98.85,pct_iowait=0,pct_nice=0.38,pct_steal=0,pct_system=0.64,pct_user=0.13 1459255626666639715 -> mem bufpg_per_s=0,campg_per_s=1.75,frmpg_per_s=-8.25 1459255626666770205 -> swap_util kbswpcad=0,kbswpfree=1048572,kbswpused=0,pct_swpcad=0,pct_swpused=0 1459255626667313276 +```text +cpu_util,device=all pct_idle=98.85,pct_iowait=0,pct_nice=0.38,pct_steal=0,pct_system=0.64,pct_user=0.13 1459255626657883725 +swap pswpin_per_s=0,pswpout_per_s=0 1459255626658387650 +per_cpu,device=cpu1 pct_idle=98.98,pct_iowait=0,pct_nice=0.26,pct_steal=0,pct_system=0.51,pct_user=0.26 1459255626659630437 +per_cpu,device=all pct_idle=98.85,pct_iowait=0,pct_nice=0.38,pct_steal=0,pct_system=0.64,pct_user=0.13 1459255626659670744 +per_cpu,device=cpu0 pct_idle=98.73,pct_iowait=0,pct_nice=0.76,pct_steal=0,pct_system=0.51,pct_user=0 1459255626659697515 +hugepages kbhugfree=0,kbhugused=0,pct_hugused=0 1459255626660057517 +network,device=lo coll_per_s=0,pct_ifutil=0,rxcmp_per_s=0,rxdrop_per_s=0,rxerr_per_s=0,rxfifo_per_s=0,rxfram_per_s=0,rxkB_per_s=0.81,rxmcst_per_s=0,rxpck_per_s=16,txcarr_per_s=0,txcmp_per_s=0,txdrop_per_s=0,txerr_per_s=0,txfifo_per_s=0,txkB_per_s=0.81,txpck_per_s=16 1459255626661197666 +network access_per_s=0,active_per_s=0,asmf_per_s=0,asmok_per_s=0,asmrq_per_s=0,atmptf_per_s=0,badcall_per_s=0,call_per_s=0,estres_per_s=0,fragcrt_per_s=0,fragf_per_s=0,fragok_per_s=0,fwddgm_per_s=0,getatt_per_s=0,hit_per_s=0,iadrerr_per_s=0,iadrmk_per_s=0,iadrmkr_per_s=0,idel_per_s=16,idgm_per_s=0,idgmerr_per_s=0,idisc_per_s=0,idstunr_per_s=0,iech_per_s=0,iechr_per_s=0,ierr_per_s=0,ihdrerr_per_s=0,imsg_per_s=0,ip-frag=0,iparmpb_per_s=0,irec_per_s=16,iredir_per_s=0,iseg_per_s=16,isegerr_per_s=0,isrcq_per_s=0,itm_per_s=0,itmex_per_s=0,itmr_per_s=0,iukwnpr_per_s=0,miss_per_s=0,noport_per_s=0,oadrmk_per_s=0,oadrmkr_per_s=0,odgm_per_s=0,odisc_per_s=0,odstunr_per_s=0,oech_per_s=0,oechr_per_s=0,oerr_per_s=0,omsg_per_s=0,onort_per_s=0,oparmpb_per_s=0,oredir_per_s=0,orq_per_s=16,orsts_per_s=0,oseg_per_s=16,osrcq_per_s=0,otm_per_s=0,otmex_per_s=0,otmr_per_s=0,packet_per_s=0,passive_per_s=0,rawsck=0,read_per_s=0,retrans_per_s=0,saccess_per_s=0,scall_per_s=0,sgetatt_per_s=0,sread_per_s=0,swrite_per_s=0,tcp-tw=7,tcp_per_s=0,tcpsck=1543,totsck=4052,udp_per_s=0,udpsck=2,write_per_s=0 1459255626661381788 +network,device=ens33 coll_per_s=0,pct_ifutil=0,rxcmp_per_s=0,rxdrop_per_s=0,rxerr_per_s=0,rxfifo_per_s=0,rxfram_per_s=0,rxkB_per_s=0,rxmcst_per_s=0,rxpck_per_s=0,txcarr_per_s=0,txcmp_per_s=0,txdrop_per_s=0,txerr_per_s=0,txfifo_per_s=0,txkB_per_s=0,txpck_per_s=0 1459255626661533072 +disk,device=sda,vg=rootvg avgqu-sz=0.01,avgrq-sz=8.5,await=3.31,pct_util=0.1,rd_sec_per_s=0,svctm=0.25,tps=4,wr_sec_per_s=34 1459255626663974389 +queue blocked=0,ldavg-1=1.61,ldavg-15=1.34,ldavg-5=1.67,plist-sz=1415,runq-sz=0 1459255626664159054 +paging fault_per_s=0.25,majflt_per_s=0,pct_vmeff=0,pgfree_per_s=19,pgpgin_per_s=0,pgpgout_per_s=17,pgscand_per_s=0,pgscank_per_s=0,pgsteal_per_s=0 1459255626664304249 +mem_util kbactive=2206568,kbanonpg=1472208,kbbuffers=118020,kbcached=1035252,kbcommit=8717200,kbdirty=156,kbinact=418912,kbkstack=24672,kbmemfree=1744868,kbmemused=3610272,kbpgtbl=87116,kbslab=233804,kbvmused=0,pct_commit=136.13,pct_memused=67.42 1459255626664554981 +io bread_per_s=0,bwrtn_per_s=34,rtps=0,tps=4,wtps=4 1459255626664596198 +inode dentunusd=235039,file-nr=17120,inode-nr=94505,pty-nr=14 1459255626664663693 +interrupts,device=i000 intr_per_s=0 1459255626664800109 +interrupts,device=i003 intr_per_s=0 1459255626665255145 +interrupts,device=i004 intr_per_s=0 1459255626665281776 +interrupts,device=i006 intr_per_s=0 1459255626665297416 +interrupts,device=i007 intr_per_s=0 1459255626665321008 +interrupts,device=i010 intr_per_s=0 1459255626665339413 +interrupts,device=i012 intr_per_s=0 1459255626665361510 +interrupts,device=i013 intr_per_s=0 1459255626665381327 +interrupts,device=i015 intr_per_s=1 1459255626665397313 +interrupts,device=i001 intr_per_s=0.25 1459255626665412985 +interrupts,device=i002 intr_per_s=0 1459255626665430475 +interrupts,device=i005 intr_per_s=0 1459255626665453944 +interrupts,device=i008 intr_per_s=0 1459255626665470650 +interrupts,device=i011 intr_per_s=0 1459255626665486069 +interrupts,device=i009 intr_per_s=0 1459255626665502913 +interrupts,device=i014 intr_per_s=0 1459255626665518152 +task cswch_per_s=722.25,proc_per_s=0 1459255626665849646 +cpu,device=all pct_idle=98.85,pct_iowait=0,pct_nice=0.38,pct_steal=0,pct_system=0.64,pct_user=0.13 1459255626666639715 +mem bufpg_per_s=0,campg_per_s=1.75,frmpg_per_s=-8.25 1459255626666770205 +swap_util kbswpcad=0,kbswpfree=1048572,kbswpused=0,pct_swpcad=0,pct_swpused=0 1459255626667313276 ``` If you change the group value to false like below: @@ -226,227 +237,225 @@ If you change the group value to false like below: you get the following output: -```shell -$ telegraf -config telegraf.conf -input-filter sysstat -test -* Plugin: sysstat, Collection 1 -> io_tps value=0.5 1459255780126025822 -> io_rtps value=0 1459255780126025822 -> io_wtps value=0.5 1459255780126025822 -> io_bread_per_s value=0 1459255780126025822 -> io_bwrtn_per_s value=38 1459255780126025822 -> cpu_util_pct_user,device=all value=39.07 1459255780126025822 -> cpu_util_pct_nice,device=all value=0 1459255780126025822 -> cpu_util_pct_system,device=all value=47.94 1459255780126025822 -> cpu_util_pct_iowait,device=all value=0 1459255780126025822 -> cpu_util_pct_steal,device=all value=0 1459255780126025822 -> cpu_util_pct_idle,device=all value=12.98 1459255780126025822 -> swap_pswpin_per_s value=0 1459255780126025822 -> cpu_pct_user,device=all value=39.07 1459255780126025822 -> cpu_pct_nice,device=all value=0 1459255780126025822 -> cpu_pct_system,device=all value=47.94 1459255780126025822 -> cpu_pct_iowait,device=all value=0 1459255780126025822 -> cpu_pct_steal,device=all value=0 1459255780126025822 -> cpu_pct_idle,device=all value=12.98 1459255780126025822 -> per_cpu_pct_user,device=all value=39.07 1459255780126025822 -> per_cpu_pct_nice,device=all value=0 1459255780126025822 -> per_cpu_pct_system,device=all value=47.94 1459255780126025822 -> per_cpu_pct_iowait,device=all value=0 1459255780126025822 -> per_cpu_pct_steal,device=all value=0 1459255780126025822 -> per_cpu_pct_idle,device=all value=12.98 1459255780126025822 -> per_cpu_pct_user,device=cpu0 value=33.5 1459255780126025822 -> per_cpu_pct_nice,device=cpu0 value=0 1459255780126025822 -> per_cpu_pct_system,device=cpu0 value=65.25 1459255780126025822 -> per_cpu_pct_iowait,device=cpu0 value=0 1459255780126025822 -> per_cpu_pct_steal,device=cpu0 value=0 1459255780126025822 -> per_cpu_pct_idle,device=cpu0 value=1.25 1459255780126025822 -> per_cpu_pct_user,device=cpu1 value=44.85 1459255780126025822 -> per_cpu_pct_nice,device=cpu1 value=0 1459255780126025822 -> per_cpu_pct_system,device=cpu1 value=29.55 1459255780126025822 -> per_cpu_pct_iowait,device=cpu1 value=0 1459255780126025822 -> per_cpu_pct_steal,device=cpu1 value=0 1459255780126025822 -> per_cpu_pct_idle,device=cpu1 value=25.59 1459255780126025822 -> hugepages_kbhugfree value=0 1459255780126025822 -> hugepages_kbhugused value=0 1459255780126025822 -> hugepages_pct_hugused value=0 1459255780126025822 -> interrupts_intr_per_s,device=i000 value=0 1459255780126025822 -> inode_dentunusd value=252876 1459255780126025822 -> mem_util_kbmemfree value=1613612 1459255780126025822 -> disk_tps,device=sda,vg=rootvg value=0.5 1459255780126025822 -> swap_pswpout_per_s value=0 1459255780126025822 -> network_rxpck_per_s,device=ens33 value=0 1459255780126025822 -> queue_runq-sz value=4 1459255780126025822 -> task_proc_per_s value=0 1459255780126025822 -> task_cswch_per_s value=2019 1459255780126025822 -> mem_frmpg_per_s value=0 1459255780126025822 -> mem_bufpg_per_s value=0.5 1459255780126025822 -> mem_campg_per_s value=1.25 1459255780126025822 -> interrupts_intr_per_s,device=i001 value=0 1459255780126025822 -> inode_file-nr value=19104 1459255780126025822 -> mem_util_kbmemused value=3741528 1459255780126025822 -> disk_rd_sec_per_s,device=sda,vg=rootvg value=0 1459255780126025822 -> network_txpck_per_s,device=ens33 value=0 1459255780126025822 -> queue_plist-sz value=1512 1459255780126025822 -> paging_pgpgin_per_s value=0 1459255780126025822 -> paging_pgpgout_per_s value=19 1459255780126025822 -> paging_fault_per_s value=0.25 1459255780126025822 -> paging_majflt_per_s value=0 1459255780126025822 -> paging_pgfree_per_s value=34.25 1459255780126025822 -> paging_pgscank_per_s value=0 1459255780126025822 -> paging_pgscand_per_s value=0 1459255780126025822 -> paging_pgsteal_per_s value=0 1459255780126025822 -> paging_pct_vmeff value=0 1459255780126025822 -> interrupts_intr_per_s,device=i002 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i003 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i004 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i005 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i006 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i007 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i008 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i009 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i010 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i011 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i012 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i013 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i014 value=0 1459255780126025822 -> interrupts_intr_per_s,device=i015 value=1 1459255780126025822 -> inode_inode-nr value=94709 1459255780126025822 -> inode_pty-nr value=14 1459255780126025822 -> mem_util_pct_memused value=69.87 1459255780126025822 -> mem_util_kbbuffers value=118252 1459255780126025822 -> mem_util_kbcached value=1045240 1459255780126025822 -> mem_util_kbcommit value=9628152 1459255780126025822 -> mem_util_pct_commit value=150.35 1459255780126025822 -> mem_util_kbactive value=2303752 1459255780126025822 -> mem_util_kbinact value=428340 1459255780126025822 -> mem_util_kbdirty value=104 1459255780126025822 -> mem_util_kbanonpg value=1568676 1459255780126025822 -> mem_util_kbslab value=240032 1459255780126025822 -> mem_util_kbkstack value=26224 1459255780126025822 -> mem_util_kbpgtbl value=98056 1459255780126025822 -> mem_util_kbvmused value=0 1459255780126025822 -> disk_wr_sec_per_s,device=sda,vg=rootvg value=38 1459255780126025822 -> disk_avgrq-sz,device=sda,vg=rootvg value=76 1459255780126025822 -> disk_avgqu-sz,device=sda,vg=rootvg value=0 1459255780126025822 -> disk_await,device=sda,vg=rootvg value=2 1459255780126025822 -> disk_svctm,device=sda,vg=rootvg value=2 1459255780126025822 -> disk_pct_util,device=sda,vg=rootvg value=0.1 1459255780126025822 -> network_rxkB_per_s,device=ens33 value=0 1459255780126025822 -> network_txkB_per_s,device=ens33 value=0 1459255780126025822 -> network_rxcmp_per_s,device=ens33 value=0 1459255780126025822 -> network_txcmp_per_s,device=ens33 value=0 1459255780126025822 -> network_rxmcst_per_s,device=ens33 value=0 1459255780126025822 -> network_pct_ifutil,device=ens33 value=0 1459255780126025822 -> network_rxpck_per_s,device=lo value=10.75 1459255780126025822 -> network_txpck_per_s,device=lo value=10.75 1459255780126025822 -> network_rxkB_per_s,device=lo value=0.77 1459255780126025822 -> network_txkB_per_s,device=lo value=0.77 1459255780126025822 -> network_rxcmp_per_s,device=lo value=0 1459255780126025822 -> network_txcmp_per_s,device=lo value=0 1459255780126025822 -> network_rxmcst_per_s,device=lo value=0 1459255780126025822 -> network_pct_ifutil,device=lo value=0 1459255780126025822 -> network_rxerr_per_s,device=ens33 value=0 1459255780126025822 -> network_txerr_per_s,device=ens33 value=0 1459255780126025822 -> network_coll_per_s,device=ens33 value=0 1459255780126025822 -> network_rxdrop_per_s,device=ens33 value=0 1459255780126025822 -> network_txdrop_per_s,device=ens33 value=0 1459255780126025822 -> network_txcarr_per_s,device=ens33 value=0 1459255780126025822 -> network_rxfram_per_s,device=ens33 value=0 1459255780126025822 -> network_rxfifo_per_s,device=ens33 value=0 1459255780126025822 -> network_txfifo_per_s,device=ens33 value=0 1459255780126025822 -> network_rxerr_per_s,device=lo value=0 1459255780126025822 -> network_txerr_per_s,device=lo value=0 1459255780126025822 -> network_coll_per_s,device=lo value=0 1459255780126025822 -> network_rxdrop_per_s,device=lo value=0 1459255780126025822 -> network_txdrop_per_s,device=lo value=0 1459255780126025822 -> network_txcarr_per_s,device=lo value=0 1459255780126025822 -> network_rxfram_per_s,device=lo value=0 1459255780126025822 -> network_rxfifo_per_s,device=lo value=0 1459255780126025822 -> network_txfifo_per_s,device=lo value=0 1459255780126025822 -> network_call_per_s value=0 1459255780126025822 -> network_retrans_per_s value=0 1459255780126025822 -> network_read_per_s value=0 1459255780126025822 -> network_write_per_s value=0 1459255780126025822 -> network_access_per_s value=0 1459255780126025822 -> network_getatt_per_s value=0 1459255780126025822 -> network_scall_per_s value=0 1459255780126025822 -> network_badcall_per_s value=0 1459255780126025822 -> network_packet_per_s value=0 1459255780126025822 -> network_udp_per_s value=0 1459255780126025822 -> network_tcp_per_s value=0 1459255780126025822 -> network_hit_per_s value=0 1459255780126025822 -> network_miss_per_s value=0 1459255780126025822 -> network_sread_per_s value=0 1459255780126025822 -> network_swrite_per_s value=0 1459255780126025822 -> network_saccess_per_s value=0 1459255780126025822 -> network_sgetatt_per_s value=0 1459255780126025822 -> network_totsck value=4234 1459255780126025822 -> network_tcpsck value=1637 1459255780126025822 -> network_udpsck value=2 1459255780126025822 -> network_rawsck value=0 1459255780126025822 -> network_ip-frag value=0 1459255780126025822 -> network_tcp-tw value=4 1459255780126025822 -> network_irec_per_s value=10.75 1459255780126025822 -> network_fwddgm_per_s value=0 1459255780126025822 -> network_idel_per_s value=10.75 1459255780126025822 -> network_orq_per_s value=10.75 1459255780126025822 -> network_asmrq_per_s value=0 1459255780126025822 -> network_asmok_per_s value=0 1459255780126025822 -> network_fragok_per_s value=0 1459255780126025822 -> network_fragcrt_per_s value=0 1459255780126025822 -> network_ihdrerr_per_s value=0 1459255780126025822 -> network_iadrerr_per_s value=0 1459255780126025822 -> network_iukwnpr_per_s value=0 1459255780126025822 -> network_idisc_per_s value=0 1459255780126025822 -> network_odisc_per_s value=0 1459255780126025822 -> network_onort_per_s value=0 1459255780126025822 -> network_asmf_per_s value=0 1459255780126025822 -> network_fragf_per_s value=0 1459255780126025822 -> network_imsg_per_s value=0 1459255780126025822 -> network_omsg_per_s value=0 1459255780126025822 -> network_iech_per_s value=0 1459255780126025822 -> network_iechr_per_s value=0 1459255780126025822 -> network_oech_per_s value=0 1459255780126025822 -> network_oechr_per_s value=0 1459255780126025822 -> network_itm_per_s value=0 1459255780126025822 -> network_itmr_per_s value=0 1459255780126025822 -> network_otm_per_s value=0 1459255780126025822 -> network_otmr_per_s value=0 1459255780126025822 -> network_iadrmk_per_s value=0 1459255780126025822 -> network_iadrmkr_per_s value=0 1459255780126025822 -> network_oadrmk_per_s value=0 1459255780126025822 -> network_oadrmkr_per_s value=0 1459255780126025822 -> network_ierr_per_s value=0 1459255780126025822 -> network_oerr_per_s value=0 1459255780126025822 -> network_idstunr_per_s value=0 1459255780126025822 -> network_odstunr_per_s value=0 1459255780126025822 -> network_itmex_per_s value=0 1459255780126025822 -> network_otmex_per_s value=0 1459255780126025822 -> network_iparmpb_per_s value=0 1459255780126025822 -> network_oparmpb_per_s value=0 1459255780126025822 -> network_isrcq_per_s value=0 1459255780126025822 -> network_osrcq_per_s value=0 1459255780126025822 -> network_iredir_per_s value=0 1459255780126025822 -> network_oredir_per_s value=0 1459255780126025822 -> network_active_per_s value=0 1459255780126025822 -> network_passive_per_s value=0 1459255780126025822 -> network_iseg_per_s value=10.75 1459255780126025822 -> network_oseg_per_s value=9.5 1459255780126025822 -> network_atmptf_per_s value=0 1459255780126025822 -> network_estres_per_s value=0 1459255780126025822 -> network_retrans_per_s value=1.5 1459255780126025822 -> network_isegerr_per_s value=0.25 1459255780126025822 -> network_orsts_per_s value=0 1459255780126025822 -> network_idgm_per_s value=0 1459255780126025822 -> network_odgm_per_s value=0 1459255780126025822 -> network_noport_per_s value=0 1459255780126025822 -> network_idgmerr_per_s value=0 1459255780126025822 -> queue_ldavg-1 value=2.1 1459255780126025822 -> queue_ldavg-5 value=1.82 1459255780126025822 -> queue_ldavg-15 value=1.44 1459255780126025822 -> queue_blocked value=0 1459255780126025822 -> swap_util_kbswpfree value=1048572 1459255780126025822 -> swap_util_kbswpused value=0 1459255780126025822 -> swap_util_pct_swpused value=0 1459255780126025822 -> swap_util_kbswpcad value=0 1459255780126025822 -> swap_util_pct_swpcad value=0 1459255780126025822 +```text +io_tps value=0.5 1459255780126025822 +io_rtps value=0 1459255780126025822 +io_wtps value=0.5 1459255780126025822 +io_bread_per_s value=0 1459255780126025822 +io_bwrtn_per_s value=38 1459255780126025822 +cpu_util_pct_user,device=all value=39.07 1459255780126025822 +cpu_util_pct_nice,device=all value=0 1459255780126025822 +cpu_util_pct_system,device=all value=47.94 1459255780126025822 +cpu_util_pct_iowait,device=all value=0 1459255780126025822 +cpu_util_pct_steal,device=all value=0 1459255780126025822 +cpu_util_pct_idle,device=all value=12.98 1459255780126025822 +swap_pswpin_per_s value=0 1459255780126025822 +cpu_pct_user,device=all value=39.07 1459255780126025822 +cpu_pct_nice,device=all value=0 1459255780126025822 +cpu_pct_system,device=all value=47.94 1459255780126025822 +cpu_pct_iowait,device=all value=0 1459255780126025822 +cpu_pct_steal,device=all value=0 1459255780126025822 +cpu_pct_idle,device=all value=12.98 1459255780126025822 +per_cpu_pct_user,device=all value=39.07 1459255780126025822 +per_cpu_pct_nice,device=all value=0 1459255780126025822 +per_cpu_pct_system,device=all value=47.94 1459255780126025822 +per_cpu_pct_iowait,device=all value=0 1459255780126025822 +per_cpu_pct_steal,device=all value=0 1459255780126025822 +per_cpu_pct_idle,device=all value=12.98 1459255780126025822 +per_cpu_pct_user,device=cpu0 value=33.5 1459255780126025822 +per_cpu_pct_nice,device=cpu0 value=0 1459255780126025822 +per_cpu_pct_system,device=cpu0 value=65.25 1459255780126025822 +per_cpu_pct_iowait,device=cpu0 value=0 1459255780126025822 +per_cpu_pct_steal,device=cpu0 value=0 1459255780126025822 +per_cpu_pct_idle,device=cpu0 value=1.25 1459255780126025822 +per_cpu_pct_user,device=cpu1 value=44.85 1459255780126025822 +per_cpu_pct_nice,device=cpu1 value=0 1459255780126025822 +per_cpu_pct_system,device=cpu1 value=29.55 1459255780126025822 +per_cpu_pct_iowait,device=cpu1 value=0 1459255780126025822 +per_cpu_pct_steal,device=cpu1 value=0 1459255780126025822 +per_cpu_pct_idle,device=cpu1 value=25.59 1459255780126025822 +hugepages_kbhugfree value=0 1459255780126025822 +hugepages_kbhugused value=0 1459255780126025822 +hugepages_pct_hugused value=0 1459255780126025822 +interrupts_intr_per_s,device=i000 value=0 1459255780126025822 +inode_dentunusd value=252876 1459255780126025822 +mem_util_kbmemfree value=1613612 1459255780126025822 +disk_tps,device=sda,vg=rootvg value=0.5 1459255780126025822 +swap_pswpout_per_s value=0 1459255780126025822 +network_rxpck_per_s,device=ens33 value=0 1459255780126025822 +queue_runq-sz value=4 1459255780126025822 +task_proc_per_s value=0 1459255780126025822 +task_cswch_per_s value=2019 1459255780126025822 +mem_frmpg_per_s value=0 1459255780126025822 +mem_bufpg_per_s value=0.5 1459255780126025822 +mem_campg_per_s value=1.25 1459255780126025822 +interrupts_intr_per_s,device=i001 value=0 1459255780126025822 +inode_file-nr value=19104 1459255780126025822 +mem_util_kbmemused value=3741528 1459255780126025822 +disk_rd_sec_per_s,device=sda,vg=rootvg value=0 1459255780126025822 +network_txpck_per_s,device=ens33 value=0 1459255780126025822 +queue_plist-sz value=1512 1459255780126025822 +paging_pgpgin_per_s value=0 1459255780126025822 +paging_pgpgout_per_s value=19 1459255780126025822 +paging_fault_per_s value=0.25 1459255780126025822 +paging_majflt_per_s value=0 1459255780126025822 +paging_pgfree_per_s value=34.25 1459255780126025822 +paging_pgscank_per_s value=0 1459255780126025822 +paging_pgscand_per_s value=0 1459255780126025822 +paging_pgsteal_per_s value=0 1459255780126025822 +paging_pct_vmeff value=0 1459255780126025822 +interrupts_intr_per_s,device=i002 value=0 1459255780126025822 +interrupts_intr_per_s,device=i003 value=0 1459255780126025822 +interrupts_intr_per_s,device=i004 value=0 1459255780126025822 +interrupts_intr_per_s,device=i005 value=0 1459255780126025822 +interrupts_intr_per_s,device=i006 value=0 1459255780126025822 +interrupts_intr_per_s,device=i007 value=0 1459255780126025822 +interrupts_intr_per_s,device=i008 value=0 1459255780126025822 +interrupts_intr_per_s,device=i009 value=0 1459255780126025822 +interrupts_intr_per_s,device=i010 value=0 1459255780126025822 +interrupts_intr_per_s,device=i011 value=0 1459255780126025822 +interrupts_intr_per_s,device=i012 value=0 1459255780126025822 +interrupts_intr_per_s,device=i013 value=0 1459255780126025822 +interrupts_intr_per_s,device=i014 value=0 1459255780126025822 +interrupts_intr_per_s,device=i015 value=1 1459255780126025822 +inode_inode-nr value=94709 1459255780126025822 +inode_pty-nr value=14 1459255780126025822 +mem_util_pct_memused value=69.87 1459255780126025822 +mem_util_kbbuffers value=118252 1459255780126025822 +mem_util_kbcached value=1045240 1459255780126025822 +mem_util_kbcommit value=9628152 1459255780126025822 +mem_util_pct_commit value=150.35 1459255780126025822 +mem_util_kbactive value=2303752 1459255780126025822 +mem_util_kbinact value=428340 1459255780126025822 +mem_util_kbdirty value=104 1459255780126025822 +mem_util_kbanonpg value=1568676 1459255780126025822 +mem_util_kbslab value=240032 1459255780126025822 +mem_util_kbkstack value=26224 1459255780126025822 +mem_util_kbpgtbl value=98056 1459255780126025822 +mem_util_kbvmused value=0 1459255780126025822 +disk_wr_sec_per_s,device=sda,vg=rootvg value=38 1459255780126025822 +disk_avgrq-sz,device=sda,vg=rootvg value=76 1459255780126025822 +disk_avgqu-sz,device=sda,vg=rootvg value=0 1459255780126025822 +disk_await,device=sda,vg=rootvg value=2 1459255780126025822 +disk_svctm,device=sda,vg=rootvg value=2 1459255780126025822 +disk_pct_util,device=sda,vg=rootvg value=0.1 1459255780126025822 +network_rxkB_per_s,device=ens33 value=0 1459255780126025822 +network_txkB_per_s,device=ens33 value=0 1459255780126025822 +network_rxcmp_per_s,device=ens33 value=0 1459255780126025822 +network_txcmp_per_s,device=ens33 value=0 1459255780126025822 +network_rxmcst_per_s,device=ens33 value=0 1459255780126025822 +network_pct_ifutil,device=ens33 value=0 1459255780126025822 +network_rxpck_per_s,device=lo value=10.75 1459255780126025822 +network_txpck_per_s,device=lo value=10.75 1459255780126025822 +network_rxkB_per_s,device=lo value=0.77 1459255780126025822 +network_txkB_per_s,device=lo value=0.77 1459255780126025822 +network_rxcmp_per_s,device=lo value=0 1459255780126025822 +network_txcmp_per_s,device=lo value=0 1459255780126025822 +network_rxmcst_per_s,device=lo value=0 1459255780126025822 +network_pct_ifutil,device=lo value=0 1459255780126025822 +network_rxerr_per_s,device=ens33 value=0 1459255780126025822 +network_txerr_per_s,device=ens33 value=0 1459255780126025822 +network_coll_per_s,device=ens33 value=0 1459255780126025822 +network_rxdrop_per_s,device=ens33 value=0 1459255780126025822 +network_txdrop_per_s,device=ens33 value=0 1459255780126025822 +network_txcarr_per_s,device=ens33 value=0 1459255780126025822 +network_rxfram_per_s,device=ens33 value=0 1459255780126025822 +network_rxfifo_per_s,device=ens33 value=0 1459255780126025822 +network_txfifo_per_s,device=ens33 value=0 1459255780126025822 +network_rxerr_per_s,device=lo value=0 1459255780126025822 +network_txerr_per_s,device=lo value=0 1459255780126025822 +network_coll_per_s,device=lo value=0 1459255780126025822 +network_rxdrop_per_s,device=lo value=0 1459255780126025822 +network_txdrop_per_s,device=lo value=0 1459255780126025822 +network_txcarr_per_s,device=lo value=0 1459255780126025822 +network_rxfram_per_s,device=lo value=0 1459255780126025822 +network_rxfifo_per_s,device=lo value=0 1459255780126025822 +network_txfifo_per_s,device=lo value=0 1459255780126025822 +network_call_per_s value=0 1459255780126025822 +network_retrans_per_s value=0 1459255780126025822 +network_read_per_s value=0 1459255780126025822 +network_write_per_s value=0 1459255780126025822 +network_access_per_s value=0 1459255780126025822 +network_getatt_per_s value=0 1459255780126025822 +network_scall_per_s value=0 1459255780126025822 +network_badcall_per_s value=0 1459255780126025822 +network_packet_per_s value=0 1459255780126025822 +network_udp_per_s value=0 1459255780126025822 +network_tcp_per_s value=0 1459255780126025822 +network_hit_per_s value=0 1459255780126025822 +network_miss_per_s value=0 1459255780126025822 +network_sread_per_s value=0 1459255780126025822 +network_swrite_per_s value=0 1459255780126025822 +network_saccess_per_s value=0 1459255780126025822 +network_sgetatt_per_s value=0 1459255780126025822 +network_totsck value=4234 1459255780126025822 +network_tcpsck value=1637 1459255780126025822 +network_udpsck value=2 1459255780126025822 +network_rawsck value=0 1459255780126025822 +network_ip-frag value=0 1459255780126025822 +network_tcp-tw value=4 1459255780126025822 +network_irec_per_s value=10.75 1459255780126025822 +network_fwddgm_per_s value=0 1459255780126025822 +network_idel_per_s value=10.75 1459255780126025822 +network_orq_per_s value=10.75 1459255780126025822 +network_asmrq_per_s value=0 1459255780126025822 +network_asmok_per_s value=0 1459255780126025822 +network_fragok_per_s value=0 1459255780126025822 +network_fragcrt_per_s value=0 1459255780126025822 +network_ihdrerr_per_s value=0 1459255780126025822 +network_iadrerr_per_s value=0 1459255780126025822 +network_iukwnpr_per_s value=0 1459255780126025822 +network_idisc_per_s value=0 1459255780126025822 +network_odisc_per_s value=0 1459255780126025822 +network_onort_per_s value=0 1459255780126025822 +network_asmf_per_s value=0 1459255780126025822 +network_fragf_per_s value=0 1459255780126025822 +network_imsg_per_s value=0 1459255780126025822 +network_omsg_per_s value=0 1459255780126025822 +network_iech_per_s value=0 1459255780126025822 +network_iechr_per_s value=0 1459255780126025822 +network_oech_per_s value=0 1459255780126025822 +network_oechr_per_s value=0 1459255780126025822 +network_itm_per_s value=0 1459255780126025822 +network_itmr_per_s value=0 1459255780126025822 +network_otm_per_s value=0 1459255780126025822 +network_otmr_per_s value=0 1459255780126025822 +network_iadrmk_per_s value=0 1459255780126025822 +network_iadrmkr_per_s value=0 1459255780126025822 +network_oadrmk_per_s value=0 1459255780126025822 +network_oadrmkr_per_s value=0 1459255780126025822 +network_ierr_per_s value=0 1459255780126025822 +network_oerr_per_s value=0 1459255780126025822 +network_idstunr_per_s value=0 1459255780126025822 +network_odstunr_per_s value=0 1459255780126025822 +network_itmex_per_s value=0 1459255780126025822 +network_otmex_per_s value=0 1459255780126025822 +network_iparmpb_per_s value=0 1459255780126025822 +network_oparmpb_per_s value=0 1459255780126025822 +network_isrcq_per_s value=0 1459255780126025822 +network_osrcq_per_s value=0 1459255780126025822 +network_iredir_per_s value=0 1459255780126025822 +network_oredir_per_s value=0 1459255780126025822 +network_active_per_s value=0 1459255780126025822 +network_passive_per_s value=0 1459255780126025822 +network_iseg_per_s value=10.75 1459255780126025822 +network_oseg_per_s value=9.5 1459255780126025822 +network_atmptf_per_s value=0 1459255780126025822 +network_estres_per_s value=0 1459255780126025822 +network_retrans_per_s value=1.5 1459255780126025822 +network_isegerr_per_s value=0.25 1459255780126025822 +network_orsts_per_s value=0 1459255780126025822 +network_idgm_per_s value=0 1459255780126025822 +network_odgm_per_s value=0 1459255780126025822 +network_noport_per_s value=0 1459255780126025822 +network_idgmerr_per_s value=0 1459255780126025822 +queue_ldavg-1 value=2.1 1459255780126025822 +queue_ldavg-5 value=1.82 1459255780126025822 +queue_ldavg-15 value=1.44 1459255780126025822 +queue_blocked value=0 1459255780126025822 +swap_util_kbswpfree value=1048572 1459255780126025822 +swap_util_kbswpused value=0 1459255780126025822 +swap_util_pct_swpused value=0 1459255780126025822 +swap_util_kbswpcad value=0 1459255780126025822 +swap_util_pct_swpcad value=0 1459255780126025822 ``` diff --git a/src/writeData/components/telegrafPlugins/system.md b/src/writeData/components/telegrafPlugins/system.md index 0f2058a790..a16d878241 100644 --- a/src/writeData/components/telegrafPlugins/system.md +++ b/src/writeData/components/telegrafPlugins/system.md @@ -1,9 +1,20 @@ # System Input Plugin -The system plugin gathers general stats on system load, uptime, -and number of users logged in. It is similar to the unix `uptime` command. +This plugin gathers general system statistics like system load, uptime or the +number of users logged in. It is similar to the unix `uptime` command. -Number of CPUs is obtained from the /proc/cpuinfo file. +⭐ Telegraf v0.1.6 +🏷️ system +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -19,6 +30,10 @@ The `n_users` field requires read access to `/var/run/utmp`, and may require the `telegraf` user to be added to the `utmp` group on some systems. If this file does not exist `n_users` will be skipped. +The `n_unique_users` shows the count of unique usernames logged in. This way if +a user has multiple sessions open/started they would only get counted once. The +same requirements for `n_users` apply. + ## Metrics - system @@ -27,13 +42,14 @@ does not exist `n_users` will be skipped. - load15 (float) - load5 (float) - n_users (integer) + - n_unique_users (integer) - n_cpus (integer) - uptime (integer, seconds) - uptime_format (string, deprecated in 1.10, use `uptime` field) ## Example Output -```shell +```text system,host=tyrion load1=3.72,load5=2.4,load15=2.1,n_users=3i,n_cpus=4i 1483964144000000000 system,host=tyrion uptime=1249632i 1483964144000000000 system,host=tyrion uptime_format="14 days, 11:07" 1483964144000000000 diff --git a/src/writeData/components/telegrafPlugins/systemd_units.md b/src/writeData/components/telegrafPlugins/systemd_units.md index bea6d2363e..2b97a6c347 100644 --- a/src/writeData/components/telegrafPlugins/systemd_units.md +++ b/src/writeData/components/telegrafPlugins/systemd_units.md @@ -1,55 +1,109 @@ -# systemd Units Input Plugin +# Systemd-Units Input Plugin -The systemd_units plugin gathers systemd unit status on Linux. It relies on -`systemctl list-units [PATTERN] --all --plain --type=service` to collect data on -service status. +This plugin gathers the status of systemd-units on Linux, using systemd's DBus +interface. -The results are tagged with the unit name and provide enumerated fields for -loaded, active and running fields, indicating the unit health. +> [!NOTE] +> This plugin requires systemd v230+! -This plugin is related to the [win_services module](../win_services/README.md), -which fulfills the same purpose on windows. +⭐ Telegraf v1.13.0 +🏷️ system +💻 linux -In addition to services, this plugin can gather other unit types as well, -see `systemctl list-units --all --type help` for possible options. +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf -# Gather systemd units state +# Gather information about systemd-unit states +# This plugin ONLY supports Linux [[inputs.systemd_units]] - ## Set timeout for systemctl execution - # timeout = "1s" - # - ## Filter for a specific unit type, default is "service", other possible - ## values are "socket", "target", "device", "mount", "automount", "swap", - ## "timer", "path", "slice" and "scope ": + ## Pattern of units to collect + ## A space-separated list of unit-patterns including wildcards determining + ## the units to collect. + ## ex: pattern = "telegraf* influxdb* user@*" + # pattern = "*" + + ## Filter for a specific unit type + ## Available settings are: service, socket, target, device, mount, + ## automount, swap, timer, path, slice and scope # unittype = "service" - # - ## Filter for a specific pattern, default is "" (i.e. all), other possible - ## values are valid pattern for systemctl, e.g. "a*" for all units with - ## names starting with "a" - # pattern = "" - ## pattern = "telegraf* influxdb*" - ## pattern = "a*" + + ## Collect system or user scoped units + ## ex: scope = "user" + # scope = "system" + + ## Collect also units not loaded by systemd, i.e. disabled or static units + ## Enabling this feature might introduce significant load when used with + ## unspecific patterns (such as '*') as systemd will need to load all + ## matching unit files. + # collect_disabled_units = false + + ## Collect detailed information for the units + # details = false + + ## Timeout for state-collection + # timeout = "5s" ``` +This plugin supports two modes of operation: + +### Non-detailed mode + +This is the default mode, collecting data on the unit's status only without +further details on the unit. + +### Detailed mode + +This mode can be enabled by setting the configuration option `details` to +`true`. In this mode the plugin collects all information of the non-detailed +mode but provides additional unit information such as memory usage, +restart-counts, PID, etc. See the [metrics section](#metrics) below for a list +of all properties collected. + ## Metrics +These metrics are available in both modes: + - systemd_units: - tags: - name (string, unit name) - load (string, load state) - active (string, active state) - sub (string, sub state) + - user (string, username only for user scope) - fields: - load_code (int, see below) - active_code (int, see below) - sub_code (int, see below) +The following *additional* metrics are available with `details = true`: + +- systemd_units: + - tags: + - state (string, unit file state) + - preset (string, unit file preset state) + - fields: + - status_errno (int, last error) + - restarts (int, number of restarts) + - pid (int, pid of the main process) + - mem_current (uint, current memory usage) + - mem_peak (uint, peak memory usage) + - swap_current (uint, current swap usage) + - swap_peak (uint, peak swap usage) + - mem_avail (uint, available memory for this unit) + - active_enter_timestamp_us (uint, timestamp in us when entered the state) + ### Load -enumeration of [unit_load_state_table][1] +Enumeration of [unit_load_state_table][1] | Value | Meaning | Description | | ----- | ------- | ----------- | @@ -65,7 +119,7 @@ enumeration of [unit_load_state_table][1] ### Active -enumeration of [unit_active_state_table][2] +Enumeration of [unit_active_state_table][2] | Value | Meaning | Description | | ----- | ------- | ----------- | @@ -100,8 +154,17 @@ were removed, tables are hex aligned to keep some space for future values | 0x000b | final-sigterm | unit is ~ | | 0x000c | failed | unit is ~ | | 0x000d | auto-restart | unit is ~ | +| 0x000e | condition | unit is ~ | +| 0x000f | cleaning | unit is ~ | | | | service_state_table start at 0x0010 | | 0x0010 | waiting | unit is ~ | +| 0x0011 | reload-signal | unit is ~ | +| 0x0012 | reload-notify | unit is ~ | +| 0x0013 | final-watchdog | unit is ~ | +| 0x0014 | dead-before-auto-restart | unit is ~ | +| 0x0015 | failed-before-auto-restart | unit is ~ | +| 0x0016 | dead-resources-pinned | unit is ~ | +| 0x0017 | auto-restart-queued | unit is ~ | | | | service_state_table start at 0x0020 | | 0x0020 | tentative | unit is ~ | | 0x0021 | plugged | unit is ~ | @@ -143,9 +206,18 @@ were removed, tables are hex aligned to keep some space for future values ## Example Output -```shell -systemd_units,host=host1.example.com,name=dbus.service,load=loaded,active=active,sub=running load_code=0i,active_code=0i,sub_code=0i 1533730725000000000 -systemd_units,host=host1.example.com,name=networking.service,load=loaded,active=failed,sub=failed load_code=0i,active_code=3i,sub_code=12i 1533730725000000000 -systemd_units,host=host1.example.com,name=ssh.service,load=loaded,active=active,sub=running load_code=0i,active_code=0i,sub_code=0i 1533730725000000000 -... +### Output in non-detailed mode + +```text +systemd_units,host=host1.example.com,name=dbus.service,load=loaded,active=active,sub=running,user=telegraf load_code=0i,active_code=0i,sub_code=0i 1533730725000000000 +systemd_units,host=host1.example.com,name=networking.service,load=loaded,active=failed,sub=failed,user=telegraf load_code=0i,active_code=3i,sub_code=12i 1533730725000000000 +systemd_units,host=host1.example.com,name=ssh.service,load=loaded,active=active,sub=running,user=telegraf load_code=0i,active_code=0i,sub_code=0i 1533730725000000000 +``` + +### Output in detailed mode + +```text +systemd_units,active=active,host=host1.example.com,load=loaded,name=dbus.service,sub=running,preset=disabled,state=static,user=telegraf active_code=0i,load_code=0i,mem_avail=6470856704i,mem_current=2691072i,mem_peak=3895296i,pid=481i,restarts=0i,status_errno=0i,sub_code=0i,swap_current=794624i,swap_peak=884736i 1533730725000000000 +systemd_units,active=inactive,host=host1.example.com,load=not-found,name=networking.service,sub=dead,user=telegraf active_code=2i,load_code=2i,pid=0i,restarts=0i,status_errno=0i,sub_code=1i 1533730725000000000 +systemd_units,active=active,host=host1.example.com,load=loaded,name=pcscd.service,sub=running,preset=disabled,state=indirect,user=telegraf active_code=0i,load_code=0i,mem_avail=6370541568i,mem_current=512000i,mem_peak=4399104i,pid=1673i,restarts=0i,status_errno=0i,sub_code=0i,swap_current=3149824i,swap_peak=3149824i 1533730725000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/tail.md b/src/writeData/components/telegrafPlugins/tail.md index 37753cb70d..9bb79f75d0 100644 --- a/src/writeData/components/telegrafPlugins/tail.md +++ b/src/writeData/components/telegrafPlugins/tail.md @@ -1,23 +1,35 @@ # Tail Input Plugin -The tail plugin "tails" a logfile and parses each log message. +This service plugin continuously reads a file and parses new data as it arrives +similar to the [tail -f command][tail]. The incoming messages are expected to be +in one of the supported [data formats][data_formats]. -By default, the tail plugin acts like the following unix tail command: +⭐ Telegraf v1.1.2 +🏷️ logging +💻 all -```shell -tail -F --lines=0 myfile.log -``` +[tail]: https://man7.org/linux/man-pages/man1/tail.1.html +[data_formats]: /docs/DATA_FORMATS_INPUT.md + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin -- `-F` means that it will follow the _name_ of the given file, so -that it will be compatible with log-rotated files, and that it will retry on -inaccessible files. -- `--lines=0` means that it will start at the end of the file (unless -the `from_beginning` option is set). +## Global configuration options -see for more details. +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. -The plugin expects messages in one of the [Telegraf Input Data -Formats](https://github.com/influxdata/telegraf/tree/master/docs/DATA_FORMATS_INPUT.md). +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -36,13 +48,20 @@ Formats](https://github.com/influxdata/telegraf/tree/master/docs/DATA_FORMATS_IN ## files = ["/var/mymetrics.out"] - ## Read file from beginning. - # from_beginning = false + ## Offset to start reading at + ## The following methods are available: + ## beginning -- start reading from the beginning of the file ignoring any persisted offset + ## end -- start reading from the end of the file ignoring any persisted offset + ## saved-or-beginning -- use the persisted offset of the file or, if no offset persisted, start from the beginning of the file + ## saved-or-end -- use the persisted offset of the file or, if no offset persisted, start from the end of the file + # initial_read_offset = "saved-or-end" ## Whether file is a named pipe # pipe = false ## Method used to watch for file updates. Can be either "inotify" or "poll". + ## inotify is supported on linux, *bsd, and macOS, while Windows requires + ## using poll. Poll checks for changes every 250ms. # watch_method = "inotify" ## Maximum lines of the file to process that have not yet be written by the @@ -86,6 +105,20 @@ Formats](https://github.com/influxdata/telegraf/tree/master/docs/DATA_FORMATS_IN ## If true, a message not matching the pattern will constitute a match of the multiline filter and the what will be applied. (vice-versa is also true) #invert_match = false + ## The handling method for quoted text (defaults to 'ignore'). + ## The following methods are available: + ## ignore -- do not consider quotation (default) + ## single-quotes -- consider text quoted by single quotes (') + ## double-quotes -- consider text quoted by double quotes (") + ## backticks -- consider text quoted by backticks (`) + ## When handling quotes, escaped quotes (e.g. \") are handled correctly. + #quotation = "ignore" + + ## The preserve_newline option can be true or false (defaults to false). + ## If true, the newline character is preserved for multiline elements, + ## this is useful to preserve message-structure e.g. for logging outputs. + #preserve_newline = false + #After the specified timeout, this plugin sends the multiline event even if no new pattern is found to start a new event. The default is 5s. #timeout = 5s ``` @@ -94,3 +127,7 @@ Formats](https://github.com/influxdata/telegraf/tree/master/docs/DATA_FORMATS_IN Metrics are produced according to the `data_format` option. Additionally a tag labeled `path` is added to the metric containing the filename being tailed. + +## Example Output + +There is no predefined metric format, so output depends on plugin input. diff --git a/src/writeData/components/telegrafPlugins/teamspeak.md b/src/writeData/components/telegrafPlugins/teamspeak.md index 43eed483b8..159ed6b531 100644 --- a/src/writeData/components/telegrafPlugins/teamspeak.md +++ b/src/writeData/components/telegrafPlugins/teamspeak.md @@ -1,13 +1,27 @@ -# Teamspeak 3 Input Plugin +# Teamspeak Input Plugin -This plugin uses the Teamspeak 3 ServerQuery interface of the Teamspeak server -to collect statistics of one or more virtual servers. If you are querying an -external Teamspeak server, make sure to add the host which is running Telegraf -to query_ip_allowlist.txt in the Teamspeak Server directory. For information -about how to configure the server take a look the [Teamspeak 3 ServerQuery -Manual][1]. +This plugin collects statistics of one or more virtual [Teamspeak][teamspeak] +servers using the `ServerQuery` interface. Currently this plugin only supports +Teamspeak 3 servers. -[1]: http://media.teamspeak.com/ts3_literature/TeamSpeak%203%20Server%20Query%20Manual.pdf +> [!NOTE] +> For querying external Teamspeak server, make sure to add the Telegraf host +> to the `query_ip_allowlist.txt` file in the Teamspeak Server directory. + +⭐ Telegraf v1.5.0 +🏷️ server +💻 all + +[teamspeak]: https://www.teamspeak.com + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -26,6 +40,13 @@ Manual][1]. # virtual_servers = [1] ``` +### Teamspeak configuration + +For information about how to configure the Teamspeak server take a look at +the [Teamspeak 3 ServerQuery Manual][manual]. + +[manual]: http://media.teamspeak.com/ts3_literature/TeamSpeak%203%20Server%20Query%20Manual.pdf + ## Metrics - teamspeak @@ -47,6 +68,6 @@ Manual][1]. ## Example Output -```shell +```text teamspeak,virtual_server=1,name=LeopoldsServer,host=vm01 bytes_received_total=29638202639i,uptime=13567846i,total_ping=26.89,total_packet_loss=0,packets_sent_total=415821252i,packets_received_total=237069900i,bytes_sent_total=55309568252i,clients_online=11i,query_clients_online=1i 1507406561000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/temp.md b/src/writeData/components/telegrafPlugins/temp.md index b61c435fa1..188689ca6f 100644 --- a/src/writeData/components/telegrafPlugins/temp.md +++ b/src/writeData/components/telegrafPlugins/temp.md @@ -1,26 +1,35 @@ # Temperature Input Plugin -The temp input plugin gather metrics on system temperature. This plugin is -meant to be multi platform and uses platform specific collection methods. +This plugin gathers metrics on system temperatures. -Currently supports Linux and Windows. +⭐ Telegraf v1.8.0 +🏷️ hardware, system +💻 linux, macos, windows + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read metrics about temperature [[inputs.temp]] - # no configuration + ## Desired output format (Linux only) + ## Available values are + ## v1 -- use pre-v1.22.4 sensor naming, e.g. coretemp_core0_input + ## v2 -- use v1.22.4+ sensor naming, e.g. coretemp_core_0_input + # metric_format = "v2" + + ## Add device tag to distinguish devices with the same name (Linux only) + # add_device_tag = false ``` -## Metrics - -- temp - - tags: - - sensor - - fields: - - temp (float, celcius) - ## Troubleshooting On **Windows**, the plugin uses a WMI call that is can be replicated with the @@ -30,9 +39,22 @@ following command: wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature ``` +If the result is "Not Supported" you may be running in a virtualized environment +and not a physical machine. Additionally, if you still get this result your +motherboard or system may not support querying these values. Finally, you may +be required to run as admin to get the values. + +## Metrics + +- temp + - tags: + - sensor + - fields: + - temp (float, celcius) + ## Example Output -```shell +```text temp,sensor=coretemp_physicalid0_crit temp=100 1531298763000000000 temp,sensor=coretemp_physicalid0_critalarm temp=0 1531298763000000000 temp,sensor=coretemp_physicalid0_input temp=100 1531298763000000000 diff --git a/src/writeData/components/telegrafPlugins/tengine.md b/src/writeData/components/telegrafPlugins/tengine.md index 642aaae2f4..bc19655a84 100644 --- a/src/writeData/components/telegrafPlugins/tengine.md +++ b/src/writeData/components/telegrafPlugins/tengine.md @@ -1,8 +1,23 @@ -# Tengine Input Plugin +# Tengine Web Server Input Plugin -The tengine plugin gathers metrics from the -[Tengine Web Server](http://tengine.taobao.org/) via the -[reqstat](http://tengine.taobao.org/document/http_reqstat.html) module. +This plugin gathers metrics from the [Tengine Web Server][tengine] via the +[reqstat][reqstat] module. + +⭐ Telegraf v1.8.0 +🏷️ server, web +💻 all + +[tengine]: http://tengine.taobao.org +[reqstat]: http://tengine.taobao.org/document/http_reqstat.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -57,12 +72,13 @@ The tengine plugin gathers metrics from the - http_503 (integer, total number of 503 requests) - http_504 (integer, total number of 504 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) ## Example Output -```shell +```text tengine,host=gcp-thz-api-5,port=80,server=localhost,server_name=localhost bytes_in=9129i,bytes_out=56334i,conn_total=14i,http_200=90i,http_206=0i,http_2xx=90i,http_302=0i,http_304=0i,http_3xx=0i,http_403=0i,http_404=0i,http_416=0i,http_499=0i,http_4xx=0i,http_500=0i,http_502=0i,http_503=0i,http_504=0i,http_508=0i,http_5xx=0i,http_other_detail_status=0i,http_other_status=0i,http_ups_4xx=0i,http_ups_5xx=0i,req_total=90i,rt=0i,ups_req=0i,ups_rt=0i,ups_tries=0i 1526546308000000000 tengine,host=gcp-thz-api-5,port=80,server=localhost,server_name=28.79.190.35.bc.googleusercontent.com bytes_in=1500i,bytes_out=3009i,conn_total=4i,http_200=1i,http_206=0i,http_2xx=1i,http_302=0i,http_304=0i,http_3xx=0i,http_403=0i,http_404=1i,http_416=0i,http_499=0i,http_4xx=3i,http_500=0i,http_502=0i,http_503=0i,http_504=0i,http_508=0i,http_5xx=0i,http_other_detail_status=0i,http_other_status=0i,http_ups_4xx=0i,http_ups_5xx=0i,req_total=4i,rt=0i,ups_req=0i,ups_rt=0i,ups_tries=0i 1526546308000000000 tengine,host=gcp-thz-api-5,port=80,server=localhost,server_name=www.google.com bytes_in=372i,bytes_out=786i,conn_total=1i,http_200=1i,http_206=0i,http_2xx=1i,http_302=0i,http_304=0i,http_3xx=0i,http_403=0i,http_404=0i,http_416=0i,http_499=0i,http_4xx=0i,http_500=0i,http_502=0i,http_503=0i,http_504=0i,http_508=0i,http_5xx=0i,http_other_detail_status=0i,http_other_status=0i,http_ups_4xx=0i,http_ups_5xx=0i,req_total=1i,rt=0i,ups_req=0i,ups_rt=0i,ups_tries=0i 1526546308000000000 diff --git a/src/writeData/components/telegrafPlugins/tomcat.md b/src/writeData/components/telegrafPlugins/tomcat.md index 6022644eda..381cb61c08 100644 --- a/src/writeData/components/telegrafPlugins/tomcat.md +++ b/src/writeData/components/telegrafPlugins/tomcat.md @@ -1,12 +1,24 @@ -# Tomcat Input Plugin +# Apache Tomcat Input Plugin -The Tomcat plugin collects statistics available from the tomcat manager status -page from the `http:///manager/status/all?XML=true URL.` (`XML=true` will -return only xml data). +This plugin collects statistics from a [Tomcat server][tomcat] instance using +the manager status page. See the [Tomcat documentation][status_docs] for +details of these statistics. -See the [Tomcat documentation][1] for details of these statistics. +⭐ Telegraf v1.4.0 +🏷️ server, web +💻 all -[1]: https://tomcat.apache.org/tomcat-9.0-doc/manager-howto.html#Server_Status +[tomcat]: https://tomcat.apache.org +[status_docs]: https://tomcat.apache.org/tomcat-9.0-doc/manager-howto.html#Server_Status + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -34,41 +46,40 @@ See the [Tomcat documentation][1] for details of these statistics. ## Metrics - tomcat_jvm_memory - - free - - total - - max + - tags + - source + - fields + - free + - max + - total - tomcat_jvm_memorypool - - max_threads - - current_thread_count - - current_threads_busy - - max_time - - processing_time - - request_count - - error_count - - bytes_received - - bytes_sent -- tomcat_connector - - max_threads - - current_thread_count - - current_thread_busy - - max_time - - processing_time - - request_count - - error_count - - bytes_received - - bytes_sent - -### Tags - -- tomcat_jvm_memorypool has the following tags: - - name - - type + - tags + - name + - type + - source + - fields + - committed + - init + - max + - used - tomcat_connector - - name + - tags + - name + - source + - fields + - bytes_received + - bytes_sent + - current_thread_busy + - current_thread_count + - error_count + - max_threads + - max_time + - processing_time + - request_count ## Example Output -```shell +```text tomcat_jvm_memory,host=N8-MBP free=20014352i,max=127729664i,total=41459712i 1474663361000000000 tomcat_jvm_memorypool,host=N8-MBP,name=Eden\ Space,type=Heap\ memory committed=11534336i,init=2228224i,max=35258368i,used=1941200i 1474663361000000000 tomcat_jvm_memorypool,host=N8-MBP,name=Survivor\ Space,type=Heap\ memory committed=1376256i,init=262144i,max=4390912i,used=1376248i 1474663361000000000 diff --git a/src/writeData/components/telegrafPlugins/trig.md b/src/writeData/components/telegrafPlugins/trig.md index 7e5e0854c8..c9d7f6e060 100644 --- a/src/writeData/components/telegrafPlugins/trig.md +++ b/src/writeData/components/telegrafPlugins/trig.md @@ -1,6 +1,20 @@ # Trig Input Plugin -The `trig` plugin is for demonstration purposes and inserts sine and cosine +This plugin is for demonstration purposes and inserts sine and cosine values +as metrics. + +⭐ Telegraf v0.3.0 +🏷️ testing +💻 all + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -20,7 +34,7 @@ The `trig` plugin is for demonstration purposes and inserts sine and cosine ## Example Output -```shell +```text trig,host=MBP15-SWANG.local cosine=10,sine=0 1632338680000000000 trig,host=MBP15-SWANG.local sine=5.877852522924732,cosine=8.090169943749473 1632338690000000000 trig,host=MBP15-SWANG.local sine=9.510565162951535,cosine=3.0901699437494745 1632338700000000000 diff --git a/src/writeData/components/telegrafPlugins/twemproxy.md b/src/writeData/components/telegrafPlugins/twemproxy.md index 598ca0562b..d88205a47b 100644 --- a/src/writeData/components/telegrafPlugins/twemproxy.md +++ b/src/writeData/components/telegrafPlugins/twemproxy.md @@ -1,7 +1,21 @@ # Twemproxy Input Plugin -The `twemproxy` plugin gathers statistics from -[Twemproxy](https://github.com/twitter/twemproxy) servers. +This plugin gathers statistics from [Twemproxy][twemproxy] servers. + +⭐ Telegraf v0.3.0 +🏷️ server +💻 all + +[twemproxy]: https://github.com/twitter/twemproxy + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -13,3 +27,57 @@ The `twemproxy` plugin gathers statistics from ## Monitor pool name pools = ["redis_pool", "mc_pool"] ``` + +## Metrics + +- twemproxy + - tags + - source + - twemproxy + - fields + - curr_connections (float) + - timestamp (float) + - total_connections (float) + +- twemproxy_pool + - tags + - pool + - source + - twemproxy + - fields + - client_connections (float) + - client_eof (float) + - client_err (float) + - forward_error (float) + - fragments (float) + - server_ejects (float) + +- twemproxy_pool_server + - tags + - pool + - server + - source + - twemproxy + - fields + - in_queue (float) + - in_queue_bytes (float) + - out_queue (float) + - out_queue_bytes (float) + - requests (float) + - request_bytes (float) + - responses (float) + - response_bytes (float) + - server_connections (float) + - server_ejected_at (float) + - server_eof (float) + - server_err (float) + - server_timedout (float) + +## Example Output + +```text +twemproxy,source=server1.website.com,twemproxy=127.0.0.1:22222 curr_connections=1322,timestamp=1447312436,total_connections=276448 1748893350082522719 +twemproxy_pool_server,pool=demo,server=10.16.29.1:6379,source=server1.website.com,twemproxy=127.0.0.1:22222 in_queue=0,in_queue_bytes=0,out_queue=0,out_queue_bytes=0,request_bytes=2775840400,requests=43604566,response_bytes=7663182096,responses=43603900,server_connections=1,server_ejected_at=0,server_eof=0,server_err=0,server_timedout=24 1748893350082546069 +twemproxy_pool_server,pool=demo,server=10.16.29.2:6379,source=server1.website.com,twemproxy=127.0.0.1:22222 in_queue=0,in_queue_bytes=0,out_queue=0,out_queue_bytes=0,request_bytes=2412114759,requests=37870211,response_bytes=5228980582,responses=37869551,server_connections=1,server_ejected_at=0,server_eof=0,server_err=0,server_timedout=25 1748893350082560329 +twemproxy_pool,pool=demo,source=server1.website.com,twemproxy=127.0.0.1:22222 client_connections=1305,client_eof=126813,client_err=147942,forward_error=11684,fragments=0,server_ejects=0 1748893350082572369 +``` diff --git a/src/writeData/components/telegrafPlugins/unbound.md b/src/writeData/components/telegrafPlugins/unbound.md index 23fc3a5018..b068269834 100644 --- a/src/writeData/components/telegrafPlugins/unbound.md +++ b/src/writeData/components/telegrafPlugins/unbound.md @@ -1,7 +1,21 @@ # Unbound Input Plugin -This plugin gathers stats from [Unbound](https://www.unbound.net/) - -a validating, recursive, and caching DNS resolver. +This plugin gathers stats from an [Unbound][unbound] DNS resolver. + +⭐ Telegraf v1.5.0 +🏷️ server, network +💻 all + +[unbound]: https://www.unbound.net + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -30,6 +44,9 @@ a validating, recursive, and caching DNS resolver. ## true in a future version. It is recommended to set to true on new ## deployments. thread_as_tag = false + + ## Collect metrics with the histogram of the recursive query times: + # histogram = false ``` ### Permissions @@ -39,7 +56,7 @@ require additional permissions to execute successfully. Depending on the user/group permissions of the telegraf user executing this plugin, you may need to alter the group membership, set facls, or use sudo. -**Group membership (Recommended)**: +#### Group membership (recommended) ```bash $ groups telegraf @@ -51,7 +68,8 @@ $ groups telegraf telegraf : telegraf unbound ``` -**Sudo privileges**: +#### Sudo privileges + If you use this method, you will need the following in your telegraf config: ```toml @@ -74,11 +92,11 @@ Please use the solution you see as most appropriate. ## Metrics This is the full list of stats provided by unbound-control and potentially -collected depending of your unbound configuration. Histogram related statistics -will never be collected, extended statistics can also be imported -("extended-statistics: yes" in unbound configuration). In the output, the dots -in the unbound-control stat name are replaced by underscores(see - for details). +collected depending of your unbound configuration. Extended statistics can also +be imported ("extended-statistics: yes" in unbound configuration). In the +output, the dots in the unbound-control stat name are replaced by +underscores(see for +details). Shown metrics are with `thread_as_tag` enabled. @@ -153,9 +171,55 @@ Shown metrics are with `thread_as_tag` enabled. - recursion_time_avg - recursion_time_median +If `histogram` is set to true, the following metrics are also collected, with +the field name indicating the lower bound of each histogram bin: + +- unbound: + - fields: + histogram_.000000 + histogram_.000001 + histogram_.000002 + histogram_.000004 + histogram_.000008 + histogram_.000016 + histogram_.000032 + histogram_.000064 + histogram_.000128 + histogram_.000256 + histogram_.000512 + histogram_.001024 + histogram_.002048 + histogram_.004096 + histogram_.008192 + histogram_.016384 + histogram_.032768 + histogram_.065536 + histogram_.131072 + histogram_.262144 + histogram_.524288 + histogram_1.000000 + histogram_2.000000 + histogram_4.000000 + histogram_8.000000 + histogram_16.000000 + histogram_32.000000 + histogram_64.000000 + histogram_128.000000 + histogram_256.000000 + histogram_512.000000 + histogram_1024.000000 + histogram_2048.000000 + histogram_4096.000000 + histogram_8192.000000 + histogram_16384.000000 + histogram_32768.000000 + histogram_65536.000000 + histogram_131072.000000 + histogram_262144.000000 + ## Example Output -```shell +```text unbound,host=localhost total_requestlist_avg=0,total_requestlist_exceeded=0,total_requestlist_overwritten=0,total_requestlist_current_user=0,total_recursion_time_avg=0.029186,total_tcpusage=0,total_num_queries=51,total_num_queries_ip_ratelimited=0,total_num_recursivereplies=6,total_requestlist_max=0,time_now=1522804978.784814,time_elapsed=310.435217,total_num_cachemiss=6,total_num_zero_ttl=0,time_up=310.435217,total_num_cachehits=45,total_num_prefetch=0,total_requestlist_current_all=0,total_recursion_time_median=0.016384 1522804979000000000 unbound_threads,host=localhost,thread=0 num_queries_ip_ratelimited=0,requestlist_current_user=0,recursion_time_avg=0.029186,num_prefetch=0,requestlist_overwritten=0,requestlist_exceeded=0,requestlist_current_all=0,tcpusage=0,num_cachehits=37,num_cachemiss=6,num_recursivereplies=6,requestlist_avg=0,num_queries=43,num_zero_ttl=0,requestlist_max=0,recursion_time_median=0.032768 1522804979000000000 unbound_threads,host=localhost,thread=1 num_zero_ttl=0,recursion_time_avg=0,num_queries_ip_ratelimited=0,num_cachehits=8,num_prefetch=0,requestlist_exceeded=0,recursion_time_median=0,tcpusage=0,num_cachemiss=0,num_recursivereplies=0,requestlist_max=0,requestlist_overwritten=0,requestlist_current_user=0,num_queries=8,requestlist_avg=0,requestlist_current_all=0 1522804979000000000 diff --git a/src/writeData/components/telegrafPlugins/upsd.md b/src/writeData/components/telegrafPlugins/upsd.md index 709cf50c1a..ca98ad677e 100644 --- a/src/writeData/components/telegrafPlugins/upsd.md +++ b/src/writeData/components/telegrafPlugins/upsd.md @@ -1,11 +1,22 @@ # UPSD Input Plugin -This plugin reads data of one or more Uninterruptible Power Supplies -from an upsd daemon using its NUT network protocol. +This plugin reads data of one or more Uninterruptible Power Supplies from a +[Network UPS Tools][upsd] daemon using its NUT network protocol. -## Requirements +⭐ Telegraf v1.24.0 +🏷️ hardware, server +💻 all -upsd should be installed and it's daemon should be running. +[upsd]: https://networkupstools.org/ + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -13,12 +24,54 @@ upsd should be installed and it's daemon should be running. # Monitor UPSes connected via Network UPS Tools [[inputs.upsd]] ## A running NUT server to connect to. + ## IPv6 addresses must be enclosed in brackets (e.g. "[::1]") # server = "127.0.0.1" # port = 3493 # username = "user" # password = "password" + + ## Force parsing numbers as floats + ## It is highly recommended to enable this setting to parse numbers + ## consistently as floats to avoid database conflicts where some numbers are + ## parsed as integers and others as floats. + # force_float = false + + ## Collect additional fields if they are available for the UPS + ## The fields need to be specified as NUT variable names, see + ## https://networkupstools.org/docs/developer-guide.chunked/apas02.html + ## Wildcards are accepted. + # additional_fields = [] + + ## Dump information for debugging + ## Allows to print the raw variables (and corresponding types) as received + ## from the NUT server ONCE for each UPS. + ## Please attach this information when reporting issues! + # log_level = "trace" ``` +### Pitfalls + +Please note that field types are automatically determined based on the values. +Especially the strings `enabled` and `disabled` are automatically converted to +`boolean` values. This might lead to trouble for fields that can contain +non-binary values like `enabled`, `disabled` and `muted` as the output field +will be `boolean` for the first two values but `string` for the latter. To +convert `enabled` and `disabled` values back to `string` for those fields, use +the [enum processor][enum_processor] with + +```toml +[[processors.enum]] + [[processors.enum.mapping]] + field = "ups_beeper_status" + [processors.enum.mapping.value_mappings] + true = "enabled" + false = "disabled" +``` + +Alternatively, you can also map the non-binary value to a `boolean`. + +[enum_processor]: /plugins/processors/enum/README.md + ## Metrics This implementation tries to maintain compatibility with the apcupsd metrics: @@ -29,7 +82,7 @@ This implementation tries to maintain compatibility with the apcupsd metrics: - ups_name - model - fields: - - status_flags ([status-bits][]) + - status_flags ([status-bits][rfc9271-sec5.1]) - input_voltage - load_percent - battery_charge_percent @@ -51,8 +104,10 @@ With the exception of: - fields: - time_on_battery_ns +[rfc9271-sec5.1]: https://www.rfc-editor.org/rfc/rfc9271.html#section-5.1 + ## Example Output -```shell +```text upsd,serial=AS1231515,ups_name=name1 load_percent=9.7,time_left_ns=9800000,output_voltage=230.4,internal_temp=32.4,battery_voltage=27.4,input_frequency=50.2,input_voltage=230.4,battery_charge_percent=100,status_flags=8i 1490035922000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/uwsgi.md b/src/writeData/components/telegrafPlugins/uwsgi.md index babf006e8d..cd004536a9 100644 --- a/src/writeData/components/telegrafPlugins/uwsgi.md +++ b/src/writeData/components/telegrafPlugins/uwsgi.md @@ -1,7 +1,23 @@ # uWSGI Input Plugin -The uWSGI input plugin gathers metrics about uWSGI using its [Stats -Server](https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html). +This plugin gathers metrics about [uWSGI][uwsgi] using its +[Stats Server][stats_server]. + +⭐ Telegraf v1.12.0 +🏷️ cloud +💻 all + +[uwsgi]: https://uwsgi-docs.readthedocs.io/en/latest/ +[stats_server]: https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -83,7 +99,7 @@ Server](https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html). ## Example Output -```shell +```text uwsgi_overview,gid=0,uid=0,source=172.17.0.2,version=2.0.18 listen_queue=0i,listen_queue_errors=0i,load=0i,pid=1i,signal_queue=0i 1564441407000000000 uwsgi_workers,source=172.17.0.2,worker_id=1 accepting=1i,avg_rt=0i,delta_request=0i,exceptions=0i,harakiri_count=0i,last_spawn=1564441202i,pid=6i,requests=0i,respawn_count=1i,rss=0i,running_time=0i,signal_queue=0i,signals=0i,status="idle",tx=0i,vsz=0i 1564441407000000000 uwsgi_apps,app_id=0,worker_id=1,source=172.17.0.2 exceptions=0i,modifier1=0i,requests=0i,startup_time=0i 1564441407000000000 diff --git a/src/writeData/components/telegrafPlugins/varnish.md b/src/writeData/components/telegrafPlugins/varnish.md index f0447fb0ce..e74c9f5ff3 100644 --- a/src/writeData/components/telegrafPlugins/varnish.md +++ b/src/writeData/components/telegrafPlugins/varnish.md @@ -1,11 +1,33 @@ # Varnish Input Plugin -This plugin gathers stats from [Varnish HTTP Cache](https://varnish-cache.org/) +This plugin gathers statistics from a local [Varnish HTTP Cache][vanish] +instance using the `varnishstat` command. + +> [!NOTE] +> This plugin requires the `varnishstat` executable to be installed on the +> system and executable by Telegraf. +> Furthermore, the plugin requires Varnish v6.0.2+. + +⭐ Telegraf v0.13.1 +🏷️ server, web +💻 freebsd, linux, macos + +[vanish]: https://varnish-cache.org + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # A plugin to collect stats from Varnish HTTP Cache +# This plugin ONLY supports non-Windows [[inputs.varnish]] ## If running as a restricted user you can prepend sudo for additional access: #use_sudo = false @@ -45,436 +67,14 @@ This plugin gathers stats from [Varnish HTTP Cache](https://varnish-cache.org/) # timeout = "1s" ``` -## Metrics - -### metric_version=1 - -This is the full list of stats provided by varnish. Stats will be grouped by -their capitalized prefix (eg MAIN, MEMPOOL, etc). In the output, the prefix will -be used as a tag, and removed from field names. - -- varnish - - MAIN.uptime (uint64, count, Child process uptime) - - MAIN.sess_conn (uint64, count, Sessions accepted) - - MAIN.sess_drop (uint64, count, Sessions dropped) - - MAIN.sess_fail (uint64, count, Session accept failures) - - MAIN.sess_pipe_overflow (uint64, count, Session pipe overflow) - - MAIN.client_req_400 (uint64, count, Client requests received,) - - MAIN.client_req_411 (uint64, count, Client requests received,) - - MAIN.client_req_413 (uint64, count, Client requests received,) - - MAIN.client_req_417 (uint64, count, Client requests received,) - - MAIN.client_req (uint64, count, Good client requests) - - MAIN.cache_hit (uint64, count, Cache hits) - - MAIN.cache_hitpass (uint64, count, Cache hits for) - - MAIN.cache_miss (uint64, count, Cache misses) - - MAIN.backend_conn (uint64, count, Backend conn. success) - - MAIN.backend_unhealthy (uint64, count, Backend conn. not) - - MAIN.backend_busy (uint64, count, Backend conn. too) - - MAIN.backend_fail (uint64, count, Backend conn. failures) - - MAIN.backend_reuse (uint64, count, Backend conn. reuses) - - MAIN.backend_toolate (uint64, count, Backend conn. was) - - MAIN.backend_recycle (uint64, count, Backend conn. recycles) - - MAIN.backend_retry (uint64, count, Backend conn. retry) - - MAIN.fetch_head (uint64, count, Fetch no body) - - MAIN.fetch_length (uint64, count, Fetch with Length) - - MAIN.fetch_chunked (uint64, count, Fetch chunked) - - MAIN.fetch_eof (uint64, count, Fetch EOF) - - MAIN.fetch_bad (uint64, count, Fetch bad T- E) - - MAIN.fetch_close (uint64, count, Fetch wanted close) - - MAIN.fetch_oldhttp (uint64, count, Fetch pre HTTP/1.1) - - MAIN.fetch_zero (uint64, count, Fetch zero len) - - MAIN.fetch_1xx (uint64, count, Fetch no body) - - MAIN.fetch_204 (uint64, count, Fetch no body) - - MAIN.fetch_304 (uint64, count, Fetch no body) - - MAIN.fetch_failed (uint64, count, Fetch failed (all) - - MAIN.fetch_no_thread (uint64, count, Fetch failed (no) - - MAIN.pools (uint64, count, Number of thread) - - MAIN.threads (uint64, count, Total number of) - - MAIN.threads_limited (uint64, count, Threads hit max) - - MAIN.threads_created (uint64, count, Threads created) - - MAIN.threads_destroyed (uint64, count, Threads destroyed) - - MAIN.threads_failed (uint64, count, Thread creation failed) - - MAIN.thread_queue_len (uint64, count, Length of session) - - MAIN.busy_sleep (uint64, count, Number of requests) - - MAIN.busy_wakeup (uint64, count, Number of requests) - - MAIN.sess_queued (uint64, count, Sessions queued for) - - MAIN.sess_dropped (uint64, count, Sessions dropped for) - - MAIN.n_object (uint64, count, object structs made) - - MAIN.n_vampireobject (uint64, count, unresurrected objects) - - MAIN.n_objectcore (uint64, count, objectcore structs made) - - MAIN.n_objecthead (uint64, count, objecthead structs made) - - MAIN.n_waitinglist (uint64, count, waitinglist structs made) - - MAIN.n_backend (uint64, count, Number of backends) - - MAIN.n_expired (uint64, count, Number of expired) - - MAIN.n_lru_nuked (uint64, count, Number of LRU) - - MAIN.n_lru_moved (uint64, count, Number of LRU) - - MAIN.losthdr (uint64, count, HTTP header overflows) - - MAIN.s_sess (uint64, count, Total sessions seen) - - MAIN.s_req (uint64, count, Total requests seen) - - MAIN.s_pipe (uint64, count, Total pipe sessions) - - MAIN.s_pass (uint64, count, Total pass- ed requests) - - MAIN.s_fetch (uint64, count, Total backend fetches) - - MAIN.s_synth (uint64, count, Total synthetic responses) - - MAIN.s_req_hdrbytes (uint64, count, Request header bytes) - - MAIN.s_req_bodybytes (uint64, count, Request body bytes) - - MAIN.s_resp_hdrbytes (uint64, count, Response header bytes) - - MAIN.s_resp_bodybytes (uint64, count, Response body bytes) - - MAIN.s_pipe_hdrbytes (uint64, count, Pipe request header) - - MAIN.s_pipe_in (uint64, count, Piped bytes from) - - MAIN.s_pipe_out (uint64, count, Piped bytes to) - - MAIN.sess_closed (uint64, count, Session Closed) - - MAIN.sess_pipeline (uint64, count, Session Pipeline) - - MAIN.sess_readahead (uint64, count, Session Read Ahead) - - MAIN.sess_herd (uint64, count, Session herd) - - MAIN.shm_records (uint64, count, SHM records) - - MAIN.shm_writes (uint64, count, SHM writes) - - MAIN.shm_flushes (uint64, count, SHM flushes due) - - MAIN.shm_cont (uint64, count, SHM MTX contention) - - MAIN.shm_cycles (uint64, count, SHM cycles through) - - MAIN.sms_nreq (uint64, count, SMS allocator requests) - - MAIN.sms_nobj (uint64, count, SMS outstanding allocations) - - MAIN.sms_nbytes (uint64, count, SMS outstanding bytes) - - MAIN.sms_balloc (uint64, count, SMS bytes allocated) - - MAIN.sms_bfree (uint64, count, SMS bytes freed) - - MAIN.backend_req (uint64, count, Backend requests made) - - MAIN.n_vcl (uint64, count, Number of loaded) - - MAIN.n_vcl_avail (uint64, count, Number of VCLs) - - MAIN.n_vcl_discard (uint64, count, Number of discarded) - - MAIN.bans (uint64, count, Count of bans) - - MAIN.bans_completed (uint64, count, Number of bans) - - MAIN.bans_obj (uint64, count, Number of bans) - - MAIN.bans_req (uint64, count, Number of bans) - - MAIN.bans_added (uint64, count, Bans added) - - MAIN.bans_deleted (uint64, count, Bans deleted) - - MAIN.bans_tested (uint64, count, Bans tested against) - - MAIN.bans_obj_killed (uint64, count, Objects killed by) - - MAIN.bans_lurker_tested (uint64, count, Bans tested against) - - MAIN.bans_tests_tested (uint64, count, Ban tests tested) - - MAIN.bans_lurker_tests_tested (uint64, count, Ban tests tested) - - MAIN.bans_lurker_obj_killed (uint64, count, Objects killed by) - - MAIN.bans_dups (uint64, count, Bans superseded by) - - MAIN.bans_lurker_contention (uint64, count, Lurker gave way) - - MAIN.bans_persisted_bytes (uint64, count, Bytes used by) - - MAIN.bans_persisted_fragmentation (uint64, count, Extra bytes in) - - MAIN.n_purges (uint64, count, Number of purge) - - MAIN.n_obj_purged (uint64, count, Number of purged) - - MAIN.exp_mailed (uint64, count, Number of objects) - - MAIN.exp_received (uint64, count, Number of objects) - - MAIN.hcb_nolock (uint64, count, HCB Lookups without) - - MAIN.hcb_lock (uint64, count, HCB Lookups with) - - MAIN.hcb_insert (uint64, count, HCB Inserts) - - MAIN.esi_errors (uint64, count, ESI parse errors) - - MAIN.esi_warnings (uint64, count, ESI parse warnings) - - MAIN.vmods (uint64, count, Loaded VMODs) - - MAIN.n_gzip (uint64, count, Gzip operations) - - MAIN.n_gunzip (uint64, count, Gunzip operations) - - MAIN.vsm_free (uint64, count, Free VSM space) - - MAIN.vsm_used (uint64, count, Used VSM space) - - MAIN.vsm_cooling (uint64, count, Cooling VSM space) - - MAIN.vsm_overflow (uint64, count, Overflow VSM space) - - MAIN.vsm_overflowed (uint64, count, Overflowed VSM space) - - MGT.uptime (uint64, count, Management process uptime) - - MGT.child_start (uint64, count, Child process started) - - MGT.child_exit (uint64, count, Child process normal) - - MGT.child_stop (uint64, count, Child process unexpected) - - MGT.child_died (uint64, count, Child process died) - - MGT.child_dump (uint64, count, Child process core) - - MGT.child_panic (uint64, count, Child process panic) - - MEMPOOL.vbc.live (uint64, count, In use) - - MEMPOOL.vbc.pool (uint64, count, In Pool) - - MEMPOOL.vbc.sz_wanted (uint64, count, Size requested) - - MEMPOOL.vbc.sz_needed (uint64, count, Size allocated) - - MEMPOOL.vbc.allocs (uint64, count, Allocations ) - - MEMPOOL.vbc.frees (uint64, count, Frees ) - - MEMPOOL.vbc.recycle (uint64, count, Recycled from pool) - - MEMPOOL.vbc.timeout (uint64, count, Timed out from) - - MEMPOOL.vbc.toosmall (uint64, count, Too small to) - - MEMPOOL.vbc.surplus (uint64, count, Too many for) - - MEMPOOL.vbc.randry (uint64, count, Pool ran dry) - - MEMPOOL.busyobj.live (uint64, count, In use) - - MEMPOOL.busyobj.pool (uint64, count, In Pool) - - MEMPOOL.busyobj.sz_wanted (uint64, count, Size requested) - - MEMPOOL.busyobj.sz_needed (uint64, count, Size allocated) - - MEMPOOL.busyobj.allocs (uint64, count, Allocations ) - - MEMPOOL.busyobj.frees (uint64, count, Frees ) - - MEMPOOL.busyobj.recycle (uint64, count, Recycled from pool) - - MEMPOOL.busyobj.timeout (uint64, count, Timed out from) - - MEMPOOL.busyobj.toosmall (uint64, count, Too small to) - - MEMPOOL.busyobj.surplus (uint64, count, Too many for) - - MEMPOOL.busyobj.randry (uint64, count, Pool ran dry) - - MEMPOOL.req0.live (uint64, count, In use) - - MEMPOOL.req0.pool (uint64, count, In Pool) - - MEMPOOL.req0.sz_wanted (uint64, count, Size requested) - - MEMPOOL.req0.sz_needed (uint64, count, Size allocated) - - MEMPOOL.req0.allocs (uint64, count, Allocations ) - - MEMPOOL.req0.frees (uint64, count, Frees ) - - MEMPOOL.req0.recycle (uint64, count, Recycled from pool) - - MEMPOOL.req0.timeout (uint64, count, Timed out from) - - MEMPOOL.req0.toosmall (uint64, count, Too small to) - - MEMPOOL.req0.surplus (uint64, count, Too many for) - - MEMPOOL.req0.randry (uint64, count, Pool ran dry) - - MEMPOOL.sess0.live (uint64, count, In use) - - MEMPOOL.sess0.pool (uint64, count, In Pool) - - MEMPOOL.sess0.sz_wanted (uint64, count, Size requested) - - MEMPOOL.sess0.sz_needed (uint64, count, Size allocated) - - MEMPOOL.sess0.allocs (uint64, count, Allocations ) - - MEMPOOL.sess0.frees (uint64, count, Frees ) - - MEMPOOL.sess0.recycle (uint64, count, Recycled from pool) - - MEMPOOL.sess0.timeout (uint64, count, Timed out from) - - MEMPOOL.sess0.toosmall (uint64, count, Too small to) - - MEMPOOL.sess0.surplus (uint64, count, Too many for) - - MEMPOOL.sess0.randry (uint64, count, Pool ran dry) - - MEMPOOL.req1.live (uint64, count, In use) - - MEMPOOL.req1.pool (uint64, count, In Pool) - - MEMPOOL.req1.sz_wanted (uint64, count, Size requested) - - MEMPOOL.req1.sz_needed (uint64, count, Size allocated) - - MEMPOOL.req1.allocs (uint64, count, Allocations ) - - MEMPOOL.req1.frees (uint64, count, Frees ) - - MEMPOOL.req1.recycle (uint64, count, Recycled from pool) - - MEMPOOL.req1.timeout (uint64, count, Timed out from) - - MEMPOOL.req1.toosmall (uint64, count, Too small to) - - MEMPOOL.req1.surplus (uint64, count, Too many for) - - MEMPOOL.req1.randry (uint64, count, Pool ran dry) - - MEMPOOL.sess1.live (uint64, count, In use) - - MEMPOOL.sess1.pool (uint64, count, In Pool) - - MEMPOOL.sess1.sz_wanted (uint64, count, Size requested) - - MEMPOOL.sess1.sz_needed (uint64, count, Size allocated) - - MEMPOOL.sess1.allocs (uint64, count, Allocations ) - - MEMPOOL.sess1.frees (uint64, count, Frees ) - - MEMPOOL.sess1.recycle (uint64, count, Recycled from pool) - - MEMPOOL.sess1.timeout (uint64, count, Timed out from) - - MEMPOOL.sess1.toosmall (uint64, count, Too small to) - - MEMPOOL.sess1.surplus (uint64, count, Too many for) - - MEMPOOL.sess1.randry (uint64, count, Pool ran dry) - - SMA.s0.c_req (uint64, count, Allocator requests) - - SMA.s0.c_fail (uint64, count, Allocator failures) - - SMA.s0.c_bytes (uint64, count, Bytes allocated) - - SMA.s0.c_freed (uint64, count, Bytes freed) - - SMA.s0.g_alloc (uint64, count, Allocations outstanding) - - SMA.s0.g_bytes (uint64, count, Bytes outstanding) - - SMA.s0.g_space (uint64, count, Bytes available) - - SMA.Transient.c_req (uint64, count, Allocator requests) - - SMA.Transient.c_fail (uint64, count, Allocator failures) - - SMA.Transient.c_bytes (uint64, count, Bytes allocated) - - SMA.Transient.c_freed (uint64, count, Bytes freed) - - SMA.Transient.g_alloc (uint64, count, Allocations outstanding) - - SMA.Transient.g_bytes (uint64, count, Bytes outstanding) - - 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).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_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_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_out (uint64, count, Piped bytes to) - - VBE.default(127.0.0.1,,8080).pipe_in (uint64, count, Piped bytes from) - - LCK.sms.creat (uint64, count, Created locks) - - LCK.sms.destroy (uint64, count, Destroyed locks) - - LCK.sms.locks (uint64, count, Lock Operations) - - LCK.smp.creat (uint64, count, Created locks) - - LCK.smp.destroy (uint64, count, Destroyed locks) - - LCK.smp.locks (uint64, count, Lock Operations) - - LCK.sma.creat (uint64, count, Created locks) - - LCK.sma.destroy (uint64, count, Destroyed locks) - - LCK.sma.locks (uint64, count, Lock Operations) - - LCK.smf.creat (uint64, count, Created locks) - - LCK.smf.destroy (uint64, count, Destroyed locks) - - LCK.smf.locks (uint64, count, Lock Operations) - - LCK.hsl.creat (uint64, count, Created locks) - - LCK.hsl.destroy (uint64, count, Destroyed locks) - - LCK.hsl.locks (uint64, count, Lock Operations) - - LCK.hcb.creat (uint64, count, Created locks) - - LCK.hcb.destroy (uint64, count, Destroyed locks) - - LCK.hcb.locks (uint64, count, Lock Operations) - - LCK.hcl.creat (uint64, count, Created locks) - - LCK.hcl.destroy (uint64, count, Destroyed locks) - - LCK.hcl.locks (uint64, count, Lock Operations) - - LCK.vcl.creat (uint64, count, Created locks) - - LCK.vcl.destroy (uint64, count, Destroyed locks) - - LCK.vcl.locks (uint64, count, Lock Operations) - - LCK.sessmem.creat (uint64, count, Created locks) - - LCK.sessmem.destroy (uint64, count, Destroyed locks) - - LCK.sessmem.locks (uint64, count, Lock Operations) - - LCK.sess.creat (uint64, count, Created locks) - - LCK.sess.destroy (uint64, count, Destroyed locks) - - LCK.sess.locks (uint64, count, Lock Operations) - - LCK.wstat.creat (uint64, count, Created locks) - - LCK.wstat.destroy (uint64, count, Destroyed locks) - - LCK.wstat.locks (uint64, count, Lock Operations) - - LCK.herder.creat (uint64, count, Created locks) - - LCK.herder.destroy (uint64, count, Destroyed locks) - - LCK.herder.locks (uint64, count, Lock Operations) - - LCK.wq.creat (uint64, count, Created locks) - - LCK.wq.destroy (uint64, count, Destroyed locks) - - LCK.wq.locks (uint64, count, Lock Operations) - - LCK.objhdr.creat (uint64, count, Created locks) - - LCK.objhdr.destroy (uint64, count, Destroyed locks) - - LCK.objhdr.locks (uint64, count, Lock Operations) - - LCK.exp.creat (uint64, count, Created locks) - - LCK.exp.destroy (uint64, count, Destroyed locks) - - LCK.exp.locks (uint64, count, Lock Operations) - - LCK.lru.creat (uint64, count, Created locks) - - LCK.lru.destroy (uint64, count, Destroyed locks) - - LCK.lru.locks (uint64, count, Lock Operations) - - LCK.cli.creat (uint64, count, Created locks) - - LCK.cli.destroy (uint64, count, Destroyed locks) - - LCK.cli.locks (uint64, count, Lock Operations) - - LCK.ban.creat (uint64, count, Created locks) - - LCK.ban.destroy (uint64, count, Destroyed locks) - - LCK.ban.locks (uint64, count, Lock Operations) - - LCK.vbp.creat (uint64, count, Created locks) - - LCK.vbp.destroy (uint64, count, Destroyed locks) - - LCK.vbp.locks (uint64, count, Lock Operations) - - LCK.backend.creat (uint64, count, Created locks) - - LCK.backend.destroy (uint64, count, Destroyed locks) - - LCK.backend.locks (uint64, count, Lock Operations) - - LCK.vcapace.creat (uint64, count, Created locks) - - LCK.vcapace.destroy (uint64, count, Destroyed locks) - - LCK.vcapace.locks (uint64, count, Lock Operations) - - LCK.nbusyobj.creat (uint64, count, Created locks) - - LCK.nbusyobj.destroy (uint64, count, Destroyed locks) - - LCK.nbusyobj.locks (uint64, count, Lock Operations) - - LCK.busyobj.creat (uint64, count, Created locks) - - LCK.busyobj.destroy (uint64, count, Destroyed locks) - - LCK.busyobj.locks (uint64, count, Lock Operations) - - LCK.mempool.creat (uint64, count, Created locks) - - LCK.mempool.destroy (uint64, count, Destroyed locks) - - LCK.mempool.locks (uint64, count, Lock Operations) - - LCK.vxid.creat (uint64, count, Created locks) - - LCK.vxid.destroy (uint64, count, Destroyed locks) - - LCK.vxid.locks (uint64, count, Lock Operations) - - LCK.pipestat.creat (uint64, count, Created locks) - - LCK.pipestat.destroy (uint64, count, Destroyed locks) - - LCK.pipestat.locks (uint64, count, Lock Operations) - -### Tags - -As indicated above, the prefix of a varnish stat will be used as it's 'section' -tag. So section tag may have one of the following values: - -- section: - - MAIN - - MGT - - MEMPOOL - - SMA - - VBE - - LCK - -### metric_version=2 - -When `metric_version=2` is enabled, the plugin runs `varnishstat -j` command and -parses the JSON output into metrics. - -Plugin uses `varnishadm vcl.list -j` commandline to find the active VCL. Metrics -that are related to the nonactive VCL are excluded from monitoring. - -## Requirements - -- Varnish 6.0.2+ is required (older versions do not support JSON output from CLI tools) - -## Examples - -Varnish counter: - -```json -{ - "MAIN.cache_hit": { - "description": "Cache hits", - "flag": "c", - "format": "i", - "value": 51 - } -} -``` - -Influx metric: -`varnish,section=MAIN cache_hit=51i 1462765437090957980` - -## Advanced customizations using regexps - -Finding the VCL in a varnish measurement and parsing into tags can be adjusted -by using GO regular expressions. - -Regexps use a special named group `(?P<_vcl>[\w\-]*)(\.)` to extract VCL -name. `(?P<_field>[\w\-.+]*)\.val` regexp group extracts the field name. All -other named regexp groups like `(?P[\w\-.+]*)` are tags. - -_Tip: It is useful to verify regexps using online tools like -._ - -By default, the plugin has a builtin list of regexps for following VMODs: - -- Dynamic Backends (goto) - - regexp: `^VBE\.(?P<_vcl>[\w\-]*)\.goto\.[[:alnum:]]+\.\((?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\)\.\((?P.*)\)\.\(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) - - regexp `^KVSTORE\.(?P[\w\-]*)\.(?P<_vcl>[\w\-]*)\.([\w\-]*)` - - `KVSTORE.object_name.vcl_name.key` -> `varnish,section=KVSTORE,id=object_name key=5i` -- XCNT (libvmod-xcounter) - - regexp `^XCNT\.(?P<_vcl>[\w\-]*)(\.)*(?P[\w\-.+]*)\.(?P<_field>[\w\-.+]*)\.val` - - `XCNT.abc1234.XXX+_YYYY.cr.pass.val` -> `varnish,section=XCNT,group="XXX+_YYYY.cr" pass=5i` - -- standard VBE metrics - - regexp `^VBE\.(?P<_vcl>[\w\-]*)\.(?P[\w\-]*)\.([\w\-]*)` - - `VBE.reload_20210622_153544_23757.default.unhealthy` -> `varnish,section=VBE,backend="default" unhealthy=51i 1462765437090957980` -- default generic metric - - 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` - -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 -metrics in `ACCG...` format. The namespace value will -be used as a tag. - -```toml -[[inputs.varnish]] - regexps = ['^ACCG.(?P[\w-]*).(?P<_field>[\w-.]*)'] -``` - -## Custom arguments - -You can change the default binary location and custom arguments for -`varnishstat` and `varnishadm` command output. This is useful when running -varnish in docker or executing using varnish by SSH on a different machine. - -It's important to note that `instance_name` parameter is not take into account -when using custom `binary_args` or `adm_binary_args`. You have to add `"-n", -"/instance_name"` manually into configuration. - -### Example for SSH - -```toml -[[inputs.varnish]] - binary = "/usr/bin/ssh" - binary_args = ["root@10.100.0.112", "varnishstat", "-n", "/var/lib/varnish/ubuntu", "-j"] - adm_binary = "/usr/bin/ssh" - adm_binary_args = ["root@10.100.0.112", "varnishadm", "-n", "/var/lib/varnish/ubuntu", "vcl.list", "-j"] - metric_version = 2 - stats = ["*"] -``` - -### Example for Docker - -```toml -[[inputs.varnish]] - binary = "/usr/local/bin/docker" - binary_args = ["exec", "-t", "container_name", "varnishstat", "-j"] - adm_binary = "/usr/local/bin/docker" - adm_binary_args = ["exec", "-t", "container_name", "varnishadm", "vcl.list", "-j"] - metric_version = 2 - stats = ["*"] -``` - -## Permissions +### Permissions It's important to note that this plugin references `varnishstat` and `varnishadm`, which may require additional permissions to execute successfully. Depending on the user/group permissions of the telegraf user executing this plugin, you may need to alter the group membership, set facls, or use sudo. -### Group membership (Recommended) +#### Group membership (recommended) ```bash $ groups telegraf @@ -486,7 +86,7 @@ $ groups telegraf telegraf : telegraf varnish ``` -### Extended filesystem ACL's +#### Extended filesystem ACL's ```bash $ getfacl /var/lib/varnish//_.vsm @@ -510,7 +110,8 @@ mask::r-- other::--- ``` -**Sudo privileges**: +#### Sudo privileges + If you use this method, you will need the following in your telegraf config: ```toml @@ -530,26 +131,347 @@ Defaults!VARNISHSTAT !logfile, !syslog, !pam_session Please use the solution you see as most appropriate. +## Metrics + +### Version 1 + +This is the full list of stats provided by varnish. Stats will be grouped by +their capitalized prefix (eg MAIN, MEMPOOL, etc). In the output, the prefix will +be used as a tag, and removed from field names. + +- varnish + - MAIN.uptime (uint64, count, Child process uptime) + - MAIN.sess_conn (uint64, count, Sessions accepted) + - MAIN.sess_drop (uint64, count, Sessions dropped) + - MAIN.sess_fail (uint64, count, Session accept failures) + - MAIN.sess_pipe_overflow (uint64, count, Session pipe overflow) + - MAIN.client_req_400 (uint64, count, Client requests received,) + - MAIN.client_req_411 (uint64, count, Client requests received,) + - MAIN.client_req_413 (uint64, count, Client requests received,) + - MAIN.client_req_417 (uint64, count, Client requests received,) + - MAIN.client_req (uint64, count, Good client requests) + - MAIN.cache_hit (uint64, count, Cache hits) + - MAIN.cache_hitpass (uint64, count, Cache hits for) + - MAIN.cache_miss (uint64, count, Cache misses) + - MAIN.backend_conn (uint64, count, Backend conn. success) + - MAIN.backend_unhealthy (uint64, count, Backend conn. not) + - MAIN.backend_busy (uint64, count, Backend conn. too) + - MAIN.backend_fail (uint64, count, Backend conn. failures) + - MAIN.backend_reuse (uint64, count, Backend conn. reuses) + - MAIN.backend_toolate (uint64, count, Backend conn. was) + - MAIN.backend_recycle (uint64, count, Backend conn. recycles) + - MAIN.backend_retry (uint64, count, Backend conn. retry) + - MAIN.fetch_head (uint64, count, Fetch no body) + - MAIN.fetch_length (uint64, count, Fetch with Length) + - MAIN.fetch_chunked (uint64, count, Fetch chunked) + - MAIN.fetch_eof (uint64, count, Fetch EOF) + - MAIN.fetch_bad (uint64, count, Fetch bad T- E) + - MAIN.fetch_close (uint64, count, Fetch wanted close) + - MAIN.fetch_oldhttp (uint64, count, Fetch pre HTTP/1.1) + - MAIN.fetch_zero (uint64, count, Fetch zero len) + - MAIN.fetch_1xx (uint64, count, Fetch no body) + - MAIN.fetch_204 (uint64, count, Fetch no body) + - MAIN.fetch_304 (uint64, count, Fetch no body) + - MAIN.fetch_failed (uint64, count, Fetch failed (all) + - MAIN.fetch_no_thread (uint64, count, Fetch failed (no) + - MAIN.pools (uint64, count, Number of thread) + - MAIN.threads (uint64, count, Total number of) + - MAIN.threads_limited (uint64, count, Threads hit max) + - MAIN.threads_created (uint64, count, Threads created) + - MAIN.threads_destroyed (uint64, count, Threads destroyed) + - MAIN.threads_failed (uint64, count, Thread creation failed) + - MAIN.thread_queue_len (uint64, count, Length of session) + - MAIN.busy_sleep (uint64, count, Number of requests) + - MAIN.busy_wakeup (uint64, count, Number of requests) + - MAIN.sess_queued (uint64, count, Sessions queued for) + - MAIN.sess_dropped (uint64, count, Sessions dropped for) + - MAIN.n_object (uint64, count, object structs made) + - MAIN.n_vampireobject (uint64, count, unresurrected objects) + - MAIN.n_objectcore (uint64, count, objectcore structs made) + - MAIN.n_objecthead (uint64, count, objecthead structs made) + - MAIN.n_waitinglist (uint64, count, waitinglist structs made) + - MAIN.n_backend (uint64, count, Number of backends) + - MAIN.n_expired (uint64, count, Number of expired) + - MAIN.n_lru_nuked (uint64, count, Number of LRU) + - MAIN.n_lru_moved (uint64, count, Number of LRU) + - MAIN.losthdr (uint64, count, HTTP header overflows) + - MAIN.s_sess (uint64, count, Total sessions seen) + - MAIN.s_req (uint64, count, Total requests seen) + - MAIN.s_pipe (uint64, count, Total pipe sessions) + - MAIN.s_pass (uint64, count, Total pass- ed requests) + - MAIN.s_fetch (uint64, count, Total backend fetches) + - MAIN.s_synth (uint64, count, Total synthetic responses) + - MAIN.s_req_hdrbytes (uint64, count, Request header bytes) + - MAIN.s_req_bodybytes (uint64, count, Request body bytes) + - MAIN.s_resp_hdrbytes (uint64, count, Response header bytes) + - MAIN.s_resp_bodybytes (uint64, count, Response body bytes) + - MAIN.s_pipe_hdrbytes (uint64, count, Pipe request header) + - MAIN.s_pipe_in (uint64, count, Piped bytes from) + - MAIN.s_pipe_out (uint64, count, Piped bytes to) + - MAIN.sess_closed (uint64, count, Session Closed) + - MAIN.sess_pipeline (uint64, count, Session Pipeline) + - MAIN.sess_readahead (uint64, count, Session Read Ahead) + - MAIN.sess_herd (uint64, count, Session herd) + - MAIN.shm_records (uint64, count, SHM records) + - MAIN.shm_writes (uint64, count, SHM writes) + - MAIN.shm_flushes (uint64, count, SHM flushes due) + - MAIN.shm_cont (uint64, count, SHM MTX contention) + - MAIN.shm_cycles (uint64, count, SHM cycles through) + - MAIN.sms_nreq (uint64, count, SMS allocator requests) + - MAIN.sms_nobj (uint64, count, SMS outstanding allocations) + - MAIN.sms_nbytes (uint64, count, SMS outstanding bytes) + - MAIN.sms_balloc (uint64, count, SMS bytes allocated) + - MAIN.sms_bfree (uint64, count, SMS bytes freed) + - MAIN.backend_req (uint64, count, Backend requests made) + - MAIN.n_vcl (uint64, count, Number of loaded) + - MAIN.n_vcl_avail (uint64, count, Number of VCLs) + - MAIN.n_vcl_discard (uint64, count, Number of discarded) + - MAIN.bans (uint64, count, Count of bans) + - MAIN.bans_completed (uint64, count, Number of bans) + - MAIN.bans_obj (uint64, count, Number of bans) + - MAIN.bans_req (uint64, count, Number of bans) + - MAIN.bans_added (uint64, count, Bans added) + - MAIN.bans_deleted (uint64, count, Bans deleted) + - MAIN.bans_tested (uint64, count, Bans tested against) + - MAIN.bans_obj_killed (uint64, count, Objects killed by) + - MAIN.bans_lurker_tested (uint64, count, Bans tested against) + - MAIN.bans_tests_tested (uint64, count, Ban tests tested) + - MAIN.bans_lurker_tests_tested (uint64, count, Ban tests tested) + - MAIN.bans_lurker_obj_killed (uint64, count, Objects killed by) + - MAIN.bans_dups (uint64, count, Bans superseded by) + - MAIN.bans_lurker_contention (uint64, count, Lurker gave way) + - MAIN.bans_persisted_bytes (uint64, count, Bytes used by) + - MAIN.bans_persisted_fragmentation (uint64, count, Extra bytes in) + - MAIN.n_purges (uint64, count, Number of purge) + - MAIN.n_obj_purged (uint64, count, Number of purged) + - MAIN.exp_mailed (uint64, count, Number of objects) + - MAIN.exp_received (uint64, count, Number of objects) + - MAIN.hcb_nolock (uint64, count, HCB Lookups without) + - MAIN.hcb_lock (uint64, count, HCB Lookups with) + - MAIN.hcb_insert (uint64, count, HCB Inserts) + - MAIN.esi_errors (uint64, count, ESI parse errors) + - MAIN.esi_warnings (uint64, count, ESI parse warnings) + - MAIN.vmods (uint64, count, Loaded VMODs) + - MAIN.n_gzip (uint64, count, Gzip operations) + - MAIN.n_gunzip (uint64, count, Gunzip operations) + - MAIN.vsm_free (uint64, count, Free VSM space) + - MAIN.vsm_used (uint64, count, Used VSM space) + - MAIN.vsm_cooling (uint64, count, Cooling VSM space) + - MAIN.vsm_overflow (uint64, count, Overflow VSM space) + - MAIN.vsm_overflowed (uint64, count, Overflowed VSM space) + - MGT.uptime (uint64, count, Management process uptime) + - MGT.child_start (uint64, count, Child process started) + - MGT.child_exit (uint64, count, Child process normal) + - MGT.child_stop (uint64, count, Child process unexpected) + - MGT.child_died (uint64, count, Child process died) + - MGT.child_dump (uint64, count, Child process core) + - MGT.child_panic (uint64, count, Child process panic) + - MEMPOOL.vbc.live (uint64, count, In use) + - MEMPOOL.vbc.pool (uint64, count, In Pool) + - MEMPOOL.vbc.sz_wanted (uint64, count, Size requested) + - MEMPOOL.vbc.sz_needed (uint64, count, Size allocated) + - MEMPOOL.vbc.allocs (uint64, count, Allocations ) + - MEMPOOL.vbc.frees (uint64, count, Frees ) + - MEMPOOL.vbc.recycle (uint64, count, Recycled from pool) + - MEMPOOL.vbc.timeout (uint64, count, Timed out from) + - MEMPOOL.vbc.toosmall (uint64, count, Too small to) + - MEMPOOL.vbc.surplus (uint64, count, Too many for) + - MEMPOOL.vbc.randry (uint64, count, Pool ran dry) + - MEMPOOL.busyobj.live (uint64, count, In use) + - MEMPOOL.busyobj.pool (uint64, count, In Pool) + - MEMPOOL.busyobj.sz_wanted (uint64, count, Size requested) + - MEMPOOL.busyobj.sz_needed (uint64, count, Size allocated) + - MEMPOOL.busyobj.allocs (uint64, count, Allocations ) + - MEMPOOL.busyobj.frees (uint64, count, Frees ) + - MEMPOOL.busyobj.recycle (uint64, count, Recycled from pool) + - MEMPOOL.busyobj.timeout (uint64, count, Timed out from) + - MEMPOOL.busyobj.toosmall (uint64, count, Too small to) + - MEMPOOL.busyobj.surplus (uint64, count, Too many for) + - MEMPOOL.busyobj.randry (uint64, count, Pool ran dry) + - MEMPOOL.req0.live (uint64, count, In use) + - MEMPOOL.req0.pool (uint64, count, In Pool) + - MEMPOOL.req0.sz_wanted (uint64, count, Size requested) + - MEMPOOL.req0.sz_needed (uint64, count, Size allocated) + - MEMPOOL.req0.allocs (uint64, count, Allocations ) + - MEMPOOL.req0.frees (uint64, count, Frees ) + - MEMPOOL.req0.recycle (uint64, count, Recycled from pool) + - MEMPOOL.req0.timeout (uint64, count, Timed out from) + - MEMPOOL.req0.toosmall (uint64, count, Too small to) + - MEMPOOL.req0.surplus (uint64, count, Too many for) + - MEMPOOL.req0.randry (uint64, count, Pool ran dry) + - MEMPOOL.sess0.live (uint64, count, In use) + - MEMPOOL.sess0.pool (uint64, count, In Pool) + - MEMPOOL.sess0.sz_wanted (uint64, count, Size requested) + - MEMPOOL.sess0.sz_needed (uint64, count, Size allocated) + - MEMPOOL.sess0.allocs (uint64, count, Allocations ) + - MEMPOOL.sess0.frees (uint64, count, Frees ) + - MEMPOOL.sess0.recycle (uint64, count, Recycled from pool) + - MEMPOOL.sess0.timeout (uint64, count, Timed out from) + - MEMPOOL.sess0.toosmall (uint64, count, Too small to) + - MEMPOOL.sess0.surplus (uint64, count, Too many for) + - MEMPOOL.sess0.randry (uint64, count, Pool ran dry) + - MEMPOOL.req1.live (uint64, count, In use) + - MEMPOOL.req1.pool (uint64, count, In Pool) + - MEMPOOL.req1.sz_wanted (uint64, count, Size requested) + - MEMPOOL.req1.sz_needed (uint64, count, Size allocated) + - MEMPOOL.req1.allocs (uint64, count, Allocations ) + - MEMPOOL.req1.frees (uint64, count, Frees ) + - MEMPOOL.req1.recycle (uint64, count, Recycled from pool) + - MEMPOOL.req1.timeout (uint64, count, Timed out from) + - MEMPOOL.req1.toosmall (uint64, count, Too small to) + - MEMPOOL.req1.surplus (uint64, count, Too many for) + - MEMPOOL.req1.randry (uint64, count, Pool ran dry) + - MEMPOOL.sess1.live (uint64, count, In use) + - MEMPOOL.sess1.pool (uint64, count, In Pool) + - MEMPOOL.sess1.sz_wanted (uint64, count, Size requested) + - MEMPOOL.sess1.sz_needed (uint64, count, Size allocated) + - MEMPOOL.sess1.allocs (uint64, count, Allocations ) + - MEMPOOL.sess1.frees (uint64, count, Frees ) + - MEMPOOL.sess1.recycle (uint64, count, Recycled from pool) + - MEMPOOL.sess1.timeout (uint64, count, Timed out from) + - MEMPOOL.sess1.toosmall (uint64, count, Too small to) + - MEMPOOL.sess1.surplus (uint64, count, Too many for) + - MEMPOOL.sess1.randry (uint64, count, Pool ran dry) + - SMA.s0.c_req (uint64, count, Allocator requests) + - SMA.s0.c_fail (uint64, count, Allocator failures) + - SMA.s0.c_bytes (uint64, count, Bytes allocated) + - SMA.s0.c_freed (uint64, count, Bytes freed) + - SMA.s0.g_alloc (uint64, count, Allocations outstanding) + - SMA.s0.g_bytes (uint64, count, Bytes outstanding) + - SMA.s0.g_space (uint64, count, Bytes available) + - SMA.Transient.c_req (uint64, count, Allocator requests) + - SMA.Transient.c_fail (uint64, count, Allocator failures) + - SMA.Transient.c_bytes (uint64, count, Bytes allocated) + - SMA.Transient.c_freed (uint64, count, Bytes freed) + - SMA.Transient.g_alloc (uint64, count, Allocations outstanding) + - SMA.Transient.g_bytes (uint64, count, Bytes outstanding) + - 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).happy (uint64, count, Happy health probes) + - 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).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).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_in (uint64, count, Piped bytes from) + - LCK.sms.creat (uint64, count, Created locks) + - LCK.sms.destroy (uint64, count, Destroyed locks) + - LCK.sms.locks (uint64, count, Lock Operations) + - LCK.smp.creat (uint64, count, Created locks) + - LCK.smp.destroy (uint64, count, Destroyed locks) + - LCK.smp.locks (uint64, count, Lock Operations) + - LCK.sma.creat (uint64, count, Created locks) + - LCK.sma.destroy (uint64, count, Destroyed locks) + - LCK.sma.locks (uint64, count, Lock Operations) + - LCK.smf.creat (uint64, count, Created locks) + - LCK.smf.destroy (uint64, count, Destroyed locks) + - LCK.smf.locks (uint64, count, Lock Operations) + - LCK.hsl.creat (uint64, count, Created locks) + - LCK.hsl.destroy (uint64, count, Destroyed locks) + - LCK.hsl.locks (uint64, count, Lock Operations) + - LCK.hcb.creat (uint64, count, Created locks) + - LCK.hcb.destroy (uint64, count, Destroyed locks) + - LCK.hcb.locks (uint64, count, Lock Operations) + - LCK.hcl.creat (uint64, count, Created locks) + - LCK.hcl.destroy (uint64, count, Destroyed locks) + - LCK.hcl.locks (uint64, count, Lock Operations) + - LCK.vcl.creat (uint64, count, Created locks) + - LCK.vcl.destroy (uint64, count, Destroyed locks) + - LCK.vcl.locks (uint64, count, Lock Operations) + - LCK.sessmem.creat (uint64, count, Created locks) + - LCK.sessmem.destroy (uint64, count, Destroyed locks) + - LCK.sessmem.locks (uint64, count, Lock Operations) + - LCK.sess.creat (uint64, count, Created locks) + - LCK.sess.destroy (uint64, count, Destroyed locks) + - LCK.sess.locks (uint64, count, Lock Operations) + - LCK.wstat.creat (uint64, count, Created locks) + - LCK.wstat.destroy (uint64, count, Destroyed locks) + - LCK.wstat.locks (uint64, count, Lock Operations) + - LCK.herder.creat (uint64, count, Created locks) + - LCK.herder.destroy (uint64, count, Destroyed locks) + - LCK.herder.locks (uint64, count, Lock Operations) + - LCK.wq.creat (uint64, count, Created locks) + - LCK.wq.destroy (uint64, count, Destroyed locks) + - LCK.wq.locks (uint64, count, Lock Operations) + - LCK.objhdr.creat (uint64, count, Created locks) + - LCK.objhdr.destroy (uint64, count, Destroyed locks) + - LCK.objhdr.locks (uint64, count, Lock Operations) + - LCK.exp.creat (uint64, count, Created locks) + - LCK.exp.destroy (uint64, count, Destroyed locks) + - LCK.exp.locks (uint64, count, Lock Operations) + - LCK.lru.creat (uint64, count, Created locks) + - LCK.lru.destroy (uint64, count, Destroyed locks) + - LCK.lru.locks (uint64, count, Lock Operations) + - LCK.cli.creat (uint64, count, Created locks) + - LCK.cli.destroy (uint64, count, Destroyed locks) + - LCK.cli.locks (uint64, count, Lock Operations) + - LCK.ban.creat (uint64, count, Created locks) + - LCK.ban.destroy (uint64, count, Destroyed locks) + - LCK.ban.locks (uint64, count, Lock Operations) + - LCK.vbp.creat (uint64, count, Created locks) + - LCK.vbp.destroy (uint64, count, Destroyed locks) + - LCK.vbp.locks (uint64, count, Lock Operations) + - LCK.backend.creat (uint64, count, Created locks) + - LCK.backend.destroy (uint64, count, Destroyed locks) + - LCK.backend.locks (uint64, count, Lock Operations) + - LCK.vcapace.creat (uint64, count, Created locks) + - LCK.vcapace.destroy (uint64, count, Destroyed locks) + - LCK.vcapace.locks (uint64, count, Lock Operations) + - LCK.nbusyobj.creat (uint64, count, Created locks) + - LCK.nbusyobj.destroy (uint64, count, Destroyed locks) + - LCK.nbusyobj.locks (uint64, count, Lock Operations) + - LCK.busyobj.creat (uint64, count, Created locks) + - LCK.busyobj.destroy (uint64, count, Destroyed locks) + - LCK.busyobj.locks (uint64, count, Lock Operations) + - LCK.mempool.creat (uint64, count, Created locks) + - LCK.mempool.destroy (uint64, count, Destroyed locks) + - LCK.mempool.locks (uint64, count, Lock Operations) + - LCK.vxid.creat (uint64, count, Created locks) + - LCK.vxid.destroy (uint64, count, Destroyed locks) + - LCK.vxid.locks (uint64, count, Lock Operations) + - LCK.pipestat.creat (uint64, count, Created locks) + - LCK.pipestat.destroy (uint64, count, Destroyed locks) + - LCK.pipestat.locks (uint64, count, Lock Operations) + +### Tags + +As indicated above, the prefix of a varnish stat will be used as it's 'section' +tag. So section tag may have one of the following values: + +- section: + - MAIN + - MGT + - MEMPOOL + - SMA + - VBE + - LCK + +### Version 2 + +When `metric_version=2` is enabled, the plugin runs `varnishstat -j` command and +parses the JSON output into metrics. + +Plugin uses `varnishadm vcl.list -j` commandline to find the active VCL. Metrics +that are related to the nonactive VCL are excluded from monitoring. + ## Example Output -### metric_version = 1 +### Example version 1 -```bash - telegraf --config etc/telegraf.conf --input-filter varnish --test -* Plugin: varnish, Collection 1 -> varnish,host=rpercy-VirtualBox,section=MAIN cache_hit=0i,cache_miss=0i,uptime=8416i 1462765437090957980 +```text +varnish,host=rpercy-VirtualBox,section=MAIN cache_hit=0i,cache_miss=0i,uptime=8416i 1462765437090957980 ``` -### metric_version = 2 +### Example version 2 -```bash -telegraf --config etc/telegraf.conf --input-filter varnish --test -> varnish,host=kozel.local,section=MAIN n_vampireobject=0i 1631121567000000000 -> varnish,backend=server_test1,host=kozel.local,section=VBE fail_eacces=0i 1631121567000000000 -> varnish,backend=default,host=kozel.local,section=VBE req=0i 1631121567000000000 -> varnish,host=kozel.local,section=MAIN client_req_400=0i 1631121567000000000 -> varnish,host=kozel.local,section=MAIN shm_cycles=10i 1631121567000000000 -> varnish,backend=default,host=kozel.local,section=VBE pipe_hdrbytes=0i 1631121567000000000 +```text +varnish,host=kozel.local,section=MAIN n_vampireobject=0i 1631121567000000000 +varnish,backend=server_test1,host=kozel.local,section=VBE fail_eacces=0i 1631121567000000000 +varnish,backend=default,host=kozel.local,section=VBE req=0i 1631121567000000000 +varnish,host=kozel.local,section=MAIN client_req_400=0i 1631121567000000000 +varnish,host=kozel.local,section=MAIN shm_cycles=10i 1631121567000000000 +varnish,backend=default,host=kozel.local,section=VBE pipe_hdrbytes=0i 1631121567000000000 ``` You can merge metrics together into a metric with multiple fields into the most @@ -562,11 +484,10 @@ memory and network transfer efficient form using `aggregators.merge` The output will be: -```bash -telegraf --config etc/telegraf.conf --input-filter varnish --test -> varnish,host=kozel.local,section=MAIN backend_busy=0i,backend_conn=19i,backend_fail=0i,backend_recycle=8i,backend_req=19i,backend_retry=0i,backend_reuse=0i,backend_unhealthy=0i,bans=1i,bans_added=1i,bans_completed=1i,bans_deleted=0i,bans_dups=0i,bans_lurker_contention=0i,bans_lurker_obj_killed=0i,bans_lurker_obj_killed_cutoff=0i,bans_lurker_tested=0i,bans_lurker_tests_tested=0i,bans_obj=0i,bans_obj_killed=0i,bans_persisted_bytes=16i,bans_persisted_fragmentation=0i,bans_req=0i,bans_tested=0i,bans_tests_tested=0i,busy_killed=0i,busy_sleep=0i,busy_wakeup=0i,cache_hit=643999i,cache_hit_grace=22i,cache_hitmiss=0i,cache_hitpass=0i,cache_miss=1i,client_req=644000i,client_req_400=0i,client_req_417=0i,client_resp_500=0i,esi_errors=0i,esi_warnings=0i,exp_mailed=37i,exp_received=37i,fetch_1xx=0i,fetch_204=0i,fetch_304=2i,fetch_bad=0i,fetch_chunked=6i,fetch_eof=0i,fetch_failed=0i,fetch_head=0i,fetch_length=11i,fetch_no_thread=0i,fetch_none=0i,hcb_insert=1i,hcb_lock=1i,hcb_nolock=644000i,losthdr=0i,n_backend=19i,n_expired=1i,n_gunzip=289204i,n_gzip=0i,n_lru_limited=0i,n_lru_moved=843i,n_lru_nuked=0i,n_obj_purged=0i,n_object=0i,n_objectcore=40i,n_objecthead=40i,n_purges=0i,n_test_gunzip=6i,n_vampireobject=0i,n_vcl=7i,n_vcl_avail=7i,n_vcl_discard=0i,pools=2i,req_dropped=0i,s_fetch=1i,s_pass=0i,s_pipe=0i,s_pipe_hdrbytes=0i,s_pipe_in=0i,s_pipe_out=0i,s_req_bodybytes=0i,s_req_hdrbytes=54740000i,s_resp_bodybytes=341618192i,s_resp_hdrbytes=190035576i,s_sess=651038i,s_synth=0i,sc_overload=0i,sc_pipe_overflow=0i,sc_range_short=0i,sc_rem_close=7038i,sc_req_close=0i,sc_req_http10=644000i,sc_req_http20=0i,sc_resp_close=0i,sc_rx_bad=0i,sc_rx_body=0i,sc_rx_junk=0i,sc_rx_overflow=0i,sc_rx_timeout=0i,sc_tx_eof=0i,sc_tx_error=0i,sc_tx_pipe=0i,sc_vcl_failure=0i,sess_closed=644000i,sess_closed_err=644000i,sess_conn=651038i,sess_drop=0i,sess_dropped=0i,sess_fail=0i,sess_fail_ebadf=0i,sess_fail_econnaborted=0i,sess_fail_eintr=0i,sess_fail_emfile=0i,sess_fail_enomem=0i,sess_fail_other=0i,sess_herd=11i,sess_queued=0i,sess_readahead=0i,shm_cont=3572i,shm_cycles=10i,shm_flushes=0i,shm_records=30727866i,shm_writes=4661979i,summs=2225754i,thread_queue_len=0i,threads=200i,threads_created=200i,threads_destroyed=0i,threads_failed=0i,threads_limited=0i,uptime=4416326i,vcl_fail=0i,vmods=2i,ws_backend_overflow=0i,ws_client_overflow=0i,ws_session_overflow=0i,ws_thread_overflow=0i 1631121675000000000 -> varnish,backend=default,host=kozel.local,section=VBE bereq_bodybytes=0i,bereq_hdrbytes=0i,beresp_bodybytes=0i,beresp_hdrbytes=0i,busy=0i,conn=0i,fail=0i,fail_eacces=0i,fail_eaddrnotavail=0i,fail_econnrefused=0i,fail_enetunreach=0i,fail_etimedout=0i,fail_other=0i,happy=9223372036854775807i,helddown=0i,pipe_hdrbytes=0i,pipe_in=0i,pipe_out=0i,req=0i,unhealthy=0i 1631121675000000000 -> varnish,backend=server1,host=kozel.local,section=VBE bereq_bodybytes=0i,bereq_hdrbytes=0i,beresp_bodybytes=0i,beresp_hdrbytes=0i,busy=0i,conn=0i,fail=0i,fail_eacces=0i,fail_eaddrnotavail=0i,fail_econnrefused=30609i,fail_enetunreach=0i,fail_etimedout=0i,fail_other=0i,happy=0i,helddown=3i,pipe_hdrbytes=0i,pipe_in=0i,pipe_out=0i,req=0i,unhealthy=0i 1631121675000000000 -> varnish,backend=server2,host=kozel.local,section=VBE bereq_bodybytes=0i,bereq_hdrbytes=0i,beresp_bodybytes=0i,beresp_hdrbytes=0i,busy=0i,conn=0i,fail=0i,fail_eacces=0i,fail_eaddrnotavail=0i,fail_econnrefused=30609i,fail_enetunreach=0i,fail_etimedout=0i,fail_other=0i,happy=0i,helddown=3i,pipe_hdrbytes=0i,pipe_in=0i,pipe_out=0i,req=0i,unhealthy=0i 1631121675000000000 -> varnish,backend=server_test1,host=kozel.local,section=VBE bereq_bodybytes=0i,bereq_hdrbytes=0i,beresp_bodybytes=0i,beresp_hdrbytes=0i,busy=0i,conn=0i,fail=0i,fail_eacces=0i,fail_eaddrnotavail=0i,fail_econnrefused=49345i,fail_enetunreach=0i,fail_etimedout=0i,fail_other=0i,happy=0i,helddown=2i,pipe_hdrbytes=0i,pipe_in=0i,pipe_out=0i,req=0i,unhealthy=0i 1631121675000000000 +```text +varnish,host=kozel.local,section=MAIN backend_busy=0i,backend_conn=19i,backend_fail=0i,backend_recycle=8i,backend_req=19i,backend_retry=0i,backend_reuse=0i,backend_unhealthy=0i,bans=1i,bans_added=1i,bans_completed=1i,bans_deleted=0i,bans_dups=0i,bans_lurker_contention=0i,bans_lurker_obj_killed=0i,bans_lurker_obj_killed_cutoff=0i,bans_lurker_tested=0i,bans_lurker_tests_tested=0i,bans_obj=0i,bans_obj_killed=0i,bans_persisted_bytes=16i,bans_persisted_fragmentation=0i,bans_req=0i,bans_tested=0i,bans_tests_tested=0i,busy_killed=0i,busy_sleep=0i,busy_wakeup=0i,cache_hit=643999i,cache_hit_grace=22i,cache_hitmiss=0i,cache_hitpass=0i,cache_miss=1i,client_req=644000i,client_req_400=0i,client_req_417=0i,client_resp_500=0i,esi_errors=0i,esi_warnings=0i,exp_mailed=37i,exp_received=37i,fetch_1xx=0i,fetch_204=0i,fetch_304=2i,fetch_bad=0i,fetch_chunked=6i,fetch_eof=0i,fetch_failed=0i,fetch_head=0i,fetch_length=11i,fetch_no_thread=0i,fetch_none=0i,hcb_insert=1i,hcb_lock=1i,hcb_nolock=644000i,losthdr=0i,n_backend=19i,n_expired=1i,n_gunzip=289204i,n_gzip=0i,n_lru_limited=0i,n_lru_moved=843i,n_lru_nuked=0i,n_obj_purged=0i,n_object=0i,n_objectcore=40i,n_objecthead=40i,n_purges=0i,n_test_gunzip=6i,n_vampireobject=0i,n_vcl=7i,n_vcl_avail=7i,n_vcl_discard=0i,pools=2i,req_dropped=0i,s_fetch=1i,s_pass=0i,s_pipe=0i,s_pipe_hdrbytes=0i,s_pipe_in=0i,s_pipe_out=0i,s_req_bodybytes=0i,s_req_hdrbytes=54740000i,s_resp_bodybytes=341618192i,s_resp_hdrbytes=190035576i,s_sess=651038i,s_synth=0i,sc_overload=0i,sc_pipe_overflow=0i,sc_range_short=0i,sc_rem_close=7038i,sc_req_close=0i,sc_req_http10=644000i,sc_req_http20=0i,sc_resp_close=0i,sc_rx_bad=0i,sc_rx_body=0i,sc_rx_junk=0i,sc_rx_overflow=0i,sc_rx_timeout=0i,sc_tx_eof=0i,sc_tx_error=0i,sc_tx_pipe=0i,sc_vcl_failure=0i,sess_closed=644000i,sess_closed_err=644000i,sess_conn=651038i,sess_drop=0i,sess_dropped=0i,sess_fail=0i,sess_fail_ebadf=0i,sess_fail_econnaborted=0i,sess_fail_eintr=0i,sess_fail_emfile=0i,sess_fail_enomem=0i,sess_fail_other=0i,sess_herd=11i,sess_queued=0i,sess_readahead=0i,shm_cont=3572i,shm_cycles=10i,shm_flushes=0i,shm_records=30727866i,shm_writes=4661979i,summs=2225754i,thread_queue_len=0i,threads=200i,threads_created=200i,threads_destroyed=0i,threads_failed=0i,threads_limited=0i,uptime=4416326i,vcl_fail=0i,vmods=2i,ws_backend_overflow=0i,ws_client_overflow=0i,ws_session_overflow=0i,ws_thread_overflow=0i 1631121675000000000 +varnish,backend=default,host=kozel.local,section=VBE bereq_bodybytes=0i,bereq_hdrbytes=0i,beresp_bodybytes=0i,beresp_hdrbytes=0i,busy=0i,conn=0i,fail=0i,fail_eacces=0i,fail_eaddrnotavail=0i,fail_econnrefused=0i,fail_enetunreach=0i,fail_etimedout=0i,fail_other=0i,happy=9223372036854775807i,helddown=0i,pipe_hdrbytes=0i,pipe_in=0i,pipe_out=0i,req=0i,unhealthy=0i 1631121675000000000 +varnish,backend=server1,host=kozel.local,section=VBE bereq_bodybytes=0i,bereq_hdrbytes=0i,beresp_bodybytes=0i,beresp_hdrbytes=0i,busy=0i,conn=0i,fail=0i,fail_eacces=0i,fail_eaddrnotavail=0i,fail_econnrefused=30609i,fail_enetunreach=0i,fail_etimedout=0i,fail_other=0i,happy=0i,helddown=3i,pipe_hdrbytes=0i,pipe_in=0i,pipe_out=0i,req=0i,unhealthy=0i 1631121675000000000 +varnish,backend=server2,host=kozel.local,section=VBE bereq_bodybytes=0i,bereq_hdrbytes=0i,beresp_bodybytes=0i,beresp_hdrbytes=0i,busy=0i,conn=0i,fail=0i,fail_eacces=0i,fail_eaddrnotavail=0i,fail_econnrefused=30609i,fail_enetunreach=0i,fail_etimedout=0i,fail_other=0i,happy=0i,helddown=3i,pipe_hdrbytes=0i,pipe_in=0i,pipe_out=0i,req=0i,unhealthy=0i 1631121675000000000 +varnish,backend=server_test1,host=kozel.local,section=VBE bereq_bodybytes=0i,bereq_hdrbytes=0i,beresp_bodybytes=0i,beresp_hdrbytes=0i,busy=0i,conn=0i,fail=0i,fail_eacces=0i,fail_eaddrnotavail=0i,fail_econnrefused=49345i,fail_enetunreach=0i,fail_etimedout=0i,fail_other=0i,happy=0i,helddown=2i,pipe_hdrbytes=0i,pipe_in=0i,pipe_out=0i,req=0i,unhealthy=0i 1631121675000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/vault.md b/src/writeData/components/telegrafPlugins/vault.md index 37c5031ac0..2e73f57e3f 100644 --- a/src/writeData/components/telegrafPlugins/vault.md +++ b/src/writeData/components/telegrafPlugins/vault.md @@ -1,10 +1,24 @@ # Hashicorp Vault Input Plugin -The Vault plugin could grab metrics from every Vault agent of the -cluster. Telegraf may be present in every node and connect to the agent -locally. In this case should be something like `http://127.0.0.1:8200`. +This plugin collects metrics from every [Vault][vault] agent of a cluster. -> Tested on vault 1.8.5 +> [!NOTE] +> This plugin requires Vault v1.8.5+ + +⭐ Telegraf v1.22.0 +🏷️ server +💻 all + +[vault]: https://www.hashicorp.com/de/products/vault + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -33,7 +47,16 @@ locally. In this case should be something like `http://127.0.0.1:8200`. ## Metrics For a more deep understanding of Vault monitoring, please have a look at the -following Vault documentation: +following Vault [telemetry][telemetry] and [monitoring][monitoring] +documentation. + +[telemetry]: https://www.vaultproject.io/docs/internals/telemetry +[monitoring]: https://learn.hashicorp.com/tutorials/vault/monitor-telemetry-audit-splunk?in=vault/monitoring -- [https://www.vaultproject.io/docs/internals/telemetry](https://www.vaultproject.io/docs/internals/telemetry) -- [https://learn.hashicorp.com/tutorials/vault/monitor-telemetry-audit-splunk?in=vault/monitoring](https://learn.hashicorp.com/tutorials/vault/monitor-telemetry-audit-splunk?in=vault/monitoring) +## Example Output + +```text +vault.raft.replication.appendEntries.logs,peer_id=clustnode-02 count=130i,max=1i,mean=0.015384615384615385,min=0i,rate=0.2,stddev=0.12355304447984486,sum=2i 1638287340000000000 +vault.core.unsealed,cluster=vault-cluster-23b671c7 value=1i 1638287340000000000 +vault.token.lookup count=5135i,max=16.22449493408203,mean=0.1698389152269865,min=0.06690400093793869,rate=87.21228296905755,stddev=0.24637634000854705,sum=872.1228296905756 1638287340000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/webhooks.md b/src/writeData/components/telegrafPlugins/webhooks.md index ccfae6d0ea..ba6de34b45 100644 --- a/src/writeData/components/telegrafPlugins/webhooks.md +++ b/src/writeData/components/telegrafPlugins/webhooks.md @@ -1,19 +1,31 @@ # Webhooks Input Plugin -This is a Telegraf service plugin that start an http server and register -multiple webhook listeners. +This service plugin provides an HTTP server and register for multiple webhook +listeners. -```sh -telegraf config -input-filter webhooks -output-filter influxdb > config.conf.new -``` +⭐ Telegraf v1.0.0 +🏷️ applications, web +💻 all -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: +## Service Input -```sh -cp config.conf.new /etc/telegraf/telegraf.conf -sudo service telegraf start -``` +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -23,6 +35,11 @@ sudo service telegraf start ## Address and port to host Webhook listener on service_address = ":1619" + ## Maximum duration before timing out read of the request + # read_timeout = "10s" + ## Maximum duration before timing out write of the response + # write_timeout = "10s" + [inputs.webhooks.filestack] path = "/filestack" @@ -65,25 +82,25 @@ sudo service telegraf start ## HTTP basic auth #username = "" #password = "" - + [inputs.webhooks.artifactory] path = "/artifactory" ``` -## Available webhooks +### Available webhooks + +- Artifactory +- Filestack +- Github +- Mandrill +- Papertrail +- Particle +- Rollbar -- [Filestack](filestack/) -- [Github](github/) -- [Mandrill](mandrill/) -- [Rollbar](rollbar/) -- [Papertrail](papertrail/) -- [Particle](particle/) -- [Artifactory](artifactory/) +## Metrics -## Adding new webhooks plugin +The produced metrics depend on the configured webhook. -1. Add your webhook plugin inside the `webhooks` folder -1. Your plugin must implement the `Webhook` interface -1. Import your plugin in the `webhooks.go` file and add it to the `Webhooks` struct +## Example Output -Both [Github](github/) and [Rollbar](rollbar/) are good example to follow. +The produced metrics depend on the configured webhook. diff --git a/src/writeData/components/telegrafPlugins/win_eventlog.md b/src/writeData/components/telegrafPlugins/win_eventlog.md index 3be7760a06..3967c6d1bd 100644 --- a/src/writeData/components/telegrafPlugins/win_eventlog.md +++ b/src/writeData/components/telegrafPlugins/win_eventlog.md @@ -1,23 +1,35 @@ # Windows Eventlog Input Plugin -Telegraf's win_eventlog input plugin gathers metrics from the windows event log. +This plugin gathers metrics from the [Windows event log][win_event_log] on +Windows Vista and higher. -## Collect Windows Event Log messages +> [!NOTE] +> Some event channels, like the System Log, require Administrator permissions +> to subscribe. -Supports Windows Vista and higher. +⭐ Telegraf v1.16.0 +🏷️ logging +💻 windows -Telegraf should have Administrator permissions to subscribe for some of the -Windows Events Channels, like System Log. +[win_event_log]: https://learn.microsoft.com/en-us/shows/inside/event-viewer -Telegraf minimum version: Telegraf 1.16.0 +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Input plugin to collect Windows Event Log messages +# This plugin ONLY supports Windows [[inputs.win_eventlog]] - ## Telegraf should have Administrator permissions to subscribe for some Windows Events channels - ## (System log, for example) + ## Telegraf should have Administrator permissions to subscribe for some + ## Windows Events channels (e.g. System log) ## LCID (Locale ID) for event rendering ## 1033 to force English language @@ -55,42 +67,66 @@ Telegraf minimum version: Telegraf 1.16.0 ''' - ## System field names: - ## "Source", "EventID", "Version", "Level", "Task", "Opcode", "Keywords", "TimeCreated", - ## "EventRecordID", "ActivityID", "RelatedActivityID", "ProcessID", "ThreadID", "ProcessName", - ## "Channel", "Computer", "UserID", "UserName", "Message", "LevelText", "TaskText", "OpcodeText" + ## When true, event logs are read from the beginning; otherwise only future + ## events will be logged. + # from_beginning = false - ## In addition to System, Data fields can be unrolled from additional XML nodes in event. - ## Human-readable representation of those nodes is formatted into event Message field, - ## but XML is more machine-parsable + ## Number of events to fetch in one batch + # event_batch_size = 5 # Process UserData XML to fields, if this node exists in Event XML - process_userdata = true + # process_userdata = true # Process EventData XML to fields, if this node exists in Event XML - process_eventdata = true + # process_eventdata = true ## Separator character to use for unrolled XML Data field names - separator = "_" + # separator = "_" - ## Get only first line of Message field. For most events first line is usually more than enough - only_first_line_of_message = true + ## Get only first line of Message field. For most events first line is + ## usually more than enough + # only_first_line_of_message = true ## Parse timestamp from TimeCreated.SystemTime event field. - ## Will default to current time of telegraf processing on parsing error or if set to false - timestamp_from_event = true - - ## Fields to include as tags. Globbing supported ("Level*" for both "Level" and "LevelText") - event_tags = ["Source", "EventID", "Level", "LevelText", "Task", "TaskText", "Opcode", "OpcodeText", "Keywords", "Channel", "Computer"] + ## Will default to current time of telegraf processing on parsing error or if + ## set to false + # timestamp_from_event = true - ## Default list of fields to send. All fields are sent by default. Globbing supported - event_fields = ["*"] - - ## Fields to exclude. Also applied to data fields. Globbing supported - exclude_fields = ["TimeCreated", "Binary", "Data_Address*"] - - ## Skip those tags or fields if their value is empty or equals to zero. Globbing supported - exclude_empty = ["*ActivityID", "UserID"] + ## System field names: + ## "Source", "EventID", "Version", "Level", "Task", "Opcode", "Keywords", + ## "TimeCreated", "EventRecordID", "ActivityID", "RelatedActivityID", + ## "ProcessID", "ThreadID", "ProcessName", "Channel", "Computer", "UserID", + ## "UserName", "Message", "LevelText", "TaskText", "OpcodeText" + ## + ## In addition to System, Data fields can be unrolled from additional XML + ## nodes in event. Human-readable representation of those nodes is formatted + ## into event Message field, but XML is more machine-parsable + + ## Event fields to include as tags + ## The values below are included by default. + ## Globbing supported (e.g. "Level*" matches both "Level" and "LevelText") + # event_tags = ["Source", "EventID", "Level", "LevelText", "Task", "TaskText", "Opcode", "OpcodeText", "Keywords", "Channel", "Computer"] + + ## Event fields to include + ## All fields are sent by default. + ## Globbing supported (e.g. "Level*" matches both "Level" and "LevelText") + # event_fields = ["*"] + + ## Event fields to exclude + ## Note that if you exclude all fields then no metrics are produced. A valid + ## metric includes at least one field. + ## Globbing supported (e.g. "Level*" matches both "Level" and "LevelText") + # exclude_fields = [] + + ## Event fields to exclude if their value is empty or equals to zero + ## The values below are included by default. + ## Globbing supported (e.g. "Level*" matches both "Level" and "LevelText") + # exclude_empty = ["Task", "Opcode", "*ActivityID", "UserID"] + + ## Maximum memory size available for an event to render + ## Events larger that that are not processed and will not create a metric. + ## NOTE: As events are encoded in UTF-16 we need two bytes per character. + # event_size_limit = "64KB" ``` ### Filtering @@ -122,6 +158,15 @@ XML Query documentation: +## Troubleshooting + +In case you see a `Collection took longer than expected` warning, there might +be a burst of events logged and the API is not able to deliver them fast enough +to complete processing within the specified interval. Tweaking the +`event_batch_size` setting might help to mitigate the issue. +The said warning does not indicate data-loss, but you should investigate the +amount of events you log. + ## Metrics You can send any field, *System*, *Computed* or *XML* as tag field. List of @@ -187,7 +232,7 @@ brevity, plugin takes only the first line. You can set `TimeCreated` field is a string in RFC3339Nano format. By default Telegraf parses it as an event timestamp. If there is a field parse error or -`timestamp_from_event` configration parameter is set to `false`, then event +`timestamp_from_event` configuration parameter is set to `false`, then event timestamp will be set to the exact time when Telegraf has parsed this event, so it will be rounded to the nearest minute. @@ -228,7 +273,7 @@ CbsPackageChangeState_Client = "UpdateAgentLCU" If there are more than one field with the same name, all those fields are given suffix with number: `_1`, `_2` and so on. -## Localization +### Localization Human readable Event Description is in the Message field. But it is better to be skipped in favour of the Event XML values, because they are more @@ -251,11 +296,7 @@ Some values are changed for anonymity. ```text win_eventlog,Channel=System,Computer=PC,EventID=105,Keywords=0x8000000000000000,Level=4,LevelText=Information,Opcode=10,OpcodeText=General,Source=WudfUsbccidDriver,Task=1,TaskText=Driver,host=PC ProcessName="WUDFHost.exe",UserName="NT AUTHORITY\\LOCAL SERVICE",Data_dwMaxCCIDMessageLength="271",Data_bPINSupport="0x0",Data_bMaxCCIDBusySlots="1",EventRecordID=1914688i,UserID="S-1-5-19",Version=0i,Data_bClassGetEnvelope="0x0",Data_wLcdLayout="0x0",Data_bClassGetResponse="0x0",TimeCreated="2020-08-21T08:43:26.7481077Z",Message="The Smartcard reader reported the following class descriptor (part 2)." 1597999410000000000 - win_eventlog,Channel=Security,Computer=PC,EventID=4798,Keywords=Audit\ Success,Level=0,LevelText=Information,Opcode=0,OpcodeText=Info,Source=Microsoft-Windows-Security-Auditing,Task=13824,TaskText=User\ Account\ Management,host=PC Data_TargetDomainName="PC",Data_SubjectUserName="User",Data_CallerProcessId="0x3d5c",Data_SubjectLogonId="0x46d14f8d",Version=0i,EventRecordID=223157i,Message="A user's local group membership was enumerated.",Data_TargetUserName="User",Data_TargetSid="S-1-5-21-.-.-.-1001",Data_SubjectUserSid="S-1-5-21-.-.-.-1001",Data_CallerProcessName="C:\\Windows\\explorer.exe",ActivityID="{0d4cc11d-7099-0002-4dc1-4c0d9970d601}",UserID="",Data_SubjectDomainName="PC",TimeCreated="2020-08-21T08:43:27.3036771Z",ProcessName="lsass.exe" 1597999410000000000 - win_eventlog,Channel=Microsoft-Windows-Dhcp-Client/Admin,Computer=PC,EventID=1002,Keywords=0x4000000000000001,Level=2,LevelText=Error,Opcode=76,OpcodeText=IpLeaseDenied,Source=Microsoft-Windows-Dhcp-Client,Task=3,TaskText=Address\ Configuration\ State\ Event,host=PC Version=0i,Message="The IP address lease 10.20.30.40 for the Network Card with network address 0xaabbccddeeff has been denied by the DHCP server 10.20.30.1 (The DHCP Server sent a DHCPNACK message).",UserID="S-1-5-19",Data_HWLength="6",Data_HWAddress="545595B7EA01",TimeCreated="2020-08-21T08:43:42.8265853Z",EventRecordID=34i,ProcessName="svchost.exe",UserName="NT AUTHORITY\\LOCAL SERVICE" 1597999430000000000 - -win_eventlog,Channel=System,Computer=PC,EventID=10016,Keywords=Classic,Level=3,LevelText=Warning,Opcode=0,OpcodeText=Info,Source=Microsoft-Windows-DistributedCOM,Task=0,host=PC Data_param3="Активация",Data_param6="PC",Data_param8="S-1-5-21-2007059868-50816014-3139024325-1001",Version=0i,UserName="PC\\User",Data_param1="по умолчанию для компьютера",Data_param2="Локально",Data_param7="User",Data_param9="LocalHost (с использованием LRPC)",Data_param10="Microsoft.Windows.ShellExperienceHost_10.0.19041.423_neutral_neutral_cw5n1h2txyewy",ActivityID="{839cac9e-73a1-4559-a847-62f3a5e73e44}",ProcessName="svchost.exe",Message="The по умолчанию для компьютера permission settings do not grant Локально Активация permission for the COM Server application with CLSID ",Data_param5="{316CDED5-E4AE-4B15-9113-7055D84DCC97}",Data_param11="S-1-15-2-.-.-.-.-.-.-2861478708",TimeCreated="2020-08-21T08:43:45.5233759Z",EventRecordID=1914689i,UserID="S-1-5-21-.-.-.-1001",Data_param4="{C2F03A33-21F5-47FA-B4BB-156362A2F239}" 1597999430000000000 - +win_eventlog,Channel=System,Computer=PC,EventID=10016,Keywords=Classic,Level=3,LevelText=Warning,Opcode=0,OpcodeText=Info,Source=Microsoft-Windows-DistributedCOM,Task=0,host=PC Data_param3="Активация",Data_param6="PC",Data_param8="S-1-5-21-2007059868-50816014-3139024325-1001",Version=0i,UserName="PC\\User",Data_param1="по умолчанию для компьютера",Data_param2="Локально",Data_param7="User",Data_param9="LocalHost (с использо��анием LRPC)",Data_param10="Microsoft.Windows.ShellExperienceHost_10.0.19041.423_neutral_neutral_cw5n1h2txyewy",ActivityID="{839cac9e-73a1-4559-a847-62f3a5e73e44}",ProcessName="svchost.exe",Message="The по умолчанию для компьютера permission settings do not grant Локально Активация permission for the COM Server application with CLSID ",Data_param5="{316CDED5-E4AE-4B15-9113-7055D84DCC97}",Data_param11="S-1-15-2-.-.-.-.-.-.-2861478708",TimeCreated="2020-08-21T08:43:45.5233759Z",EventRecordID=1914689i,UserID="S-1-5-21-.-.-.-1001",Data_param4="{C2F03A33-21F5-47FA-B4BB-156362A2F239}" 1597999430000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/win_perf_counters.md b/src/writeData/components/telegrafPlugins/win_perf_counters.md index e9416ffb12..96136840ed 100644 --- a/src/writeData/components/telegrafPlugins/win_perf_counters.md +++ b/src/writeData/components/telegrafPlugins/win_perf_counters.md @@ -1,19 +1,199 @@ # Windows Performance Counters Input Plugin -This document presents the input plugin to read Performance Counters on Windows -operating systems. +This plugin produces metrics from the collected +[Windows Performance Counters][perf_counters]. -The configuration is parsed and then tested for validity, such as -whether the Object, Instance and Counter exist on Telegraf startup. +⭐ Telegraf v0.10.2 +🏷️ system +💻 windows -Counter paths are refreshed periodically, see the -[CountersRefreshInterval](#countersrefreshinterval) configuration parameter for -more info. +[perf_counters]: https://learn.microsoft.com/en-us/windows/win32/perfctrs/about-performance-counters -In case of query for all instances `["*"]`, the plugin does not return the -instance `_Total` by default. See [IncludeTotal](#includetotal) for more info. +## Global configuration options -## Basics +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins + +## Configuration + +```toml @sample.conf +# Input plugin to counterPath Performance Counters on Windows operating systems +# This plugin ONLY supports Windows +[[inputs.win_perf_counters]] + ## By default this plugin returns basic CPU and Disk statistics. See the + ## README file for more examples. Uncomment examples below or write your own + ## as you see fit. If the system being polled for data does not have the + ## Object at startup of the Telegraf agent, it will not be gathered. + + ## Print All matching performance counters + # PrintValid = false + + ## Whether request a timestamp along with the PerfCounter data or use current + ## time + # UsePerfCounterTime = true + + ## If UseWildcardsExpansion params is set to true, wildcards (partial + ## wildcards in instance names and wildcards in counters names) in configured + ## counter paths will be expanded and in case of localized Windows, counter + ## paths will be also localized. It also returns instance indexes in instance + ## names. If false, wildcards (not partial) in instance names will still be + ## expanded, but instance indexes will not be returned in instance names. + # UseWildcardsExpansion = false + + ## When running on a localized version of Windows and with + ## UseWildcardsExpansion = true, Windows will localize object and counter + ## names. When LocalizeWildcardsExpansion = false, use the names in + ## object.Counters instead of the localized names. Only Instances can have + ## wildcards in this case. ObjectName and Counters must not have wildcards + ## when this setting is false. + # LocalizeWildcardsExpansion = true + + ## Period after which counters will be reread from configuration and + ## wildcards in counter paths expanded + # CountersRefreshInterval="1m" + + ## Accepts a list of PDH error codes which are defined in pdh.go, if this + ## error is encountered it will be ignored. For example, you can provide + ## "PDH_NO_DATA" to ignore performance counters with no instances. By default + ## no errors are ignored You can find the list here: + ## https://github.com/influxdata/telegraf/blob/master/plugins/inputs/win_perf_counters/pdh.go + ## e.g. IgnoredErrors = ["PDH_NO_DATA"] + # IgnoredErrors = [] + + ## Maximum size of the buffer for values returned by the API + ## Increase this value if you experience "buffer limit reached" errors. + # MaxBufferSize = "4MiB" + + ## NOTE: Due to the way TOML is parsed, tables must be at the END of the + ## plugin definition, otherwise additional config options are read as part of + ## the table + + # [[inputs.win_perf_counters.object]] + # Measurement = "" + # ObjectName = "" + # Instances = [""] + # Counters = [] + ## Additional Object Settings + ## * IncludeTotal: set to true to include _Total instance when querying + ## for all metrics via '*' + ## * WarnOnMissing: print out when the performance counter is missing + ## from object, counter or instance + ## * UseRawValues: gather raw values instead of formatted. Raw values are + ## stored in the field name with the "_Raw" suffix, e.g. + ## "Disk_Read_Bytes_sec_Raw". + # IncludeTotal = false + # WarnOnMissing = false + # UseRawValues = false + + ## Processor usage, alternative to native, reports on a per core. + # [[inputs.win_perf_counters.object]] + # Measurement = "win_cpu" + # ObjectName = "Processor" + # Instances = ["*"] + # UseRawValues = true + # Counters = [ + # "% Idle Time", + # "% Interrupt Time", + # "% Privileged Time", + # "% User Time", + # "% Processor Time", + # "% DPC Time", + # ] + + ## Disk times and queues + # [[inputs.win_perf_counters.object]] + # Measurement = "win_disk" + # ObjectName = "LogicalDisk" + # Instances = ["*"] + # Counters = [ + # "% Idle Time", + # "% Disk Time", + # "% Disk Read Time", + # "% Disk Write Time", + # "% User Time", + # "% Free Space", + # "Current Disk Queue Length", + # "Free Megabytes", + # ] + + # [[inputs.win_perf_counters.object]] + # Measurement = "win_diskio" + # ObjectName = "PhysicalDisk" + # Instances = ["*"] + # Counters = [ + # "Disk Read Bytes/sec", + # "Disk Write Bytes/sec", + # "Current Disk Queue Length", + # "Disk Reads/sec", + # "Disk Writes/sec", + # "% Disk Time", + # "% Disk Read Time", + # "% Disk Write Time", + # ] + + # [[inputs.win_perf_counters.object]] + # Measurement = "win_net" + # ObjectName = "Network Interface" + # Instances = ["*"] + # Counters = [ + # "Bytes Received/sec", + # "Bytes Sent/sec", + # "Packets Received/sec", + # "Packets Sent/sec", + # "Packets Received Discarded", + # "Packets Outbound Discarded", + # "Packets Received Errors", + # "Packets Outbound Errors", + # ] + + # [[inputs.win_perf_counters.object]] + # Measurement = "win_system" + # ObjectName = "System" + # Instances = ["------"] + # Counters = [ + # "Context Switches/sec", + # "System Calls/sec", + # "Processor Queue Length", + # "System Up Time", + # ] + + ## Example counterPath where the Instance portion must be removed to get + ## data back, such as from the Memory object. + # [[inputs.win_perf_counters.object]] + # Measurement = "win_mem" + # ObjectName = "Memory" + ## Use 6 x - to remove the Instance bit from the counterPath. + # Instances = ["------"] + # Counters = [ + # "Available Bytes", + # "Cache Faults/sec", + # "Demand Zero Faults/sec", + # "Page Faults/sec", + # "Pages/sec", + # "Transition Faults/sec", + # "Pool Nonpaged Bytes", + # "Pool Paged Bytes", + # "Standby Cache Reserve Bytes", + # "Standby Cache Normal Priority Bytes", + # "Standby Cache Core Bytes", + # ] + + ## Example query where the Instance portion must be removed to get data back, + ## such as from the Paging File object. + # [[inputs.win_perf_counters.object]] + # Measurement = "win_swap" + # ObjectName = "Paging File" + # Instances = ["_Total"] + # Counters = [ + # "% Usage", + # ] +``` + +### Basics The examples contained in this file have been found on the internet as counters used when performance monitoring @@ -26,18 +206,34 @@ For more information on concepts and terminology including object, counter, and instance names, see the help in the Windows Performance Monitor app. -### Plugin wide +#### Schema + +*Measurement name* is specified per performance object +or `win_perf_counters` by default. + +*Tags:* + +- source - computer name, as specified in the `Sources` parameter. Name + `localhost` is translated into the host name +- objectname - normalized name of the performance object +- instance - instance name, if performance object supports multiple instances, + otherwise omitted + +*Fields* are counters of the performance object. +The field name is normalized counter name. + +#### Plugin wide Plugin wide entries are underneath `[[inputs.win_perf_counters]]`. -#### PrintValid +##### PrintValid Bool, if set to `true` will print out all matching performance objects. Example: `PrintValid=true` -#### UseWildcardsExpansion +##### UseWildcardsExpansion If `UseWildcardsExpansion` is true, wildcards can be used in the instance name and the counter name. Instance indexes will also be @@ -52,7 +248,7 @@ used, but instance indexes will not be returned in the instance names. Example: `UseWildcardsExpansion=true` -#### LocalizeWildcardsExpansion +##### LocalizeWildcardsExpansion `LocalizeWildcardsExpansion` selects whether object and counter names are localized when `UseWildcardsExpansion` is true and Telegraf is @@ -72,7 +268,7 @@ in instances. Object and counter names must not have wildcards. Example: `LocalizeWildcardsExpansion=true` -#### CountersRefreshInterval +##### CountersRefreshInterval Configured counters are matched against available counters at the interval specified by the `CountersRefreshInterval` parameter. The default value is `1m` @@ -89,7 +285,7 @@ Set it to `0s` to disable periodic refreshing. Example: `CountersRefreshInterval=1m` -#### PreVistaSupport +##### PreVistaSupport (Deprecated in 1.7; Necessary features on Windows Vista and newer are checked dynamically) @@ -104,7 +300,7 @@ since Vista. Example for Windows Server 2003, this would be set to true: `PreVistaSupport=true` -#### UsePerfCounterTime +##### UsePerfCounterTime Bool, if set to `true` will request a timestamp along with the PerfCounter data. If se to `false`, current time will be used. @@ -113,7 +309,7 @@ Supported on Windows Vista/Windows Server 2008 and newer Example: `UsePerfCounterTime=true` -#### IgnoredErrors +##### IgnoredErrors IgnoredErrors accepts a list of PDH error codes which are defined in pdh.go, if this error is encountered it will be ignored. For example, you can provide @@ -124,11 +320,30 @@ errors](pdh.go). Example: `IgnoredErrors=["PDH_NO_DATA"]` -### Object +##### Sources (Optional) + +Host names or ip addresses of computers to gather all performance counters from. +The user running Telegraf must be authenticated to the remote computer(s). +E.g. via Windows sharing `net use \\SQL-SERVER-01`. +Use either localhost (`"localhost"`) or real local computer name to gather +counters also from localhost among other computers. Skip, if gather only from +localhost. + +If a performance counter is present only on specific hosts set `Sources` param +on the specific counter level configuration to override global (plugin wide) +sources. + +Example: +`Sources = ["localhost", "SQL-SERVER-01", "SQL-SERVER-02", "SQL-SERVER-03"]` + +Default: +`Sources = ["localhost"]` + +#### Object See Entry below. -### Entry +#### Entry A new configuration entry consists of the TOML header starting with, `[[inputs.win_perf_counters.object]]`. @@ -138,18 +353,14 @@ beneath the main win_perf_counters entry, `[[inputs.win_perf_counters]]`. Following this are 3 required key/value pairs and three optional parameters and their usage. -#### ObjectName - -(Required) +##### ObjectName (Required) ObjectName is the Object to query for, like Processor, DirectoryServices, LogicalDisk or similar. Example: `ObjectName = "LogicalDisk"` -#### Instances - -(Required) +##### Instances (Required) The instances key (this is an array) declares the instances of a counter you would like returned, it can be one or more values. @@ -168,9 +379,7 @@ Some Objects do not have instances to select from at all. Here only one option is valid if you want data back, and that is to specify `Instances = ["------"]`. -#### Counters - -(Required) +##### Counters (Required) The Counters key (this is an array) declares the counters of the ObjectName you would like returned, it can also be one or more values. @@ -181,9 +390,12 @@ This must be specified for every counter you want the results of, or use `["*"]` for all the counters of the object, if the `UseWildcardsExpansion` param is set to `true`. -#### Measurement +##### Sources (Object) (Optional) + +Overrides the [Sources](#sources-optional) global parameter for current performance +object. See [Sources](#sources-optional) description for more details. -(Optional) +##### Measurement (Optional) This key is optional. If it is not set it will be `win_perf_counters`. In InfluxDB this is the key underneath which the returned data is stored. So for @@ -192,9 +404,7 @@ you want your IIS and Disk results stored separately from Processor results. Example: `Measurement = "win_disk"` -#### UseRawValues - -(Optional) +##### UseRawValues (Optional) This key is optional. It is a simple bool. If set to `true`, counter values will be provided in the raw, integer, form. This is in contrast with the default @@ -204,14 +414,21 @@ as seen in the Windows Performance Monitor. A field representing raw counter value has the `_Raw` suffix. Raw values should be further used in a calculation, e.g. `100-(non_negative_derivative("Percent_Processor_Time_Raw",1s)/100000` -Note: Time based counters (i.e. _% Processor Time_) are reported in hundredths +Note: Time based counters (i.e. *% Processor Time*) are reported in hundredths of nanoseconds. +This key is optional. It is a simple bool. +If set to `true`, counter values will be provided in the raw, integer, form. +This is in contrast with the default behavior, where values are returned in a +formatted, displayable, form as seen in the Windows Performance Monitor. +A field representing raw counter value has the `_Raw` suffix. +Raw values should be further used in a calculation, +e.g. `100-(non_negative_derivative("Percent_Processor_Time_Raw",1s)/100000` +Note: Time based counters (i.e. `% Processor Time`) +are reported in hundredths of nanoseconds. Example: `UseRawValues = true` -#### IncludeTotal - -(Optional) +##### IncludeTotal (Optional) This key is optional. It is a simple bool. If it is not set to true or included it is treated as false. @@ -220,9 +437,7 @@ and you would also like all instances containing `_Total` to be returned, like `_Total`, `0,_Total` and so on where applicable (Processor Information is one example). -#### WarnOnMissing - -(Optional) +##### WarnOnMissing (Optional) This key is optional. It is a simple bool. If it is not set to true or included it is treated as false. @@ -230,157 +445,16 @@ This only has effect on the first execution of the plugin. It will print out any ObjectName/Instance/Counter combinations asked for that do not match. Useful when debugging new configurations. -#### FailOnMissing - -(Internal) +##### FailOnMissing (Internal) This key should not be used. It is for testing purposes only. It is a simple bool. If it is not set to true or included this is treated as false. If this is set to true, the plugin will abort and end prematurely if any of the combinations of ObjectName/Instances/Counters are invalid. -## Configuration - -```toml @sample.conf -# # Input plugin to counterPath Performance Counters on Windows operating systems -# [[inputs.win_perf_counters]] -# ## By default this plugin returns basic CPU and Disk statistics. -# ## See the README file for more examples. -# ## Uncomment examples below or write your own as you see fit. If the system -# ## being polled for data does not have the Object at startup of the Telegraf -# ## agent, it will not be gathered. -# ## Settings: -# # PrintValid = false # Print All matching performance counters -# # Whether request a timestamp along with the PerfCounter data or just use current time -# # UsePerfCounterTime=true -# # If UseWildcardsExpansion params is set to true, wildcards (partial wildcards in instance names and wildcards in counters names) in configured counter paths will be expanded -# # and in case of localized Windows, counter paths will be also localized. It also returns instance indexes in instance names. -# # If false, wildcards (not partial) in instance names will still be expanded, but instance indexes will not be returned in instance names. -# #UseWildcardsExpansion = false -# # When running on a localized version of Windows and with UseWildcardsExpansion = true, Windows will -# # localize object and counter names. When LocalizeWildcardsExpansion = false, use the names in object.Counters instead -# # of the localized names. Only Instances can have wildcards in this case. ObjectName and Counters must not have wildcards when this -# # setting is false. -# #LocalizeWildcardsExpansion = true -# # Period after which counters will be reread from configuration and wildcards in counter paths expanded -# CountersRefreshInterval="1m" -# ## Accepts a list of PDH error codes which are defined in pdh.go, if this error is encountered it will be ignored -# ## For example, you can provide "PDH_NO_DATA" to ignore performance counters with no instances -# ## By default no errors are ignored -# ## You can find the list here: https://github.com/influxdata/telegraf/blob/master/plugins/inputs/win_perf_counters/pdh.go -# ## e.g.: IgnoredErrors = ["PDH_NO_DATA"] -# # IgnoredErrors = [] -# -# [[inputs.win_perf_counters.object]] -# # Processor usage, alternative to native, reports on a per core. -# ObjectName = "Processor" -# Instances = ["*"] -# Counters = [ -# "% Idle Time", -# "% Interrupt Time", -# "% Privileged Time", -# "% User Time", -# "% Processor Time", -# "% DPC Time", -# ] -# Measurement = "win_cpu" -# # Set to true to include _Total instance when querying for all (*). -# # IncludeTotal=false -# # Print out when the performance counter is missing from object, counter or instance. -# # WarnOnMissing = false -# # Gather raw values instead of formatted. Raw value is stored in the field name with the "_Raw" suffix, e.g. "Disk_Read_Bytes_sec_Raw". -# # UseRawValues = true -# -# [[inputs.win_perf_counters.object]] -# # Disk times and queues -# ObjectName = "LogicalDisk" -# Instances = ["*"] -# Counters = [ -# "% Idle Time", -# "% Disk Time", -# "% Disk Read Time", -# "% Disk Write Time", -# "% User Time", -# "% Free Space", -# "Current Disk Queue Length", -# "Free Megabytes", -# ] -# Measurement = "win_disk" -# -# [[inputs.win_perf_counters.object]] -# ObjectName = "PhysicalDisk" -# Instances = ["*"] -# Counters = [ -# "Disk Read Bytes/sec", -# "Disk Write Bytes/sec", -# "Current Disk Queue Length", -# "Disk Reads/sec", -# "Disk Writes/sec", -# "% Disk Time", -# "% Disk Read Time", -# "% Disk Write Time", -# ] -# Measurement = "win_diskio" -# -# [[inputs.win_perf_counters.object]] -# ObjectName = "Network Interface" -# Instances = ["*"] -# Counters = [ -# "Bytes Received/sec", -# "Bytes Sent/sec", -# "Packets Received/sec", -# "Packets Sent/sec", -# "Packets Received Discarded", -# "Packets Outbound Discarded", -# "Packets Received Errors", -# "Packets Outbound Errors", -# ] -# Measurement = "win_net" -# -# -# [[inputs.win_perf_counters.object]] -# ObjectName = "System" -# Counters = [ -# "Context Switches/sec", -# "System Calls/sec", -# "Processor Queue Length", -# "System Up Time", -# ] -# Instances = ["------"] -# Measurement = "win_system" -# -# [[inputs.win_perf_counters.object]] -# # Example counterPath where the Instance portion must be removed to get data back, -# # such as from the Memory object. -# ObjectName = "Memory" -# Counters = [ -# "Available Bytes", -# "Cache Faults/sec", -# "Demand Zero Faults/sec", -# "Page Faults/sec", -# "Pages/sec", -# "Transition Faults/sec", -# "Pool Nonpaged Bytes", -# "Pool Paged Bytes", -# "Standby Cache Reserve Bytes", -# "Standby Cache Normal Priority Bytes", -# "Standby Cache Core Bytes", -# ] -# Instances = ["------"] # Use 6 x - to remove the Instance bit from the counterPath. -# Measurement = "win_mem" -# -# [[inputs.win_perf_counters.object]] -# # Example query where the Instance portion must be removed to get data back, -# # such as from the Paging File object. -# ObjectName = "Paging File" -# Counters = [ -# "% Usage", -# ] -# Instances = ["_Total"] -# Measurement = "win_swap" -``` +### Query examples -### Generic Queries +#### Generic Queries ```toml [[inputs.win_perf_counters]] @@ -425,7 +499,7 @@ combinations of ObjectName/Instances/Counters are invalid. #IncludeTotal=false #Set to true to include _Total instance when querying for all (*). ``` -### Active Directory Domain Controller +#### Active Directory Domain Controller ```toml [[inputs.win_perf_counters]] @@ -454,7 +528,7 @@ combinations of ObjectName/Instances/Counters are invalid. #IncludeTotal=false #Set to true to include _Total instance when querying for all (*). ``` -### DFS Namespace + Domain Controllers +#### DFS Namespace + Domain Controllers ```toml [[inputs.win_perf_counters]] @@ -468,7 +542,7 @@ combinations of ObjectName/Instances/Counters are invalid. #WarnOnMissing = false # Print out when the performance counter is missing, either of object, counter or instance. ``` -### DFS Replication + Domain Controllers +#### DFS Replication + Domain Controllers ```toml [[inputs.win_perf_counters]] @@ -482,7 +556,7 @@ combinations of ObjectName/Instances/Counters are invalid. #WarnOnMissing = false # Print out when the performance counter is missing, either of object, counter or instance. ``` -### DNS Server + Domain Controllers +#### DNS Server + Domain Controllers ```toml [[inputs.win_perf_counters]] @@ -494,7 +568,7 @@ combinations of ObjectName/Instances/Counters are invalid. #IncludeTotal=false #Set to true to include _Total instance when querying for all (*). ``` -### IIS / ASP.NET +#### IIS / ASP.NET ```toml [[inputs.win_perf_counters]] @@ -539,7 +613,7 @@ combinations of ObjectName/Instances/Counters are invalid. #IncludeTotal=false #Set to true to include _Total instance when querying for all (*). ``` -### Process +#### Process ```toml [[inputs.win_perf_counters]] @@ -552,7 +626,7 @@ combinations of ObjectName/Instances/Counters are invalid. #IncludeTotal=false #Set to true to include _Total instance when querying for all (*). ``` -### .NET Monitoring +#### .NET Monitoring ```toml [[inputs.win_perf_counters]] @@ -614,11 +688,17 @@ to check the counter path on the command line. E.g. `typeperf If no metrics are emitted even with the default config, you may need to repair your performance counters. -1. Launch the Command Prompt as Administrator (right click Runs As Administrator). -1. Drop into the C:\WINDOWS\System32 directory by typing `C:` then `cd \Windows\System32` +1. Launch the Command Prompt as Administrator + (right click "Runs As Administrator"). +1. Drop into the C:\WINDOWS\System32 directory by typing `C:` then + `cd \Windows\System32` 1. Rebuild your counter values, which may take a few moments so please be patient, by running: ```batchfile lodctr /r ``` + +## Metrics + +## Example Output diff --git a/src/writeData/components/telegrafPlugins/win_services.md b/src/writeData/components/telegrafPlugins/win_services.md index 2450bcdb70..5d27b58de1 100644 --- a/src/writeData/components/telegrafPlugins/win_services.md +++ b/src/writeData/components/telegrafPlugins/win_services.md @@ -1,78 +1,73 @@ # Windows Services Input Plugin -Reports information about Windows service status. +This plugin collects information about the status of Windows services. -Monitoring some services may require running Telegraf with administrator -privileges. +> [!NOTE] +> Monitoring some services may require running Telegraf with administrator +> privileges. + +⭐ Telegraf v1.4.0 +🏷️ system +💻 windows + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Input plugin to report Windows services info. +# This plugin ONLY supports Windows [[inputs.win_services]] - ## Names of the services to monitor. Leave empty to monitor all the available services on the host. Globs accepted. Case sensitive. + ## Names of the services to monitor. Leave empty to monitor all the available + ## services on the host. Globs accepted. Case insensitive. service_names = [ "LanmanServer", "TermService", "Win*", ] - excluded_service_names = ['WinRM'] # optional, list of service names to exclude + + # optional, list of service names to exclude + excluded_service_names = ['WinRM'] ``` ## Metrics - win_services - - state : integer - - startup_mode : integer + - tags + - service_name + - display_name + - fields + - state (integer) + - startup_mode (integer) The `state` field can have the following values: -- 1 - stopped -- 2 - start pending -- 3 - stop pending -- 4 - running -- 5 - continue pending -- 6 - pause pending -- 7 - paused +- `1` - stopped +- `2` - start pending +- `3` - stop pending +- `4` - running +- `5` - continue pending +- `6` - pause pending +- `7` - paused The `startup_mode` field can have the following values: -- 0 - boot start -- 1 - system start -- 2 - auto start -- 3 - demand start -- 4 - disabled - -### Tags - -- All measurements have the following tags: - - service_name - - display_name +- `0` - boot start +- `1` - system start +- `2` - auto start +- `3` - demand start +- `4` - disabled ## Example Output -```shell +```text win_services,host=WIN2008R2H401,display_name=Server,service_name=LanmanServer state=4i,startup_mode=2i 1500040669000000000 win_services,display_name=Remote\ Desktop\ Services,service_name=TermService,host=WIN2008R2H401 state=1i,startup_mode=3i 1500040669000000000 ``` - -### TICK Scripts - -A sample TICK script for a notification about a not running service. It sends a -notification whenever any service changes its state to be not _running_ and when -it changes that state back to _running_. The notification is sent via an HTTP -POST call. - -```shell -stream - |from() - .database('telegraf') - .retentionPolicy('autogen') - .measurement('win_services') - .groupBy('host','service_name') - |alert() - .crit(lambda: "state" != 4) - .stateChangesOnly() - .message('Service {{ index .Tags "service_name" }} on Host {{ index .Tags "host" }} is in state {{ index .Fields "state" }} ') - .post('http://localhost:666/alert/service') -``` diff --git a/src/writeData/components/telegrafPlugins/wireguard.md b/src/writeData/components/telegrafPlugins/wireguard.md index 86ebdee7a6..15b281b27f 100644 --- a/src/writeData/components/telegrafPlugins/wireguard.md +++ b/src/writeData/components/telegrafPlugins/wireguard.md @@ -1,8 +1,24 @@ # Wireguard Input Plugin -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. +This plugin collects statistics on a local [Wireguard][wireguard] server +using the [`wgctrl` library][wgctrl]. The plugin reports gauge metrics for +Wireguard interface device(s) and its peers. + +⭐ Telegraf v1.14.0 +🏷️ network +💻 all + +[wireguard]: https://www.wireguard.com/ +[wgctrl]: https://github.com/WireGuard/wgctrl-go + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -14,29 +30,6 @@ reports gauge metrics for Wireguard interface device(s) and its peers. # devices = ["wg0"] ``` -## Metrics - -- `wireguard_device` - - tags: - - `name` (interface device name, e.g. `wg0`) - - `type` (Wireguard tunnel type, e.g. `linux_kernel` or `userspace`) - - fields: - - `listen_port` (int, UDP port on which the interface is listening) - - `firewall_mark` (int, device's current firewall mark) - - `peers` (int, number of peers associated with the device) - -- `wireguard_peer` - - tags: - - `device` (associated interface device name, e.g. `wg0`) - - `public_key` (peer public key, e.g. `NZTRIrv/ClTcQoNAnChEot+WL7OH7uEGQmx8oAN9rWE=`) - - fields: - - `persistent_keepalive_interval_ns` (int, keepalive interval in nanoseconds; 0 if unset) - - `protocol_version` (int, Wireguard protocol version number) - - `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) - - `rx_bytes` (int, number of bytes received from this peer) - - `tx_bytes` (int, number of bytes transmitted to this peer) - ## Troubleshooting ### Error: `operation not permitted` @@ -63,11 +56,37 @@ 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. +## Metrics + +- `wireguard_device` + - tags: + - `name` (interface device name, e.g. `wg0`) + - `type` (Wireguard tunnel type, e.g. `linux_kernel` or `userspace`) + - fields: + - `listen_port` (int, UDP port on which the interface is listening) + - `firewall_mark` (int, device's current firewall mark) + - `peers` (int, number of peers associated with the device) + +- `wireguard_peer` + - tags: + - `device` (associated interface device name, e.g. `wg0`) + - `public_key` (peer public key, e.g. `NZTRIrv/ClTcQoNAnChEot+WL7OH7uEGQmx8oAN9rWE=`) + - fields: + - `persistent_keepalive_interval_ns` (int, keepalive interval in + nanoseconds; 0 if unset) + - `protocol_version` (int, Wireguard protocol version number) + - `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) + - `rx_bytes` (int, number of bytes received from this peer) + - `tx_bytes` (int, number of bytes transmitted to this peer) + - `allowed_peer_cidr` (string, comma separated list of allowed peer CIDRs) + ## Example Output -```shell +```text 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 +wireguard_peer,device=wg0,host=WGVPN,public_key=NZTRIrv/ClTcQoNAnChEot+WL7OH7uEGQmx8oAN9rWE= allowed_ips=2i,persistent_keepalive_interval_ns=60000000000i,protocol_version=1i,allowed_peer_cidr=192.168.1.0/24,10.0.0.0/8 1582513589000000000 wireguard_peer,device=wg0,host=WGVPN,public_key=NZTRIrv/ClTcQoNAnChEot+WL7OH7uEGQmx8oAN9rWE= last_handshake_time_ns=1582513584530013376i,rx_bytes=6484i,tx_bytes=13540i 1582513589000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/wireless.md b/src/writeData/components/telegrafPlugins/wireless.md index 681116375a..7ae071e727 100644 --- a/src/writeData/components/telegrafPlugins/wireless.md +++ b/src/writeData/components/telegrafPlugins/wireless.md @@ -1,12 +1,26 @@ # Wireless Input Plugin -The wireless plugin gathers metrics about wireless link quality by reading the -`/proc/net/wireless` file. This plugin currently supports linux only. +This plugin gathers metrics about wireless link quality by reading the +`/proc/net/wireless` file. + +⭐ Telegraf v1.9.0 +🏷️ network +💻 linux + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Monitor wifi signal strength and quality +# This plugin ONLY supports Linux [[inputs.wireless]] ## Sets 'proc' directory path ## If not specified, then default is /proc @@ -19,11 +33,13 @@ The wireless plugin gathers metrics about wireless link quality by reading the - tags: - interface (wireless interface) - 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 - level (int64, dBm, gauge) - signal strength 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 - frag (int64, packets, counter) - fragmented packets - retry (int64, packets, counter) - cumulative retry counts @@ -34,6 +50,6 @@ The wireless plugin gathers metrics about wireless link quality by reading the This section shows example output in Line Protocol format. -```shell +```text 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 ``` diff --git a/src/writeData/components/telegrafPlugins/x509_cert.md b/src/writeData/components/telegrafPlugins/x509_cert.md index 51560e4b54..5822367005 100644 --- a/src/writeData/components/telegrafPlugins/x509_cert.md +++ b/src/writeData/components/telegrafPlugins/x509_cert.md @@ -1,10 +1,28 @@ # x509 Certificate Input Plugin -This plugin provides information about X509 certificate accessible via local -file, tcp, udp, https or smtp protocol. +This plugin provides information about [X.509][x509] certificates accessible +e.g. via local file, tcp, udp, https or smtp protocols and the Windows +Certificate Store. -When using a UDP address as a certificate source, the server must support -[DTLS](https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security). +> [!NOTE] +> When using a UDP address as a certificate source, the server must support +> [DTLS][dtls]. + +⭐ Telegraf v1.8.0 +🏷️ network +💻 all + +[x509]: https://en.wikipedia.org/wiki/X.509 +[dtls]: https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -16,7 +34,10 @@ When using a UDP address as a certificate source, the server must support sources = ["tcp://example.org:443", "https://influxdata.com:443", "smtp://mail.localhost:25", "udp://127.0.0.1:4433", "/etc/ssl/certs/ssl-cert-snakeoil.pem", - "/etc/mycerts/*.mydomain.org.pem", "file:///path/to/*.pem"] + "/etc/mycerts/*.mydomain.org.pem", "file:///path/to/*.pem", + "jks:///etc/mycerts/keystore.jks", + "pkcs12:///etc/mycerts/keystore.p12", + "wincertstore://machine:ROOT", "wincertstore://user:CA"] ## Timeout for SSL connection # timeout = "5s" @@ -27,6 +48,15 @@ When using a UDP address as a certificate source, the server must support ## example: server_name = "myhost.example.org" # server_name = "myhost.example.org" + ## Only output the leaf certificates and omit the root ones. + # exclude_root_certs = false + + ## Pad certificate serial number with zeroes to 128-bits. + # pad_serial_with_zeroes = false + + ## Password to be used with PKCS#12 or JKS files + # password = "" + ## Optional TLS Config # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" @@ -38,10 +68,30 @@ When using a UDP address as a certificate source, the server must support # proxy_url = "http://localhost:8888" ``` +### Windows Certificate Store + +When accessing certificates on the local Windows Certificate Store you have to +select the certificate folder by using a URI or the form + +```text +wincertstore://[location]: +``` + +With the `location` being either the local `machine` (default) or local `user` +store. The `folder` has to be the non-translated, English folder name as can be +found under the registry keys +`HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SystemCertificates` for the +`machine` location or `HKEY_CURRENT_USER\SOFTWARE\Microsoft\SystemCertificates` +for the `user` location. See the [Windows documentation][wincert_docs] for +details. + +[wincert_docs]: https://learn.microsoft.com/en-us/windows/win32/seccrypto/system-store-locations + ## Metrics - x509_cert - tags: + - type - "leaf", "intermediate" or "root" classification of certificate - source - source of the certificate - organization - organizational_unit @@ -55,19 +105,27 @@ When using a UDP address as a certificate source, the server must support - issuer_common_name - issuer_serial_number - san + - ocsp_stapled + - ocsp_status (when ocsp_stapled=yes) + - ocsp_verified (when ocsp_stapled=yes) - fields: - verification_code (int) - verification_error (string) - - expiry (int, seconds) + - 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) - startdate (int, seconds) - enddate (int, seconds) + - ocsp_status_code (int) + - ocsp_next_update (int, seconds) + - ocsp_produced_at (int, seconds) + - ocsp_this_update (int, seconds) ## 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 -x509_cert,common_name=DigiCert\ Global\ Root\ CA,country=US,organization=DigiCert\ Inc,organizational_unit=www.digicert.com,source=https://example.org:443,verification=valid age=400465455i,enddate=1952035200i,expiry=388452944i,startdate=1163116800i,verification_code=0i 1563582256000000000 +```text +x509_cert,common_name=ubuntu,ocsp_stapled=no,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,ocsp_stapled=no,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,ocsp_stapled=no,source=https://example.org:443,verification=valid age=200838255i,enddate=1678276800i,expiry=114694544i,startdate=1362744000i,verification_code=0i 1563582256000000000 +x509_cert,common_name=DigiCert\ Global\ Root\ CA,country=US,organization=DigiCert\ Inc,organizational_unit=www.digicert.com,ocsp_stapled=yes,ocsp_status=good,ocsp_verified=yes,source=https://example.org:443,verification=valid age=400465455i,enddate=1952035200i,expiry=388452944i,ocsp_next_update=1676714398i,ocsp_produced_at=1676112480i,ocsp_status_code=0i,ocsp_this_update=1676109600i,startdate=1163116800i,verification_code=0i 1563582256000000000 ``` diff --git a/src/writeData/components/telegrafPlugins/xtremio.md b/src/writeData/components/telegrafPlugins/xtremio.md index 10bbb58718..d401e6ea59 100644 --- a/src/writeData/components/telegrafPlugins/xtremio.md +++ b/src/writeData/components/telegrafPlugins/xtremio.md @@ -1,9 +1,23 @@ -# XtremIO Input Plugin +# Dell EMC XtremIO Input Plugin -The `xtremio` plugin gathers metrics from a Dell EMC XtremIO Storage Array's V3 -Rest API. Documentation can be found [here][1]. +This plugin gathers metrics from a [Dell EMC XtremIO Storage Array][xtremio] +instance using the [v3 Rest API][api]. -[1]: https://dl.dell.com/content/docu96624_xtremio-storage-array-x1-and-x2-cluster-types-with-xms-6-3-0-to-6-3-3-and-xios-4-0-15-to-4-0-31-and-6-0-0-to-6-3-3-restful-api-3-x-guide.pdf?language=en_us +⭐ Telegraf v1.22.0 +🏷️ network +💻 all + +[xtremio]: https://www.delltechnologies.com/asset/en-sa/products/storage/industry-market/h16444-introduction-xtremio-x2-storage-array-wp.pdf +[api]: https://dl.dell.com/content/docu96624_xtremio-storage-array-x1-and-x2-cluster-types-with-xms-6-3-0-to-6-3-3-and-xios-4-0-15-to-4-0-31-and-6-0-0-to-6-3-3-restful-api-3-x-guide.pdf + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -112,6 +126,8 @@ Rest API. Documentation can be found [here][1]. ## Example Output -> xio,guid=abcdefghifklmnopqrstuvwxyz111111,host=HOSTNAME,model_name=Eaton\ 5P\ 1550,name=X2-BBU,power_feed=PWR-B,serial_number=SER1234567890 bbus_average_daily_temp=22i,bbus_enabled=1i,bbus_power=286i,bbus_ups_low_battery_no_input=0i,bbus_ups_need_battery_replacement=0i 1638295340000000000 -> xio,guid=abcdefghifklmnopqrstuvwxyz222222,host=HOSTNAME,model_name=Eaton\ 5P\ 1550,name=X1-BBU,power_feed=PWR-A,serial_number=SER1234567891 bbus_average_daily_temp=22i,bbus_enabled=1i,bbus_power=246i,bbus_ups_low_battery_no_input=0i,bbus_ups_need_battery_replacement=0i 1638295340000000000 -> xio,guid=abcdefghifklmnopqrstuvwxyz333333,hardware_platform=X1,host=HOSTNAME,license_id=LIC123456789,name=SERVER01,sys_psnt_serial_number=FNM01234567890 clusters_compression_factor=1.5160012465000001,clusters_data_reduction_ratio=2.1613617899,clusters_free_ssd_space_in_percent=34i,clusters_number_of_volumes=36i,clusters_percent_memory_in_use=29i,clusters_read_iops=331i,clusters_ssd_num=50i,clusters_write_iops=4649i 1638295341000000000 +```text +xio,guid=abcdefghifklmnopqrstuvwxyz111111,host=HOSTNAME,model_name=Eaton\ 5P\ 1550,name=X2-BBU,power_feed=PWR-B,serial_number=SER1234567890 bbus_average_daily_temp=22i,bbus_enabled=1i,bbus_power=286i,bbus_ups_low_battery_no_input=0i,bbus_ups_need_battery_replacement=0i 1638295340000000000 +xio,guid=abcdefghifklmnopqrstuvwxyz222222,host=HOSTNAME,model_name=Eaton\ 5P\ 1550,name=X1-BBU,power_feed=PWR-A,serial_number=SER1234567891 bbus_average_daily_temp=22i,bbus_enabled=1i,bbus_power=246i,bbus_ups_low_battery_no_input=0i,bbus_ups_need_battery_replacement=0i 1638295340000000000 +xio,guid=abcdefghifklmnopqrstuvwxyz333333,hardware_platform=X1,host=HOSTNAME,license_id=LIC123456789,name=SERVER01,sys_psnt_serial_number=FNM01234567890 clusters_compression_factor=1.5160012465000001,clusters_data_reduction_ratio=2.1613617899,clusters_free_ssd_space_in_percent=34i,clusters_number_of_volumes=36i,clusters_percent_memory_in_use=29i,clusters_read_iops=331i,clusters_ssd_num=50i,clusters_write_iops=4649i 1638295341000000000 +``` diff --git a/src/writeData/components/telegrafPlugins/zfs.md b/src/writeData/components/telegrafPlugins/zfs.md index d5033ec2c8..e87192003c 100644 --- a/src/writeData/components/telegrafPlugins/zfs.md +++ b/src/writeData/components/telegrafPlugins/zfs.md @@ -1,13 +1,28 @@ # ZFS Input Plugin -This ZFS plugin provides metrics from your ZFS filesystems. It supports ZFS on -Linux and FreeBSD. It gets ZFS stat from `/proc/spl/kstat/zfs` on Linux and -from `sysctl`, 'zfs' and `zpool` on FreeBSD. +This plugin gathers metrics from [ZFS][zfs] filesystems using +`/proc/spl/kstat/zfs` on Linux and `sysctl`, `zfs` and `zpool` on FreeBSD. + +⭐ Telegraf v0.2.1 +🏷️ system +💻 freebsd, linux + +[zfs]: https://en.wikipedia.org/wiki/ZFS + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Read metrics of ZFS from arcstats, zfetchstats, vdev_cache_stats, pools and datasets +# This plugin ONLY supports Linux & FreeBSD [[inputs.zfs]] ## ZFS kstat path. Ignored on FreeBSD ## If not specified, then default is: @@ -25,17 +40,35 @@ from `sysctl`, 'zfs' and `zpool` on FreeBSD. # poolMetrics = false ## By default, don't gather dataset stats - ## On FreeBSD, if the user has enabled listsnapshots in the pool property, - ## telegraf may not be able to correctly parse the output. # datasetMetrics = false + + ## Report fields as the type defined by ZFS (Linux only) + ## This is disabled for backward compatibility but is STRONGLY RECOMMENDED + ## to be enabled to avoid overflows. This requires UINT support on the output + ## for most fields. + ## useNativeTypes = false ``` +OpenZFS on Linux reports the type of fields especially for the dataset metrics. +By default this plugin will ignore the provided type and will report metrics as +signed 64-bit integers. + +It is **highly recommended** to use the reported type by setting +`useNativeTypes` to `true` for avoiding overflows of field values as most fields +are reported as **unsigned** 64-bit integers. Additionally, you must make sure +your output supports reporting unsigned values! + +> [!WARNING] +> Changing the setting for `useNativeTypes` will generate metrics with +> conflicting field types so you need to either migrate existing data or clear +> your database for e.g. InfluxDB outputs! + ## Metrics By default this plugin collects metrics about ZFS internals pool and dataset. These metrics are either counters or measure sizes in bytes. These metrics will be in the `zfs` measurement with the field -names listed bellow. +names listed below. If `poolMetrics` is enabled then additional metrics will be gathered for each pool. @@ -44,7 +77,7 @@ If `datasetMetrics` is enabled then additional metrics will be gathered for each dataset. - zfs - With fields listed bellow. + With fields listed below. ### ARC Stats (FreeBSD and Linux) @@ -166,6 +199,55 @@ each dataset. - arcstats_size - arcstats_sync_wait_for_async (FreeBSD only) +with the following meaning + +- `arcstats_hits` Total amount of cache hits in the arc. +- `arcstats_misses` Total amount of cache misses in the arc. +- `arcstats_demand_data_hits` Amount of cache hits for demand data, this is what +matters (is good) for your application/share. +- `arcstats_demand_data_misses` Amount of cache misses for demand data, this is +what matters (is bad) for your application/share. +- `arcstats_demand_metadata_hits` Amount of cache hits for demand metadata, this +matters (is good) for getting filesystem data (ls,find,…) +- `arcstats_demand_metadata_misses` Amount of cache misses for demand metadata, +this matters (is bad) for getting filesystem data (ls,find,…) +- `arcstats_prefetch_data_hits` The zfs prefetcher tried to prefetch something, +but it was already cached (boring) +- `arcstats_prefetch_data_misses` The zfs prefetcher prefetched something which +was not in the cache (good job, could become a demand hit in the future) +- `arcstats_prefetch_metadata_hits` Same as above, but for metadata +- `arcstats_prefetch_metadata_misses` Same as above, but for metadata +- `arcstats_mru_hits` Cache hit in the “most recently used cache”, we move this to +the mfu cache. +- `arcstats_mru_ghost_hits` Cache hit in the “most recently used ghost list” we +had this item in the cache, but evicted it, maybe we should increase the mru +cache size. +- `arcstats_mfu_hits` Cache hit in the “most frequently used cache” we move this +to the beginning of the mfu cache. +- `arcstats_mfu_ghost_hits` Cache hit in the “most frequently used ghost list” we +had this item in the cache, but evicted it, maybe we should increase the mfu +cache size. +- `arcstats_allocated` New data is written to the cache. +- `arcstats_deleted` Old data is evicted (deleted) from the cache. +- `arcstats_evict_l2_cached` We evicted something from the arc, but its still +cached in the l2 if we need it. +- `arcstats_evict_l2_eligible` We evicted something from the arc, and it’s not in +the l2 this is sad. (maybe we hadn’t had enough time to store it there) +- `arcstats_evict_l2_ineligible` We evicted something which cannot be stored in + the l2. Reasons could be: + - We have multiple pools, we evicted something from a pool without an l2 device. + - The zfs property secondary cache. +- `arcstats_c` Arc target size, this is the size the system thinks the arc should +have. +- `arcstats_size` Total size of the arc. +- `arcstats_l2_hits` Hits to the L2 cache. (It was not in the arc, but in the l2 +cache) +- `arcstats_l2_misses` Miss to the L2 cache. (It was not in the arc, and not in +the l2 cache) +- `arcstats_l2_size` Size of the l2 cache. +- `arcstats_l2_hdr_size` Size of the metadata in the arc (ram) used to manage +(lookup if something is in the l2) the l2 cache. + ### Zfetch Stats (FreeBSD and Linux) - zfetchstats_bogus_streams (Linux only) @@ -181,12 +263,30 @@ each dataset. - zfetchstats_stride_hits (Linux only) - zfetchstats_stride_misses (Linux only) +with the following meaning: + +- `zfetchstats_hits` Counts the number of cache hits, to items which are in the +cache because of the prefetcher. +- `zfetchstats_misses` Counts the number of prefetch cache misses. +- `zfetchstats_colinear_hits` Counts the number of cache hits, to items which are +in the cache because of the prefetcher (prefetched linear reads) +- `zfetchstats_stride_hits` Counts the number of cache hits, to items which are in +the cache because of the prefetcher (prefetched stride reads) + ### Vdev Cache Stats (FreeBSD) +> [!NOTE] +> The vdev cache is deprecated in some ZFS implementations. + - vdev_cache_stats_delegations - vdev_cache_stats_hits - vdev_cache_stats_misses +with the following meaning: + +- `vdev_cache_stats_hits` Hits to the vdev (device level) cache. +- `vdev_cache_stats_misses` Misses to the vdev (device level) cache. + ### Pool Metrics (optional) On Linux (reference: kstat accumulated time and queue length statistics): @@ -215,6 +315,27 @@ For ZFS >= 2.1.x the format has changed significantly: - nunlinks (integer, count) - nunlinked (integer, count) +For ZFS >= 2.2.x the following additional fields are available: + +- additional fields for ZFS > 2.2.x + - zil_commit_count (integer, count) + - zil_commit_writer_count (integer, count) + - zil_itx_count (integer, count) + - zil_itx_indirect_count (integer, count) + - zil_itx_indirect_bytes (integer, bytes) + - zil_itx_copied_count (integer, count) + - zil_itx_copied_bytes (integer, bytes) + - zil_itx_needcopy_count (integer, count) + - zil_itx_needcopy_bytes (integer, bytes) + - zil_itx_metaslab_normal_count (integer, count) + - zil_itx_metaslab_normal_bytes (integer, bytes) + - zil_itx_metaslab_normal_write (integer, bytes) + - zil_itx_metaslab_normal_alloc (integer, bytes) + - zil_itx_metaslab_slog_count (integer, count) + - zil_itx_metaslab_slog_bytes (integer, bytes) + - zil_itx_metaslab_slog_write (integer, bytes) + - zil_itx_metaslab_slog_alloc (integer, bytes) + On FreeBSD: - zfs_pool @@ -225,14 +346,42 @@ On FreeBSD: - size (integer, bytes) - fragmentation (integer, percent) +> [!NOTE] +> The `zil` measurements in `kstatMetrics` are system-wide while the once in +> `poolMetrics` are pool-wide + +- `zil_commit_count` counts when ZFS transactions are committed to a ZIL + ### Dataset Metrics (optional, only on FreeBSD) - zfs_dataset - avail (integer, bytes) - used (integer, bytes) - - usedsnap (integer, bytes + - usedsnap (integer, bytes) - usedds (integer, bytes) +### ABD Stats (Linux Only) + +ABD is a linear/scatter dual typed buffer for ARC + +- `abdstats_linear_cnt` number of linear ABDs which are currently allocated +- `abdstats_linear_data_size` amount of data stored in all linear ABDs +- `abdstats_scatter_cnt` number of scatter ABDs which are currently allocated +- `abdstats_scatter_data_size` amount of data stored in all scatter ABDs + +### DMU Stats (Linux Only) + +- `dmu_tx_dirty_throttle` counts when writes are throttled due to the amount of +dirty data growing too large +- `dmu_tx_memory_reclaim` counts when memory is low and throttling activity +- `dmu_tx_memory_reserve` counts when memory footprint of the txg exceeds the ARC +size + +### Fault Management Ereport errors (Linux Only) + +- `fm_erpt-dropped` counts when an error report cannot be created (eg available +memory is too low) + ### Tags - ZFS stats (`zfs`) will have the following tag: @@ -249,142 +398,8 @@ On FreeBSD: ## Example Output -```shell -$ ./telegraf --config telegraf.conf --input-filter zfs --test -* Plugin: zfs, Collection 1 -> zfs_pool,health=ONLINE,pool=zroot allocated=1578590208i,capacity=2i,dedupratio=1,fragmentation=1i,free=64456531968i,size=66035122176i 1464473103625653908 -> zfs_dataset,dataset=zata avail=10741741326336,used=8564135526400,usedsnap=0,usedds=90112 -> zfs,pools=zroot arcstats_allocated=4167764i,arcstats_anon_evictable_data=0i,arcstats_anon_evictable_metadata=0i,arcstats_anon_size=16896i,arcstats_arc_meta_limit=10485760i,arcstats_arc_meta_max=115269568i,arcstats_arc_meta_min=8388608i,arcstats_arc_meta_used=51977456i,arcstats_c=16777216i,arcstats_c_max=41943040i,arcstats_c_min=16777216i,arcstats_data_size=0i,arcstats_deleted=1699340i,arcstats_demand_data_hits=14836131i,arcstats_demand_data_misses=2842945i,arcstats_demand_hit_predictive_prefetch=0i,arcstats_demand_metadata_hits=1655006i,arcstats_demand_metadata_misses=830074i,arcstats_duplicate_buffers=0i,arcstats_duplicate_buffers_size=0i,arcstats_duplicate_reads=123i,arcstats_evict_l2_cached=0i,arcstats_evict_l2_eligible=332172623872i,arcstats_evict_l2_ineligible=6168576i,arcstats_evict_l2_skip=0i,arcstats_evict_not_enough=12189444i,arcstats_evict_skip=195190764i,arcstats_hash_chain_max=2i,arcstats_hash_chains=10i,arcstats_hash_collisions=43134i,arcstats_hash_elements=2268i,arcstats_hash_elements_max=6136i,arcstats_hdr_size=565632i,arcstats_hits=16515778i,arcstats_l2_abort_lowmem=0i,arcstats_l2_asize=0i,arcstats_l2_cdata_free_on_write=0i,arcstats_l2_cksum_bad=0i,arcstats_l2_compress_failures=0i,arcstats_l2_compress_successes=0i,arcstats_l2_compress_zeros=0i,arcstats_l2_evict_l1cached=0i,arcstats_l2_evict_lock_retry=0i,arcstats_l2_evict_reading=0i,arcstats_l2_feeds=0i,arcstats_l2_free_on_write=0i,arcstats_l2_hdr_size=0i,arcstats_l2_hits=0i,arcstats_l2_io_error=0i,arcstats_l2_misses=0i,arcstats_l2_read_bytes=0i,arcstats_l2_rw_clash=0i,arcstats_l2_size=0i,arcstats_l2_write_buffer_bytes_scanned=0i,arcstats_l2_write_buffer_iter=0i,arcstats_l2_write_buffer_list_iter=0i,arcstats_l2_write_buffer_list_null_iter=0i,arcstats_l2_write_bytes=0i,arcstats_l2_write_full=0i,arcstats_l2_write_in_l2=0i,arcstats_l2_write_io_in_progress=0i,arcstats_l2_write_not_cacheable=380i,arcstats_l2_write_passed_headroom=0i,arcstats_l2_write_pios=0i,arcstats_l2_write_spa_mismatch=0i,arcstats_l2_write_trylock_fail=0i,arcstats_l2_writes_done=0i,arcstats_l2_writes_error=0i,arcstats_l2_writes_lock_retry=0i,arcstats_l2_writes_sent=0i,arcstats_memory_throttle_count=0i,arcstats_metadata_size=17014784i,arcstats_mfu_evictable_data=0i,arcstats_mfu_evictable_metadata=16384i,arcstats_mfu_ghost_evictable_data=5723648i,arcstats_mfu_ghost_evictable_metadata=10709504i,arcstats_mfu_ghost_hits=1315619i,arcstats_mfu_ghost_size=16433152i,arcstats_mfu_hits=7646611i,arcstats_mfu_size=305152i,arcstats_misses=3676993i,arcstats_mru_evictable_data=0i,arcstats_mru_evictable_metadata=0i,arcstats_mru_ghost_evictable_data=0i,arcstats_mru_ghost_evictable_metadata=80896i,arcstats_mru_ghost_hits=324250i,arcstats_mru_ghost_size=80896i,arcstats_mru_hits=8844526i,arcstats_mru_size=16693248i,arcstats_mutex_miss=354023i,arcstats_other_size=34397040i,arcstats_p=4172800i,arcstats_prefetch_data_hits=0i,arcstats_prefetch_data_misses=0i,arcstats_prefetch_metadata_hits=24641i,arcstats_prefetch_metadata_misses=3974i,arcstats_size=51977456i,arcstats_sync_wait_for_async=0i,vdev_cache_stats_delegations=779i,vdev_cache_stats_hits=323123i,vdev_cache_stats_misses=59929i,zfetchstats_hits=0i,zfetchstats_max_streams=0i,zfetchstats_misses=0i 1464473103634124908 +```text +zfs_pool,health=ONLINE,pool=zroot allocated=1578590208i,capacity=2i,dedupratio=1,fragmentation=1i,free=64456531968i,size=66035122176i 1464473103625653908 +zfs_dataset,dataset=zata avail=10741741326336,used=8564135526400,usedsnap=0,usedds=90112 +zfs,pools=zroot arcstats_allocated=4167764i,arcstats_anon_evictable_data=0i,arcstats_anon_evictable_metadata=0i,arcstats_anon_size=16896i,arcstats_arc_meta_limit=10485760i,arcstats_arc_meta_max=115269568i,arcstats_arc_meta_min=8388608i,arcstats_arc_meta_used=51977456i,arcstats_c=16777216i,arcstats_c_max=41943040i,arcstats_c_min=16777216i,arcstats_data_size=0i,arcstats_deleted=1699340i,arcstats_demand_data_hits=14836131i,arcstats_demand_data_misses=2842945i,arcstats_demand_hit_predictive_prefetch=0i,arcstats_demand_metadata_hits=1655006i,arcstats_demand_metadata_misses=830074i,arcstats_duplicate_buffers=0i,arcstats_duplicate_buffers_size=0i,arcstats_duplicate_reads=123i,arcstats_evict_l2_cached=0i,arcstats_evict_l2_eligible=332172623872i,arcstats_evict_l2_ineligible=6168576i,arcstats_evict_l2_skip=0i,arcstats_evict_not_enough=12189444i,arcstats_evict_skip=195190764i,arcstats_hash_chain_max=2i,arcstats_hash_chains=10i,arcstats_hash_collisions=43134i,arcstats_hash_elements=2268i,arcstats_hash_elements_max=6136i,arcstats_hdr_size=565632i,arcstats_hits=16515778i,arcstats_l2_abort_lowmem=0i,arcstats_l2_asize=0i,arcstats_l2_cdata_free_on_write=0i,arcstats_l2_cksum_bad=0i,arcstats_l2_compress_failures=0i,arcstats_l2_compress_successes=0i,arcstats_l2_compress_zeros=0i,arcstats_l2_evict_l1cached=0i,arcstats_l2_evict_lock_retry=0i,arcstats_l2_evict_reading=0i,arcstats_l2_feeds=0i,arcstats_l2_free_on_write=0i,arcstats_l2_hdr_size=0i,arcstats_l2_hits=0i,arcstats_l2_io_error=0i,arcstats_l2_misses=0i,arcstats_l2_read_bytes=0i,arcstats_l2_rw_clash=0i,arcstats_l2_size=0i,arcstats_l2_write_buffer_bytes_scanned=0i,arcstats_l2_write_buffer_iter=0i,arcstats_l2_write_buffer_list_iter=0i,arcstats_l2_write_buffer_list_null_iter=0i,arcstats_l2_write_bytes=0i,arcstats_l2_write_full=0i,arcstats_l2_write_in_l2=0i,arcstats_l2_write_io_in_progress=0i,arcstats_l2_write_not_cacheable=380i,arcstats_l2_write_passed_headroom=0i,arcstats_l2_write_pios=0i,arcstats_l2_write_spa_mismatch=0i,arcstats_l2_write_trylock_fail=0i,arcstats_l2_writes_done=0i,arcstats_l2_writes_error=0i,arcstats_l2_writes_lock_retry=0i,arcstats_l2_writes_sent=0i,arcstats_memory_throttle_count=0i,arcstats_metadata_size=17014784i,arcstats_mfu_evictable_data=0i,arcstats_mfu_evictable_metadata=16384i,arcstats_mfu_ghost_evictable_data=5723648i,arcstats_mfu_ghost_evictable_metadata=10709504i,arcstats_mfu_ghost_hits=1315619i,arcstats_mfu_ghost_size=16433152i,arcstats_mfu_hits=7646611i,arcstats_mfu_size=305152i,arcstats_misses=3676993i,arcstats_mru_evictable_data=0i,arcstats_mru_evictable_metadata=0i,arcstats_mru_ghost_evictable_data=0i,arcstats_mru_ghost_evictable_metadata=80896i,arcstats_mru_ghost_hits=324250i,arcstats_mru_ghost_size=80896i,arcstats_mru_hits=8844526i,arcstats_mru_size=16693248i,arcstats_mutex_miss=354023i,arcstats_other_size=34397040i,arcstats_p=4172800i,arcstats_prefetch_data_hits=0i,arcstats_prefetch_data_misses=0i,arcstats_prefetch_metadata_hits=24641i,arcstats_prefetch_metadata_misses=3974i,arcstats_size=51977456i,arcstats_sync_wait_for_async=0i,vdev_cache_stats_delegations=779i,vdev_cache_stats_hits=323123i,vdev_cache_stats_misses=59929i,zfetchstats_hits=0i,zfetchstats_max_streams=0i,zfetchstats_misses=0i 1464473103634124908 ``` - -## Description - -A short description for some of the metrics. - -### ARC Stats - -`arcstats_hits` Total amount of cache hits in the arc. - -`arcstats_misses` Total amount of cache misses in the arc. - -`arcstats_demand_data_hits` Amount of cache hits for demand data, this is what -matters (is good) for your application/share. - -`arcstats_demand_data_misses` Amount of cache misses for demand data, this is -what matters (is bad) for your application/share. - -`arcstats_demand_metadata_hits` Amount of cache hits for demand metadata, this -matters (is good) for getting filesystem data (ls,find,…) - -`arcstats_demand_metadata_misses` Amount of cache misses for demand metadata, -this matters (is bad) for getting filesystem data (ls,find,…) - -`arcstats_prefetch_data_hits` The zfs prefetcher tried to prefetch something, -but it was already cached (boring) - -`arcstats_prefetch_data_misses` The zfs prefetcher prefetched something which -was not in the cache (good job, could become a demand hit in the future) - -`arcstats_prefetch_metadata_hits` Same as above, but for metadata - -`arcstats_prefetch_metadata_misses` Same as above, but for metadata - -`arcstats_mru_hits` Cache hit in the “most recently used cache”, we move this to -the mfu cache. - -`arcstats_mru_ghost_hits` Cache hit in the “most recently used ghost list” we -had this item in the cache, but evicted it, maybe we should increase the mru -cache size. - -`arcstats_mfu_hits` Cache hit in the “most frequently used cache” we move this -to the beginning of the mfu cache. - -`arcstats_mfu_ghost_hits` Cache hit in the “most frequently used ghost list” we -had this item in the cache, but evicted it, maybe we should increase the mfu -cache size. - -`arcstats_allocated` New data is written to the cache. - -`arcstats_deleted` Old data is evicted (deleted) from the cache. - -`arcstats_evict_l2_cached` We evicted something from the arc, but its still -cached in the l2 if we need it. - -`arcstats_evict_l2_eligible` We evicted something from the arc, and it’s not in -the l2 this is sad. (maybe we hadn’t had enough time to store it there) - -`arcstats_evict_l2_ineligible` We evicted something which cannot be stored in - the l2. Reasons could be: - -- We have multiple pools, we evicted something from a pool without an l2 device. -- The zfs property secondary cache. - -`arcstats_c` Arc target size, this is the size the system thinks the arc should -have. - -`arcstats_size` Total size of the arc. - -`arcstats_l2_hits` Hits to the L2 cache. (It was not in the arc, but in the l2 -cache) - -`arcstats_l2_misses` Miss to the L2 cache. (It was not in the arc, and not in -the l2 cache) - -`arcstats_l2_size` Size of the l2 cache. - -`arcstats_l2_hdr_size` Size of the metadata in the arc (ram) used to manage -(lookup if something is in the l2) the l2 cache. - -### Zfetch Stats - -`zfetchstats_hits` Counts the number of cache hits, to items which are in the -cache because of the prefetcher. - -`zfetchstats_misses` Counts the number of prefetch cache misses. - -`zfetchstats_colinear_hits` Counts the number of cache hits, to items which are -in the cache because of the prefetcher (prefetched linear reads) - -`zfetchstats_stride_hits` Counts the number of cache hits, to items which are in -the cache because of the prefetcher (prefetched stride reads) - -### Vdev Cache Stats (FreeBSD only) - -note: the vdev cache is deprecated in some ZFS implementations - -`vdev_cache_stats_hits` Hits to the vdev (device level) cache. - -`vdev_cache_stats_misses` Misses to the vdev (device level) cache. - -### ABD Stats (Linux Only) - -ABD is a linear/scatter dual typed buffer for ARC - -`abdstats_linear_cnt` number of linear ABDs which are currently allocated - -`abdstats_linear_data_size` amount of data stored in all linear ABDs - -`abdstats_scatter_cnt` number of scatter ABDs which are currently allocated - -`abdstats_scatter_data_size` amount of data stored in all scatter ABDs - -### DMU Stats (Linux Only) - -`dmu_tx_dirty_throttle` counts when writes are throttled due to the amount of -dirty data growing too large - -`dmu_tx_memory_reclaim` counts when memory is low and throttling activity - -`dmu_tx_memory_reserve` counts when memory footprint of the txg exceeds the ARC -size - -### Fault Management Ereport errors (Linux Only) - -`fm_erpt-dropped` counts when an error report cannot be created (eg available -memory is too low) - -### ZIL (Linux Only) - -note: ZIL measurements are system-wide, neither per-pool nor per-dataset - -`zil_commit_count` counts when ZFS transactions are committed to a ZIL diff --git a/src/writeData/components/telegrafPlugins/zipkin.md b/src/writeData/components/telegrafPlugins/zipkin.md index 603d2f2748..ea996b1d0c 100644 --- a/src/writeData/components/telegrafPlugins/zipkin.md +++ b/src/writeData/components/telegrafPlugins/zipkin.md @@ -1,188 +1,220 @@ # Zipkin Input Plugin -This plugin implements the Zipkin http server to gather trace and timing data -needed to troubleshoot latency problems in microservice architectures. +This service plugin implements the [Zipkin][zipkin] HTTP server to gather trace +and timing data needed to troubleshoot latency problems in microservice +architectures. -__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. +> [!CRITICAL] +> This plugin produces high cardinality data, which when not controlled for will +> cause high load on your database. Please make sure to [filter][filtering] the +> produced metrics or configure your database to avoid cardinality issues! + +⭐ Telegraf v1.4.0 +🏷️ cloud +💻 all + +[zipkin]: https://zipkin.io/ +[filtering]: /docs/CONFIGURATION.md#metric-filtering + +## Service Input + +This plugin is a service input. Normal plugins gather metrics determined by the +interval setting. Service plugins start a service to listen and wait for +metrics or events to occur. Service plugins have two key differences from +normal plugins: + +1. The global or plugin specific `interval` setting may not apply +2. The CLI options of `--test`, `--test-wait`, and `--once` may not produce + output for this plugin + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```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]] - # path = "/api/v1/spans" # URL path for span data - # port = 9411 # Port on which Telegraf listens + ## URL path for span data + # path = "/api/v1/spans" + + ## Port on which Telegraf listens + # port = 9411 + + ## Maximum duration before timing out read of the request + # read_timeout = "10s" + ## Maximum duration before timing out write of the response + # write_timeout = "10s" ``` 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 +## Metrics This plugin uses Annotations tags and fields to track data from spans -- __TRACE:__ is a set of spans that share a single root span. -Traces are built by collecting all Spans that share a traceId. - -- __SPAN:__ is a set of Annotations and BinaryAnnotations that correspond to a particular RPC. - -- __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._ +- `TRACE` is a set of spans that share a single root span. Traces are built by + collecting all Spans that share a traceId. +- `SPAN` is a set of Annotations and BinaryAnnotations that correspond to a + particular RPC. +- `Annotations` create a metric for each annotation & binary annotation of a + span. This records an occurrence in time at the beginning and end of each + request. Annotations may have the following values: + - `CS` (client start) marks the beginning of the span, a request is made. + - `SR` (server receive) marks the point in time the server receives the request + and starts processing it. Network latency & clock jitters distinguish this + from `CS`. + - `SS` (server send) marks the point in time the server is finished processing + and sends a request back to client. The difference to `SR` denotes the + amount of time it took to process the request. + - `CR` (client receive) marks the end of the span, with the client receiving + the response from server. RPC is considered complete with this annotation. - - __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 - amount of time it took to process request will differ it from sr - - __CR (client receive):__ end of span, client receives response from server - RPC is considered complete with this annotation - -## Metrics +All metrics contain the following fields: -- __"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 -- __"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 +- `id` the 64-bit ID of the span. +- `parent_id` an ID associated with a particular child span. If there is no + child span, `parent_id` is equal to `id` +- `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 -- __"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 IPv4 address and, if present, port #### 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 - -## 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__- +- `service_name` defines a service +- `annotation` the value of an annotation +- `endpoint_host` listening IPv4 address and, if present, port +- `annotation_key` label describing the annotation -```sql -SHOW TAG VALUES FROM "zipkin" WITH KEY = "service_name" -``` - -- __Description:__ returns a list of all `distinct` endpoint service names. +## Example Output --__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` - -### 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) +The Zipkin data ```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" + "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 }, { - "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 - } + "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 }, { - "key": "sa", - "value": true, - "endpoint": { - "serviceName": "spanstore-jdbc", - "ipv4": "127.0.0.1", - "port": 3306 - } + "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 ``` diff --git a/src/writeData/components/telegrafPlugins/zookeeper.md b/src/writeData/components/telegrafPlugins/zookeeper.md index b02dc30074..8a0871e92f 100644 --- a/src/writeData/components/telegrafPlugins/zookeeper.md +++ b/src/writeData/components/telegrafPlugins/zookeeper.md @@ -1,13 +1,28 @@ -# Zookeeper Input Plugin +# Apache Zookeeper Input Plugin -The zookeeper plugin collects variables outputted from the 'mntr' command -[Zookeeper Admin](https://zookeeper.apache.org/doc/current/zookeeperAdmin.html). +This plugin collects variables from [Zookeeper][zookeeper] instances using the +[`mntr` command][admin_guide]. -If in Zookeper, the Prometheus Metric provider is enabled, instead use the -`prometheus` input plugin. By default, the Prometheus metrics are exposed at -`http://:7000/metrics` URL. Using the `prometheus` input plugin provides a -native solution to read and process Prometheus metrics, while this plugin is -specific to using `mntr` to collect the Java Properties format. +> [!NOTE] +> If the Prometheus Metric provider is enabled in Zookeeper use the +> [prometheus plugin][prometheus] instead with `http://:7000/metrics`. + +⭐ Telegraf v0.2.0 +🏷️ applications +💻 all + +[zookeeper]: https://zookeeper.apache.org +[admin_guide]: https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_zkCommands +[prometheus]: /plugins/inputs/prometheus/README.md + +## Global configuration options + +In addition to the plugin-specific configuration settings, plugins support +additional global and plugin configuration settings. These settings are used to +modify metrics, tags, and field or create aliases and configure ordering, etc. +See the [CONFIGURATION.md][CONFIGURATION.md] for more details. + +[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration @@ -24,8 +39,14 @@ specific to using `mntr` to collect the Java Properties format. ## Timeout for metric collections from all servers. Minimum timeout is "1s". # timeout = "5s" + ## Float Parsing - the initial implementation forced any value unable to be + ## parsed as an int to be a string. Setting this to "float" will attempt to + ## parse float values as floats and not strings. This would break existing + ## metrics and may cause issues if a value switches between a float and int. + # parse_floats = "string" + ## Optional TLS Config - # enable_tls = true + # enable_tls = false # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" @@ -33,6 +54,29 @@ specific to using `mntr` to collect the Java Properties format. # insecure_skip_verify = true ``` +## Troubleshooting + +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 +zk_avg_latency 0 +zk_max_latency 0 +zk_min_latency 0 +zk_packets_received 8 +zk_packets_sent 7 +zk_num_alive_connections 1 +zk_outstanding_requests 0 +zk_server_state standalone +zk_znode_count 129 +zk_watch_count 0 +zk_ephemerals_count 0 +zk_approximate_data_size 10044 +zk_open_file_descriptor_count 44 +zk_max_file_descriptor_count 4096 +``` + ## Metrics Exact field names are based on Zookeeper response and may vary between @@ -62,31 +106,8 @@ configuration, platform, and version. - synced_followers (integer, leader only) - pending_syncs (integer, leader only) -## 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 -zk_avg_latency 0 -zk_max_latency 0 -zk_min_latency 0 -zk_packets_received 8 -zk_packets_sent 7 -zk_num_alive_connections 1 -zk_outstanding_requests 0 -zk_server_state standalone -zk_znode_count 129 -zk_watch_count 0 -zk_ephemerals_count 0 -zk_approximate_data_size 10044 -zk_open_file_descriptor_count 44 -zk_max_file_descriptor_count 4096 -``` - ## Example Output -```shell +```text 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 ```